@@ -183,19 +183,23 @@ function Base.convert(
183183 )
184184end
185185
186+ _indexing (A:: MutableSparseMatrixCSC ) = A. indexing
187+
188+ _indexing (:: SparseArrays.SparseMatrixCSC ) = OneBasedIndexing ()
189+
186190function _first_in_column (
187- A:: MutableSparseMatrixCSC{Tv,Ti } ,
191+ A:: Union{MutableSparseMatrixCSC,SparseArrays.SparseMatrixCSC } ,
188192 row:: Integer ,
189193 col:: Integer ,
190- ) where {Tv,Ti}
194+ )
191195 range = SparseArrays. nzrange (A, col)
192- row = _shift (row, OneBasedIndexing (), A . indexing )
196+ row = _shift (row, OneBasedIndexing (), _indexing (A) )
193197 idx = searchsortedfirst (view (A. rowval, range), row)
194198 return get (range, idx, last (range) + 1 )
195199end
196200
197201function extract_function (
198- A:: MutableSparseMatrixCSC{T} ,
202+ A:: Union{ MutableSparseMatrixCSC{T},SparseArrays.SparseMatrixCSC{T} } ,
199203 row:: Integer ,
200204 constant:: T ,
201205) where {T}
@@ -205,7 +209,7 @@ function extract_function(
205209 if idx > last (SparseArrays. nzrange (A, col))
206210 continue
207211 end
208- r = _shift (A. rowval[idx], A . indexing , OneBasedIndexing ())
212+ r = _shift (A. rowval[idx], _indexing (A) , OneBasedIndexing ())
209213 if r == row
210214 push! (
211215 func. terms,
@@ -217,7 +221,7 @@ function extract_function(
217221end
218222
219223function extract_function (
220- A:: MutableSparseMatrixCSC{T} ,
224+ A:: Union{ MutableSparseMatrixCSC{T},SparseArrays.SparseMatrixCSC{T} } ,
221225 rows:: UnitRange ,
222226 constants:: Vector{T} ,
223227) where {T}
@@ -231,7 +235,7 @@ function extract_function(
231235 if idx[col] > last (SparseArrays. nzrange (A, col))
232236 continue
233237 end
234- row = _shift (A. rowval[idx[col]], A . indexing , OneBasedIndexing ())
238+ row = _shift (A. rowval[idx[col]], _indexing (A) , OneBasedIndexing ())
235239 if row != rows[output_index]
236240 continue
237241 end
0 commit comments