LinearSolve.jl: High-Performance Unified Interface for Linear Solvers in Julia. Easily switch between factorization and Krylov methods, add preconditioners, and all in one interface.
SciMLBase.init did check only for SparseMatrixCSC, thus leading to dispatches for AbstractSparseMatrixCSC with awful timings.
Now, if A (resp. b) is an AbstractSparseMatrixCSC, instead of making a copy (or even deepcopy), a SparseMatrixCSC is constructed using size, getcolptr, rowvals and nonzeros.
Checklist
[x] Appropriate tests were added
[x] Any code changes were done in a way that does not break public API
[x] All documentation related to code changes were updated
SciMLBase.init
did check only forSparseMatrixCSC
, thus leading to dispatches for AbstractSparseMatrixCSC with awful timings.AbstractSparseMatrixCSC
, instead of making acopy
(or evendeepcopy
), aSparseMatrixCSC
is constructed usingsize
,getcolptr
,rowvals
andnonzeros
.Checklist
Additional context
Add any other context about the problem here.