@@ -41,6 +41,10 @@ AD.primal_value(x::AbstractArray{<:ForwardDiff.Dual}) = ForwardDiff.value.(x)
4141
4242# these implementations are more efficient than the fallbacks
4343
44+ function AD. derivative (:: AD.ForwardDiffBackend , f, x:: Real )
45+ return (ForwardDiff. derivative (f, x),)
46+ end
47+
4448function AD. gradient (ba:: AD.ForwardDiffBackend , f, x:: AbstractArray )
4549 cfg = ForwardDiff. GradientConfig (f, x, chunk (ba, x))
4650 return (ForwardDiff. gradient (f, x, cfg),)
@@ -50,7 +54,7 @@ function AD.jacobian(ba::AD.ForwardDiffBackend, f, x::AbstractArray)
5054 cfg = ForwardDiff. JacobianConfig (AD. asarray ∘ f, x, chunk (ba, x))
5155 return (ForwardDiff. jacobian (AD. asarray ∘ f, x, cfg),)
5256end
53- AD. jacobian (:: AD.ForwardDiffBackend , f, x:: Number ) = (ForwardDiff. derivative (f, x),)
57+ AD. jacobian (:: AD.ForwardDiffBackend , f, x:: Real ) = (ForwardDiff. derivative (f, x),)
5458
5559function AD. hessian (ba:: AD.ForwardDiffBackend , f, x:: AbstractArray )
5660 cfg = ForwardDiff. HessianConfig (f, x, chunk (ba, x))
0 commit comments