From 7a75bd34268bbb2686da34185d93fd649a76d231 Mon Sep 17 00:00:00 2001 From: Jarrett Revels Date: Tue, 19 Feb 2019 13:22:41 -0500 Subject: [PATCH] add hook for abs definition that downstream packages can overload --- src/rules.jl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/rules.jl b/src/rules.jl index 47e7576..5ed0ca8 100644 --- a/src/rules.jl +++ b/src/rules.jl @@ -70,7 +70,11 @@ else :( SpecialFunctions.digamma($x) ) end @define_diffrule Base.transpose(x) = :( 1 ) -@define_diffrule Base.abs(x) = :( signbit($x) ? -one($x) : one($x) ) +@define_diffrule Base.abs(x) = :( DiffRules._abs_deriv($x) ) + +# We provide this hook for special number types like `Interval` +# that need their own special definition of `abs`. +_abs_deriv(x) = signbit(x) ? -one(x) : one(x) # binary # #--------#