From be2763c6083f23ad2f26f70daa1ac5f56981be4c Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Thu, 27 May 2021 14:36:50 +0100 Subject: [PATCH 1/6] replace NO_FIELDS by NoTangent() --- src/difference.jl | 2 +- src/rand_tangent.jl | 2 +- test/rand_tangent.jl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/difference.jl b/src/difference.jl index 502007e..83ddf9c 100644 --- a/src/difference.jl +++ b/src/difference.jl @@ -40,6 +40,6 @@ function difference(ε::Real, y::T, x::T) where {T} end return Tangent{T}(; NamedTuple{field_names}(tangents)...) else - return NO_FIELDS + return NoTangent() end end diff --git a/src/rand_tangent.jl b/src/rand_tangent.jl index fef39ef..c7a2408 100644 --- a/src/rand_tangent.jl +++ b/src/rand_tangent.jl @@ -44,6 +44,6 @@ function rand_tangent(rng::AbstractRNG, x::T) where {T} Tangent{T}(; NamedTuple{field_names}(tangents)...) end else - return NO_FIELDS + return NoTangent() end end diff --git a/test/rand_tangent.jl b/test/rand_tangent.jl index 6f2b2f9..636c3ec 100644 --- a/test/rand_tangent.jl +++ b/test/rand_tangent.jl @@ -35,7 +35,7 @@ using FiniteDifferences: rand_tangent # structs. (Foo(5.0, 4, rand(rng, 3)), Tangent{Foo}), (Foo(4.0, 3, Foo(5.0, 2, 4)), Tangent{Foo}), - (sin, typeof(NO_FIELDS)), + (sin, NoTangent), # all fields NoTangent implies NoTangent (Pair(:a, "b"), NoTangent), (1:10, NoTangent), From b7a6323cc51a687e7634228e65393705585e8cef Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Thu, 27 May 2021 14:37:07 +0100 Subject: [PATCH 2/6] version bump --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index eb38d70..03d210e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FiniteDifferences" uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" -version = "0.12.7" +version = "0.12.8" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" From 31b52a506c009e38ce45cccd604ad82859044fe4 Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Fri, 28 May 2021 14:37:12 +0100 Subject: [PATCH 3/6] update compat --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 03d210e..4aaff92 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FiniteDifferences" uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" -version = "0.12.8" +version = "0.12.9" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" @@ -11,7 +11,7 @@ Richardson = "708f8203-808e-40c0-ba2d-98a6953ed40d" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [compat] -ChainRulesCore = "0.9.44" +ChainRulesCore = "0.9.44, 0.10.0" Richardson = "1.2" StaticArrays = "0.12, 1.0" julia = "1" From cdd25d2c50ec04cec44d7e34e717bb10a39f06c4 Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Fri, 28 May 2021 14:38:24 +0100 Subject: [PATCH 4/6] update compat --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 4aaff92..f807c8b 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FiniteDifferences" uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" -version = "0.12.9" +version = "0.12.8" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" @@ -11,7 +11,7 @@ Richardson = "708f8203-808e-40c0-ba2d-98a6953ed40d" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [compat] -ChainRulesCore = "0.9.44, 0.10.0" +ChainRulesCore = "0.9.44, 0.10" Richardson = "1.2" StaticArrays = "0.12, 1.0" julia = "1" From ded1abb012bc813dc4b2c51f9e59c081ec159312 Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Tue, 1 Jun 2021 12:03:58 +0100 Subject: [PATCH 5/6] remove outer loop --- src/rand_tangent.jl | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/rand_tangent.jl b/src/rand_tangent.jl index c7a2408..93d4d71 100644 --- a/src/rand_tangent.jl +++ b/src/rand_tangent.jl @@ -33,17 +33,13 @@ function rand_tangent(rng::AbstractRNG, x::T) where {T} end field_names = fieldnames(T) - if length(field_names) > 0 - tangents = map(field_names) do field_name - rand_tangent(rng, getfield(x, field_name)) - end - if all(tangent isa NoTangent for tangent in tangents) - # if none of my fields can be perturbed then I can't be perturbed - return NoTangent() - else - Tangent{T}(; NamedTuple{field_names}(tangents)...) - end - else + tangents = map(field_names) do field_name + rand_tangent(rng, getfield(x, field_name)) + end + if all(tangent isa NoTangent for tangent in tangents) + # if none of my fields can be perturbed then I can't be perturbed return NoTangent() + else + Tangent{T}(; NamedTuple{field_names}(tangents)...) end end From 63e38703a4659e1fa2dd7dc4bba41ea4e84ef6e9 Mon Sep 17 00:00:00 2001 From: Miha Zgubic Date: Tue, 1 Jun 2021 12:09:53 +0100 Subject: [PATCH 6/6] unbreaking change --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 5e94aac..dc435c4 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "FiniteDifferences" uuid = "26cc04aa-876d-5657-8c51-4c34ba976000" -version = "0.13" +version = "0.12.10" [deps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"