Skip to content

v0.5.0

Choose a tag to compare

@gdalle gdalle released this 18 Aug 19:31
· 51 commits to main since this release
8ec0ad5

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

  • Return the output only from ImplicitFunction not the byproduct by default by @mohamed82008 in #56
  • No differentiating byproducts by @gdalle in #61
  • No byproduct by default by @mohamed82008 in #57
  • cache the LU factorisation in the direct linear solver and better static array support by @mohamed82008 in #64
  • test the output type of the forward function when a byproduct exists by @mohamed82008 in #76
  • Fix docs and change constructor by @gdalle in #81
  • NaNs for linear solvers when failed by @gdalle in #83
  • Add precompilation workflows for ForwardDiff and Zygote by @gdalle in #85
  • Transparent handling of byproduct by @gdalle in #86
  • Customize backend for conditions by @gdalle in #87
  • Fix wrong nb of pullbacks by @gdalle in #91
  • Accept nondifferentiated args by @thorek1 in #89
  • Copy README into docs by @gdalle in #93
  • Add warning when linear solver returns NaNs by @gdalle in #94
  • Add benchmarks by @gdalle in #95
  • Add warning for sparse arrays by @gdalle in #96
  • Fix some issues related to sparse and static arrays by @gdalle in #97
  • Plotting benchmarks by @gdalle in #99
  • Performance fixes by @gdalle in #100
  • Shorten code by @gdalle in #102
  • Verbose or not for solver by @gdalle in #103
  • 2d benchmarks by @gdalle in #104
  • Output size is kwarg in benchmarks by @gdalle in #105
  • Back to b linop by @gdalle in #106
  • Add judgement script by @gdalle in #110
  • Test different shapes for x and y by @gdalle in #109
  • Dense jacobians by @gdalle in #111
  • Better document test_rrule tweak by @gdalle in #113
  • Simpler tests that work with SparseArrays by @gdalle in #114
  • Bump version to 0.5.0 by @gdalle in #115

New Contributors

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