Release Notes
v4.0
- Batched (matrix) right-hand sides are now supported:
solve(LinearProblem(A, B))withB::AbstractMatrixcomputes the equivalent ofA \ B, factorizingAonce and returningsol.uas asize(A, 2) × size(B, 2)matrix. This is a breaking change: previously a matrixbinitialized a vector-shapeduand generally errored downstream. Batched right-hand sides are supported by the factorization-based algorithms; iterative (Krylov) methods throw an informativeArgumentErrorfor matrixb.
Upcoming Changes
CudaOffloadFactorizationhas been split into two algorithms:CudaOffloadLUFactorization- Uses LU factorization for better performanceCudaOffloadQRFactorization- Uses QR factorization for better numerical stability
CudaOffloadFactorizationis now deprecated and will show a warning suggesting to use one of the new algorithms
v2.0
LinearCachechanged from immutable to mutable. With this, the out of place interfaces likeset_Awere deprecated for simply mutating the cache,cache.A = .... This fixes some correctness checks and makes the package more robust while improving performance.- The default algorithm is now type-stable and does not rely on a dynamic dispatch for the choice.
- IterativeSolvers.jl and KrylovKit.jl were made into extension packages.
- Documentation of the solvers has changed to docstrings