@@ -17,18 +17,23 @@ function LinearSolve.init_cacheval(
1717end
1818
1919function LinearSolve. init_cacheval (
20- :: SparspakFactorization , A:: AbstractSparseMatrixCSC , b, u, Pl, Pr, maxiters:: Int , abstol,
20+ :: SparspakFactorization , A:: AbstractSparseMatrixCSC{Tv, Ti} , b, u, Pl, Pr, maxiters:: Int , abstol,
2121 reltol,
22- verbose:: Bool , assumptions:: OperatorAssumptions )
23- A = convert (AbstractMatrix, A)
24- if A isa SparseArrays. AbstractSparseArray
25- return sparspaklu (
26- SparseMatrixCSC (size (A)... , getcolptr (A), rowvals (A),
27- nonzeros (A)),
28- factorize = false )
22+ verbose:: Bool , assumptions:: OperatorAssumptions ) where {Tv, Ti}
23+
24+ if size (A,1 ) == size (A,2 )
25+ A = convert (AbstractMatrix, A)
26+ if A isa SparseArrays. AbstractSparseArray
27+ return sparspaklu (
28+ SparseMatrixCSC {Tv, Ti} (size (A)... , getcolptr (A), rowvals (A),
29+ nonzeros (A)),
30+ factorize = false )
31+ else
32+ return sparspaklu (SparseMatrixCSC (0 , 0 , [one (Ti)], Ti[], eltype (A)[]),
33+ factorize = false )
34+ end
2935 else
30- return sparspaklu (SparseMatrixCSC (0 , 0 , [1 ], Int[], eltype (A)[]),
31- factorize = false )
36+ PREALLOCATED_SPARSEPAK
3237 end
3338end
3439
0 commit comments