An interface to various automatic differentiation backends in Julia.
MIT License
Published by gdalle 3 months ago
SecondOrder(AutoForwardDiff(), AutoReverseDiff())
AutoEnzyme(constant_function=false)
by @gdalle in https://github.com/gdalle/DifferentiationInterface.jl/pull/382
v0.6
by @adrhill in https://github.com/gdalle/DifferentiationInterface.jl/pull/392
AutoEnzyme(; constant_function)
by @gdalle in https://github.com/gdalle/DifferentiationInterface.jl/pull/394
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.9...DifferentiationInterface-v0.5.10
Published by gdalle 3 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.8...DifferentiationInterface-v0.5.9
Published by gdalle 3 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.7...DifferentiationInterface-v0.5.8
Published by gdalle 4 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.6...DifferentiationInterface-v0.5.7
Published by gdalle 4 months ago
A lot of internal changes to allow for batched mode pushforward
, pullback
and hvp
(propagating several seeds at once) in #320 and other PRs. The end result is that jacobian
and hessian
should be faster for the backends that support it, in both dense and sparse settings.
At the moment, batched mode is not public API, and only works with ForwardDiff (by storing several Partials
in a Dual
number), but I plan to add Enzyme soon (leveraging BatchDuplicated
). When I say "not public API", I mean that users will reap the benefits by default when they call jacobian
or hessian
, but shouldn't rely on the lower-level primitives pushforward
, pullback
and hvp
to work in batched mode (this behavior is not documented anyway).
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.5...DifferentiationInterface-v0.5.6
Published by gdalle 4 months ago
Breaking changes to the Scenario
API in #323. The constructors now require more data, the ref_backend
has (temporarily?) disappeared for test_differentiation
, and benchmark_differentiation
directly returns a DataFrame
.
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.4...DifferentiationInterfaceTest-v0.5.0
Published by gdalle 5 months ago
ForwardDiff
by @gerlero in https://github.com/gdalle/DifferentiationInterface.jl/pull/310
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.4...DifferentiationInterfaceTest-v0.4.4
Published by gdalle 5 months ago
ForwardDiff
by @gerlero in https://github.com/gdalle/DifferentiationInterface.jl/pull/310
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.4...DifferentiationInterface-v0.5.5
Published by gdalle 5 months ago
value_gradient_and_hessian
by @gdalle in https://github.com/gdalle/DifferentiationInterface.jl/pull/305
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.2...DifferentiationInterfaceTest-v0.4.3
Published by gdalle 5 months ago
value_gradient_and_hessian
by @gdalle in https://github.com/gdalle/DifferentiationInterface.jl/pull/305
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.3...DifferentiationInterface-v0.5.4
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.2...DifferentiationInterface-v0.5.3
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.1...DifferentiationInterface-v0.5.2
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.5.0...DifferentiationInterface-v0.5.1
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.1...DifferentiationInterfaceTest-v0.4.2
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.4.0...DifferentiationInterfaceTest-v0.4.1
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.4.2...DifferentiationInterface-v0.5.0
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.4.1...DifferentiationInterface-v0.4.2
Published by gdalle 5 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.4.0...DifferentiationInterface-v0.4.1
Published by gdalle 6 months ago
Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterfaceTest-v0.3.0...DifferentiationInterfaceTest-v0.4.0
Published by gdalle 6 months ago
value_and_pullback(!)_split
) has been replaced by same-point preparation of pullback
, which is functionally identical (https://github.com/gdalle/DifferentiationInterface.jl/pull/255)Full Changelog: https://github.com/gdalle/DifferentiationInterface.jl/compare/DifferentiationInterface-v0.3.4...DifferentiationInterface-v0.4.0