Recent Releases of ImplicitDifferentiation

ImplicitDifferentiation - v0.9.1

ImplicitDifferentiation v0.9.1

Diff since v0.9.0

Merged pull requests: - fix: provide initial value to iterative linear solver (#182) (@gdalle) - chore: bump compat for KrylovKit to v0.10.0 (#184) (@gdalle) - feat: add least-squares linear solver (#185) (@gdalle)

- Julia
Published by github-actions[bot] 6 months ago

ImplicitDifferentiation - v0.9.0

ImplicitDifferentiation v0.9.0

Diff since v0.8.1

Breaking changes

  • Switch to KrylovKit for linear solve
  • Remove options from IterativeLinearSolver and OperatorRepresentation
  • Remove preparation-related options from the ImplicitFunction constructor

Merged pull requests: - test: use ChainRulesTestUtils (#175) (@gdalle) - Revert "test: use ChainRulesTestUtils" (#177) (@gdalle) - refactor!: split out preparation (#179) (@gdalle) - revamp!: use KrylovKit for type flexibility (beyond Vector), split out preparation (#180) (@gdalle) - fix: only factorize for direct linear solve (#181) (@gdalle)

- Julia
Published by github-actions[bot] 7 months ago

ImplicitDifferentiation - v0.8.1

ImplicitDifferentiation v0.8.1

Diff since v0.8.0

Merged pull requests: - fix: ignore input type in LinearOperator construction by default (#174) (@gdalle)

- Julia
Published by github-actions[bot] 9 months ago

ImplicitDifferentiation - v0.8.0

ImplicitDifferentiation v0.8.0

Diff since v0.7.2

Breaking changes

  • Renamed KrylovLinearSolver into IterativeLinearSolver
  • Strengthened typing in iterative solve, which will make ComponentArrays error unless the OperatorRepresentation is switched from LinearOperators to LinearMaps
  • Split the backend keyword to ImplicitFunction into backends (one for x and one for y)
  • Activated strict mode with DifferentiationInterface to catch typing errors

Merged pull requests: - Update TagBot (#168) (@gdalle) - CompatHelper: bump compat for Krylov to 0.10, (keep existing compat) (#169) (@github-actions[bot]) - chore: bump version (#170) (@gdalle) - fix!: revamp linear operator handling (#172) (@gdalle) - test!: better tests (#173) (@gdalle)

- Julia
Published by github-actions[bot] 9 months ago

ImplicitDifferentiation - v0.7.2

What's Changed

  • Allow generic arrays, not just vectors by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/167

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.7.1...v0.7.2

- Julia
Published by gdalle 11 months ago

ImplicitDifferentiation - v0.7.1

What's Changed

  • Update ForwardDiff.jl compat by @longemen3000 in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/164
  • Bump version by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/165

New Contributors

  • @longemen3000 made their first contribution in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/164

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.7.0...v0.7.1

- Julia
Published by gdalle 11 months ago

ImplicitDifferentiation - v0.7.0

What's Changed

  • Complete revamp by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/160
  • Remove mention of (now unsupported) kwargs by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/162
  • Delete build directory by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/163

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: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.6.3...v0.7.0

- Julia
Published by gdalle 11 months ago

ImplicitDifferentiation - v0.6.3

What's Changed

  • docs: fix typo by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/158
  • test: add runtime activity to enzyme by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/159
  • Remove wrong transpose by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/161

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.6.2...v0.6.3

- Julia
Published by gdalle 11 months ago

ImplicitDifferentiation - v0.6.2

What's Changed

  • Adapt to new Enzyme and DifferentiationInterface by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/156
  • Make Krylov solver verbose and public by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/157

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.6.1...v0.6.2

- Julia
Published by gdalle 11 months ago

ImplicitDifferentiation - v0.6.1

What's Changed

  • Fix Enzyme extension and add new broken test by @gdalle in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/151

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.6.0...v0.6.1

- Julia
Published by gdalle over 1 year ago

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

New Contributors

  • @sfalmo made their first contribution in https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/pull/133

Full Changelog: https://github.com/JuliaDecisionFocusedLearning/ImplicitDifferentiation.jl/compare/v0.5.2...v0.6.0

- Julia
Published by gdalle over 1 year ago

ImplicitDifferentiation - v0.5.2

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)

- Julia
Published by github-actions[bot] over 2 years ago

ImplicitDifferentiation - v0.5.1

What's Changed

  • Fix typos in 0_intro.jl by @pitmonticone in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/117
  • Don't test on nightly by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/120
  • More lenient iterative linear solver by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/119

New Contributors

  • @pitmonticone made their first contribution in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/117

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.5.0...v0.5.1

- Julia
Published by gdalle over 2 years ago

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

New Contributors

  • @thorek1 made their first contribution in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/89

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.4.4...v0.5.0

- Julia
Published by gdalle over 2 years ago

ImplicitDifferentiation - v0.4.4

ImplicitDifferentiation v0.4.4

Diff since v0.4.3

Closed issues: - Type instabilities? (#36)

Merged pull requests: - Fix flattening bug (#52) (@gdalle) - Document single output (#53) (@gdalle)

- Julia
Published by github-actions[bot] almost 3 years ago

ImplicitDifferentiation - v0.4.3

ImplicitDifferentiation v0.4.3

Diff since v0.4.2

Closed issues: - Support several inputs instead of just x (#33) - Seems CI on 1.6 fails because of this line (#44)

Merged pull requests: - Performance tweaks (#47) (@gdalle) - Don't dualize z (#49) (@baggepinnen) - Remove <:Real constraint in rrule (#50) (@gdalle)

- Julia
Published by github-actions[bot] almost 3 years ago

ImplicitDifferentiation - v0.4.2

What's Changed

  • Allow AbstractVectors by @baggepinnen in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/45

New Contributors

  • @baggepinnen made their first contribution in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/45

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.4.1...v0.4.2

- Julia
Published by gdalle almost 3 years ago

ImplicitDifferentiation - v0.4.1

What's Changed

  • Improve type stability by @YingboMa in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/41

New Contributors

  • @YingboMa made their first contribution in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/41

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.4.0...v0.4.1

- Julia
Published by gdalle almost 3 years ago

ImplicitDifferentiation - v0.4.0

ImplicitDifferentiation v0.4.0

Diff since v0.3.0

Closed issues: - Add JET.test_package to test suite (#37)

Merged pull requests: - Enable higher-order derivatives (#31) (@gdalle) - Update citation to 0.3.0 (#34) (@gdalle) - Add JET correctness testing and simplify pullbacks in rrule (#38) (@gdalle) - Move tutorials to examples folder and add details to the docs (#39) (@gdalle) - Add second forward output and autodiff backend extensions (#40) (@gdalle)

- Julia
Published by github-actions[bot] almost 3 years ago

ImplicitDifferentiation - v0.3.0

What's Changed

  • Improve docstring to specify dimension of conditions by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/13
  • Prepare for 1.8 by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/19
  • Refresh tests and add ForwardDiff example by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/27
  • Enable higher-order derivatives by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/31

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.2.0...v0.3.0

- Julia
Published by gdalle almost 3 years ago

ImplicitDifferentiation - v0.2.0

What's Changed

  • Compatibility with higher-dim arrays & better examples by @gdalle in https://github.com/gdalle/ImplicitDifferentiation.jl/pull/12

Full Changelog: https://github.com/gdalle/ImplicitDifferentiation.jl/compare/v0.1.0...v0.2.0

- Julia
Published by gdalle over 3 years ago

ImplicitDifferentiation - v0.1.0

First functional version, in time for JuliaCon 2022!

- Julia
Published by gdalle over 3 years ago