What’s new in v0.3.1#
Added in version v0.3.1.
v0.3.1 (2026-06-22) is a small point release. It adds one function, early,
for a downstream project that needed a differentiable linear solve from a
pip install before 0.4.0. Nothing else changed: no existing surface moved.
What is new#
maddening.core.solver_utils.ift_linear_solve(EXPERIMENTAL): a differentiable linear solve. It wrapslineax.linear_solve, so a node that solves a linear system inupdate()gets gradients through the solve without acustom_vjpof its own. The solvers are"gmres"(the default, with its restart set tomin(N, 50)),"cg"(for a symmetric positive-definite matrix) and"dense". Apreconditioneris passed on to lineax.
Dependencies#
A new
[ift]extra installslineax>=0.0.7.lineaxis imported only whenift_linear_solveis called, so the base install did not change.
Its status in 0.4.0#
ift_linear_solveis stillEXPERIMENTAL. 0.3.1 said it would becomeSTABLEwithAdaptiveNode; 0.4.0 promoted nothing toSTABLE.lineaxis a base dependency in 0.4.0, and the[ift]extra installs nothing.Its default
atolis relative to the right-hand side (MADD-ANO-123). It was an absolute1e-8.0.4.0 fixes two of its defects. With
solver="cg"or"gmres", 0.3.1 could return a value that was not the solution, with no error (MADD-ANO-283), and for a right-hand side with a NaN or infinite entry it returned zeros with no error (MADD-ANO-155).With
solver="cg"it can still return NaN where lineax’s CG breaks down (MADD-ANO-264, partly resolved). Usesolver="gmres".
The 0.4.0 release notes have the rest. The changelog’s [0.3.1]
entry is the itemised list.