Linear solvers in JAX and Equinox. https://docs.kidger.site/lineax
lx.JacobianLinearOperator
for whether to use jacfwd
or jacrev
. (Thanks @thibmonsel! #75)## Bugfixes
grad-of-vmap-of-<lx.linear_solve with only some outputs used>
will no longer crash during tracing. (#84)lineax.__version__
being pinned to 0.0.1
.Full Changelog: https://github.com/patrick-kidger/lineax/compare/v0.0.4...v0.0.5
We now have a paper on arXiv!
Features
lineax.conj
which computes the conjugate of an operator. (E.g. for a matrix A, it returns A-bar.)lineax.AbstractLinearSolver.conj
, which conjugates the result of lineax.AbstractLinearSolver.init
.Bugfixes
PyTreeLinearOperator.as_matrix
returning the wrong output if the pytree was of zero size.lineax.internal.{max_norm, rms_norm, two_norm, sum_squares, tree_dot, default_floating_dtype}
. (Being in the internal
namespace means that these are undocumented/experimental, and may move somewhere else in the future.)Internal changes
Now using ruff-format
!
Full Changelog: https://github.com/google/lineax/compare/v0.0.3...v0.0.4
This is a minor bugfix release.
lineax.linear_solve
but leaving some outputs unused. (Specifically, when we get symbolic zero cotangents.) (#49)lineax.CG
. (#49)lineax.IdentityLinearOperator
with different input/output structures. (#50)Full Changelog: https://github.com/google/lineax/compare/v0.0.2...v0.0.3
Minor release, just tweaking a few things.
__init__
and __post_init__
.)IdentityLinearOperator(structure)
is now IdentityLinearOperator(input_structure, output_structure)
, to support differing input/output structures.lax.scan
.lineax.SVD()
now no longer returns NaNs when given a matrix of all zeros. (This is also an improvement over core JAX, which does not handle this case.)linear_solve
.linear_solve
crashing in a handful of edge cases. (When JAX passed symbolic zeros for AD.)Full Changelog: https://github.com/google/lineax/compare/v0.0.1...v0.0.2