From eab49a949018289a839aae0b5f65cf910a566540 Mon Sep 17 00:00:00 2001 From: Qiyao Wei Date: Fri, 5 Nov 2021 23:21:21 +0800 Subject: [PATCH 1/5] Update vecjac_products.jl Add num_types_in_tuple definition --- src/differentiation/vecjac_products.jl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/differentiation/vecjac_products.jl b/src/differentiation/vecjac_products.jl index eecd1ae1..c40bcc06 100644 --- a/src/differentiation/vecjac_products.jl +++ b/src/differentiation/vecjac_products.jl @@ -9,6 +9,17 @@ function _numargs(f) return (numparam-1) #-1 in v0.5 since it adds f as the first parameter end + +#Get the number of parameters of a Tuple type, i.e. the number of fields. + +function num_types_in_tuple(sig) + length(sig.parameters) +end + +function num_types_in_tuple(sig::UnionAll) + length(Base.unwrap_unionall(sig).parameters) +end + function num_vecjac!( du, f, @@ -50,4 +61,4 @@ function num_vecjac(f, x, v, f0 = nothing) du[i] = (((f0 .- _f0) ./ ϵ)'*vv)[1] end return vec(du) -end \ No newline at end of file +end From 988a05e73eecabcbee6f587e6a436b4fecc247fe Mon Sep 17 00:00:00 2001 From: Qiyao Wei Date: Sun, 7 Nov 2021 20:37:47 +0800 Subject: [PATCH 2/5] Update vecjac_products.jl --- src/differentiation/vecjac_products.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/differentiation/vecjac_products.jl b/src/differentiation/vecjac_products.jl index c40bcc06..8470a5a7 100644 --- a/src/differentiation/vecjac_products.jl +++ b/src/differentiation/vecjac_products.jl @@ -55,6 +55,7 @@ function num_vecjac(f, x, v, f0 = nothing) ϵ = sqrt(eps(real(T))) * max(one(real(T)), abs(norm(x))) du = similar(x) for i = 1:length(x) + println(typeof(x)) x[i] += ϵ f0 = f(x) x[i] -= ϵ From ab13f9da5484de72585000b256f673c46b8dbbc0 Mon Sep 17 00:00:00 2001 From: Qiyao Wei Date: Sun, 7 Nov 2021 20:57:20 +0800 Subject: [PATCH 3/5] Update vecjac_products.jl --- src/differentiation/vecjac_products.jl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/differentiation/vecjac_products.jl b/src/differentiation/vecjac_products.jl index 8470a5a7..c4b05623 100644 --- a/src/differentiation/vecjac_products.jl +++ b/src/differentiation/vecjac_products.jl @@ -48,6 +48,7 @@ function num_vecjac!( end function num_vecjac(f, x, v, f0 = nothing) + println(typeof(v)) vv = reshape(v, axes(x)) f0 === nothing ? _f0 = f(x) : _f0 = f0 T = eltype(x) From e9a1c7de3a3da80d7f50f59ba997d63e9684c124 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Wed, 10 Nov 2021 21:46:43 -0500 Subject: [PATCH 4/5] Update src/differentiation/vecjac_products.jl --- src/differentiation/vecjac_products.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/differentiation/vecjac_products.jl b/src/differentiation/vecjac_products.jl index c4b05623..16d7cc53 100644 --- a/src/differentiation/vecjac_products.jl +++ b/src/differentiation/vecjac_products.jl @@ -56,7 +56,6 @@ function num_vecjac(f, x, v, f0 = nothing) ϵ = sqrt(eps(real(T))) * max(one(real(T)), abs(norm(x))) du = similar(x) for i = 1:length(x) - println(typeof(x)) x[i] += ϵ f0 = f(x) x[i] -= ϵ From bffee4f1a781dd35c52484bd058624499c7e8b3d Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Wed, 10 Nov 2021 21:46:46 -0500 Subject: [PATCH 5/5] Update src/differentiation/vecjac_products.jl --- src/differentiation/vecjac_products.jl | 1 - 1 file changed, 1 deletion(-) diff --git a/src/differentiation/vecjac_products.jl b/src/differentiation/vecjac_products.jl index 16d7cc53..c40bcc06 100644 --- a/src/differentiation/vecjac_products.jl +++ b/src/differentiation/vecjac_products.jl @@ -48,7 +48,6 @@ function num_vecjac!( end function num_vecjac(f, x, v, f0 = nothing) - println(typeof(v)) vv = reshape(v, axes(x)) f0 === nothing ? _f0 = f(x) : _f0 = f0 T = eltype(x)