Skip to content

Commit b307fea

Browse files
authored
Remove the jacobian and primal_value primitives (#95)
1 parent 8adb20e commit b307fea

File tree

4 files changed

+4
-18
lines changed

4 files changed

+4
-18
lines changed

ext/AbstractDifferentiationFiniteDifferencesExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Create an AD backend that uses forward mode with FiniteDifferences.jl.
1515
"""
1616
AD.FiniteDifferencesBackend() = AD.FiniteDifferencesBackend(FiniteDifferences.central_fdm(5, 1))
1717

18-
AD.@primitive function jacobian(ba::AD.FiniteDifferencesBackend, f, xs...)
18+
function AD.jacobian(ba::AD.FiniteDifferencesBackend, f, xs...)
1919
return FiniteDifferences.jacobian(ba.method, f, xs...)
2020
end
2121

ext/AbstractDifferentiationReverseDiffExt.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ AD.primal_value(x::ReverseDiff.TrackedReal) = ReverseDiff.value(x)
1414
AD.primal_value(x::AbstractArray{<:ReverseDiff.TrackedReal}) = ReverseDiff.value.(x)
1515
AD.primal_value(x::ReverseDiff.TrackedArray) = ReverseDiff.value(x)
1616

17-
AD.@primitive function jacobian(ba::AD.ReverseDiffBackend, f, xs...)
17+
function AD.jacobian(ba::AD.ReverseDiffBackend, f, xs...)
1818
xs_arr = map(AD.asarray, xs)
1919
tape = ReverseDiff.JacobianTape(xs_arr) do (xs_arr...)
2020
xs_new = map(xs, xs_arr) do x, x_arr

src/AbstractDifferentiation.jl

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -496,10 +496,6 @@ macro primitive(expr)
496496
return define_pushforward_function_and_friends(fdef) |> esc
497497
elseif name == :pullback_function
498498
return define_pullback_function_and_friends(fdef) |> esc
499-
elseif name == :jacobian
500-
return define_jacobian_and_friends(fdef) |> esc
501-
elseif name == :primal_value
502-
return define_primal_value(fdef) |> esc
503499
else
504500
throw("Unsupported AD primitive.")
505501
end
@@ -574,16 +570,6 @@ end
574570
_eachcol(a::Number) = (a,)
575571
_eachcol(a) = eachcol(a)
576572

577-
function define_jacobian_and_friends(fdef)
578-
fdef[:name] = :($(AbstractDifferentiation).jacobian)
579-
return ExprTools.combinedef(fdef)
580-
end
581-
582-
function define_primal_value(fdef)
583-
fdef[:name] = :($(AbstractDifferentiation).primal_value)
584-
return ExprTools.combinedef(fdef)
585-
end
586-
587573
function identity_matrix_like(x)
588574
throw("The function `identity_matrix_like` is not defined for the type $(typeof(x)).")
589575
end

test/defaults.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ end
1212
FDMBackend1() = FDMBackend1(central_fdm(5, 1))
1313
const fdm_backend1 = FDMBackend1()
1414
# Minimal interface
15-
AD.@primitive function jacobian(ab::FDMBackend1, f, xs...)
15+
function AD.jacobian(ab::FDMBackend1, f, xs...)
1616
return FDM.jacobian(ab.alg, f, xs...)
1717
end
1818

@@ -49,7 +49,7 @@ end
4949
## ForwardDiff
5050
struct ForwardDiffBackend1 <: AD.AbstractForwardMode end
5151
const forwarddiff_backend1 = ForwardDiffBackend1()
52-
AD.@primitive function jacobian(ab::ForwardDiffBackend1, f, xs)
52+
function AD.jacobian(ab::ForwardDiffBackend1, f, xs)
5353
if xs isa Number
5454
return (ForwardDiff.derivative(f, xs),)
5555
elseif xs isa AbstractArray

0 commit comments

Comments
 (0)