From a49ef5d4633b33ba8db61c73642de99a72b96698 Mon Sep 17 00:00:00 2001 From: Paul Berg Date: Wed, 24 Jul 2024 11:43:03 +0200 Subject: [PATCH 1/2] Fix clamp rule when max < min --- src/rulesets/Base/base.jl | 2 +- test/rulesets/Base/base.jl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rulesets/Base/base.jl b/src/rulesets/Base/base.jl index b79615f7b..f6fadb3c2 100644 --- a/src/rulesets/Base/base.jl +++ b/src/rulesets/Base/base.jl @@ -186,7 +186,7 @@ end islow = x < low, ishigh = high < x, ), - (!(islow | ishigh), islow, ishigh), + (!(islow | ishigh), islow & (low < high), ishigh), ) @scalar_rule x \ y (-(Ω / x), one(y) / x) diff --git a/test/rulesets/Base/base.jl b/test/rulesets/Base/base.jl index 09479828c..4744759bf 100644 --- a/test/rulesets/Base/base.jl +++ b/test/rulesets/Base/base.jl @@ -199,6 +199,10 @@ end # to right test_frule(clamp, 4., 2., 3.) test_rrule(clamp, 4., 2., 3.) + + # max < min + test_frule(clamp, 3., 4., 2.) + test_rrule(clamp, 3., 4., 2.) end @testset "rounding" begin From 84e22281fe5be50442aac4553b4a8b7fff035066 Mon Sep 17 00:00:00 2001 From: Paul Berg Date: Fri, 26 Jul 2024 14:31:14 +0200 Subject: [PATCH 2/2] Update base.jl --- test/rulesets/Base/base.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/rulesets/Base/base.jl b/test/rulesets/Base/base.jl index 4744759bf..6e6702055 100644 --- a/test/rulesets/Base/base.jl +++ b/test/rulesets/Base/base.jl @@ -200,7 +200,7 @@ end test_frule(clamp, 4., 2., 3.) test_rrule(clamp, 4., 2., 3.) - # max < min + # high < low test_frule(clamp, 3., 4., 2.) test_rrule(clamp, 3., 4., 2.) end