Skip to content

Releases: JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl

v0.7.2

15 Apr 13:16
da2c944
Compare
Choose a tag to compare

What's Changed

  • Allow generic arrays, not just vectors by @gdalle in #167

Full Changelog: v0.7.1...v0.7.2

v0.7.1

11 Apr 06:10
853a544
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.7.0...v0.7.1

v0.7.0

11 Apr 06:10
1a51ffa
Compare
Choose a tag to compare

What's Changed

Main breaking changes

  • The forward function (now called solver) must return a byproduct z in all cases, which will usually be nothing. It used to be optional. For most users, adaptation will only require replacing forward(x) = y by forward(x) = (y, nothing).
  • Support for keyword arguments has been removed.
  • Forward rules for Enzyme have been dropped (temporarily).

Please refer to the API reference and FAQ for more details.

Main new features

  • The ability to run preparation on the differentiation of conditions. This is useful e.g. to leverage a sparse backend and build Jacobian matrices instead of calling lazy pushforwards and pullbacks

Full Changelog: v0.6.3...v0.7.0

v0.6.3

02 Apr 13:24
f45ada3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.6.2...v0.6.3

v0.6.2

02 Apr 13:24
a2ad001
Compare
Choose a tag to compare

What's Changed

  • Adapt to new Enzyme and DifferentiationInterface by @gdalle in #156
  • Make Krylov solver verbose and public by @gdalle in #157

Full Changelog: v0.6.1...v0.6.2

v0.6.1

23 Sep 21:01
6195cd3
Compare
Choose a tag to compare

What's Changed

  • Fix Enzyme extension and add new broken test by @gdalle in #151

Full Changelog: v0.6.0...v0.6.1

v0.6.0

25 Jun 11:16
e0f156c
Compare
Choose a tag to compare

TLDR

The API has been completely redesigned to use DifferentiationInterface instead of AbstractDifferentiation. Basic use cases should not be significantly altered, but if you were using custom condition backends or solvers, please refer to the documentation.

What's Changed

  • Add codecov token by @gdalle in #130
  • Update ComponentVector compatibility with Zygote by @sfalmo in #133
  • Spring cleanup by @gdalle in #134
  • Add docs for memoization by @sfalmo in #132
  • Switch to DifferentiationInterface by @gdalle in #135
  • Update CompatHelper by @gdalle in #136
  • CompatHelper: add new compat entry for DifferentiationInterface at version 0.1, (keep existing compat) by @github-actions in #137
  • CompatHelper: add new compat entry for ADTypes at version 0.2, (keep existing compat) by @github-actions in #138
  • Update to DI v0.2 by @gdalle in #139
  • Clarify linear solvers and vector requirements by @gdalle in #140
  • Fix escaping in docstrings by @gdalle in #141
  • CompatHelper: bump compat for DifferentiationInterface to 0.3, (keep existing compat) by @github-actions in #144
  • Transfer to org by @gdalle in #145
  • Bump compat for DifferentiationInterface to 0.4 by @github-actions in #146
  • CompatHelper: bump compat for DifferentiationInterface to 0.5, (keep existing compat) by @github-actions in #147
  • Add thesis citation by @gdalle in #148
  • Cleanup before release by @gdalle in #149

New Contributors

Full Changelog: v0.5.2...v0.6.0

v0.5.2

16 Nov 21:18
e6fada5
Compare
Choose a tag to compare

ImplicitDifferentiation v0.5.2

Diff since v0.5.1

Merged pull requests:

  • Fix benchmarks judge order (#121) (@gdalle)
  • Fix FAQ (#122) (@gdalle)
  • CompatHelper: bump compat for AbstractDifferentiation to 0.6, (keep existing compat) (#124) (@github-actions[bot])
  • Revert AbstractDiff compat to 0.5 (#126) (@gdalle)
  • Remove type stability checks for AbstractDifferentiation 0.6 (#128) (@gdalle)

v0.5.1

09 Sep 18:10
028d3fb
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.5.0...v0.5.1

v0.5.0

18 Aug 19:31
8ec0ad5
Compare
Choose a tag to compare

In a nutshell

Implicit functions have become more flexible:

  • byproducts are optional, and handled automatically via dispatch
  • additional positional arguments are supported but not differentiated
  • the conditions can be differentiated using a different backend

The linear solver has been generalized:

  • it can be chosen among "implicit" and "direct"
  • the direct linear solver caches the LU factorization for each pullback or pushforward
  • it returns NaNs when the solve fails instead of erroring

General reliability of the package has improved thanks to extensive testing:

  • with standard arrays, static arrays and sparse arrays (experimental)
  • leveraging ChainRulesTestUtils.jl

See the brand new FAQ page in the docs for more details.

What's Changed

New Contributors

Full Changelog: v0.4.4...v0.5.0