Releases: JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl
Releases · JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl
v0.7.2
v0.7.1
What's Changed
- Update ForwardDiff.jl compat by @longemen3000 in #164
- Bump version by @gdalle in #165
New Contributors
- @longemen3000 made their first contribution in #164
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- Complete revamp by @gdalle in #160
- Remove mention of (now unsupported) kwargs by @gdalle in #162
- Delete build directory by @gdalle in #163
Main breaking changes
- The
forward
function (now calledsolver
) must return a byproductz
in all cases, which will usually benothing
. It used to be optional. For most users, adaptation will only require replacingforward(x) = y
byforward(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
v0.6.2
v0.6.1
v0.6.0
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
ImplicitDifferentiation v0.5.2
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
What's Changed
- Fix typos in 0_intro.jl by @pitmonticone in #117
- Don't test on nightly by @gdalle in #120
- More lenient iterative linear solver by @gdalle in #119
New Contributors
- @pitmonticone made their first contribution in #117
Full Changelog: v0.5.0...v0.5.1
v0.5.0
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
NaN
s 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