DifferentiationInterface-v0.6.0
gdalle
released this
25 Sep 17:38
·
88 commits
to main
since this release
TLDR
Caution
This release is very breaking, nearly all downstream code will require adaptation. Read the documentation for details.
Main breaking changes
- New order of arguments (#435): the result of preparation (formerly called
extras
, now calledprep
) comes right before thebackend
. - Tangents require
NTuple
s (#455 + #501): forpushforward
,pullback
andhvp
, you must always pass tangent(s) inside anNTuple
(even if it has a single element). - Tapir.jl is now called Mooncake.jl (#500)
Main new features
- Constant arguments (#461 and others): most backends now support passing additional context arguments that are not differentiated (unlike the active argument
x
). - Package load time has been greatly reduced (#448)
- Enzyme's batch mode is fully exploited (#471, #495)
What's Changed
- [BREAKING] Change order of arguments by @gdalle in #435
- [BREAKING] Move sparse functionality into package extensions by @gdalle in #448
- [BREAKING] Modify checks and improve docs by @gdalle in #449
- Remove dependency on DocStringExtensions by @gdalle in #450
- Remove FillArrays dependency by implementing custom
OneElement
by @gdalle in #453 - Bound FastDifferentiation compat to <0.4 by @gdalle in #454
- [BREAKING] Force use of
Tangents
inpushforward
,pullback
andhvp
by @gdalle in #455 - Better type annotations in fallbacks by @gdalle in #458
- Remove fallback
backend -> SecondOrder(backend, backend)
by @gdalle in #459 - Get rid of functors for second order by @gdalle in #460
- Fix docs typos by @gdalle in #463
- Update Tapir to use cached rules where possible by @willtebbutt in #464
- Multi-argument support: basic infrastructure by @gdalle in #461
- Improve docs and document contexts by @gdalle in #469
- [BREAKING] Clean up tests by @gdalle in #470
- Fix and test ForwardDiff type stability by @gdalle in #473
- Contexts for Zygote by @gdalle in #474
- Clarify role of constants in preparation by @gdalle in #485
- Adapt to Enzyme v0.13 by @ExpandingMan in #471
- Make
DifferentiateWith
compatible with ForwardDiff, clarify docs by @gdalle in #487 - Remove use of custom
isequal
to compare scenarios by @gdalle in #486 - Add constant contexts for Enzyme by @gdalle in #489
- Update neural network tests by @gdalle in #490
- Rename extras to prep by @gdalle in #491
- Better HVP in reverse over forward by @gdalle in #494
- Implement contexts for more backends by @gdalle in #492
- More batch mode for Enzyme by @gdalle in #495
- Fix Enzyme's batched pullback and Jacobian by @gdalle in #499
- Contexts for FiniteDiff and PolyesterForwardDiff, better context testing by @gdalle in #497
- Clean up ReverseDiff type annotations by @gdalle in #498
- [BREAKING] Transition from Tapir to Mooncake by @gdalle in #500
- Replace
Tangents
withNTuple
by @gdalle in #501
New Contributors
- @ExpandingMan made their first contribution in #471
Full Changelog: DifferentiationInterface-v0.5.17...DifferentiationInterface-v0.6.0