Skip to content

DifferentiationInterface-v0.6.0

Compare
Choose a tag to compare
@gdalle gdalle released this 25 Sep 17:38
· 88 commits to main since this release
959f634

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 called prep) comes right before the backend.
  • Tangents require NTuples (#455 + #501): for pushforward, pullback and hvp, you must always pass tangent(s) inside an NTuple (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 in pushforward, pullback and hvp 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 with NTuple by @gdalle in #501

New Contributors

Full Changelog: DifferentiationInterface-v0.5.17...DifferentiationInterface-v0.6.0