@@ -118,8 +118,12 @@ function Base.copy(a::SparseMatrixCSR{Bi}) where Bi
118
118
SparseMatrixCSR {Bi} (a. m,a. n,copy (a. rowptr),copy (a. colval),copy (a. nzval))
119
119
end
120
120
121
+ _copy_and_increment (x) = copy (x) .+ 1
122
+
121
123
function LinearAlgebra. lu (a:: SparseMatrixCSR{0} )
122
- @assert false " Base.lu(a::SparseMatrixCSR{0}) not yet implemented"
124
+ rowptr = _copy_and_increment (a. rowptr)
125
+ colval = _copy_and_increment (a. colval)
126
+ Transpose (lu (SparseMatrixCSC (a. m,a. n,rowptr,colval,a. nzval)))
123
127
end
124
128
125
129
function LinearAlgebra. lu (a:: SparseMatrixCSR{1} )
@@ -132,6 +136,14 @@ function LinearAlgebra.lu!(
132
136
Transpose (lu! (translu. parent,SparseMatrixCSC (a. m,a. n,a. rowptr,a. colval,a. nzval)))
133
137
end
134
138
139
+ function LinearAlgebra. lu! (
140
+ translu:: Transpose{T,<:SuiteSparse.UMFPACK.UmfpackLU{T}} ,
141
+ a:: SparseMatrixCSR{0} ) where {T}
142
+ rowptr = _copy_and_increment (a. rowptr)
143
+ colval = _copy_and_increment (a. colval)
144
+ Transpose (lu! (translu. parent,SparseMatrixCSC (a. m,a. n,rowptr,colval,a. nzval)))
145
+ end
146
+
135
147
size (S:: SparseMatrixCSR ) = (S. m, S. n)
136
148
IndexStyle (:: Type{<:SparseMatrixCSR} ) = IndexCartesian ()
137
149
function getindex (A:: SparseMatrixCSR{Bi,T} , i0:: Integer , i1:: Integer ) where {Bi,T}
0 commit comments