DifferentiationInterface-v0.5.6
TLDR
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).
What's Changed
- Replace closures with callable structs in second order by @gdalle in #315
- Add dev guide to docs by @gdalle in #317
- Rename p to dg for Hessian-vector product by @gdalle in #318
- Update CITATION by @adrhill in #322
- Revamp test scenarios by @gdalle in #323
- Batched pushforward, pullback and hvp by @gdalle in #320
- Update SCT compat in DIT by @gdalle in #327
- Batched ForwardDiff pushforward by @gdalle in #328
- Batched HVP by @gdalle in #330
- Test batched operators by @gdalle in #331
- Remove custom printing by @gdalle in #332
- Fix backend display in docs by @gdalle in #333
- Better seed handling in Jacobian and Hessian by @gdalle in #334
- Fix DifferentiationInterfaceTest tutorial by @gdalle in #335
- Bump versions by @gdalle in #336
- Improve type stability of Jacobians and Hessian, fix test scenarios by @gdalle in #337
Full Changelog: DifferentiationInterface-v0.5.5...DifferentiationInterface-v0.5.6