Skip to content

Commit bdc44a3

Browse files
More fixes
1 parent f1f1a5c commit bdc44a3

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

src/linalg.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,26 +1326,26 @@ function _mul!(nzrang::Function, diagop::Function, odiagop::Function, C::Strided
13261326
end
13271327

13281328
# row range up to (and including if excl=false) diagonal
1329-
function nzrangeup(A::AbstractSparseMatrixCSC, i, excl=false)
1329+
function nzrangeup(A::SparseMatrixCSCUnion3, i, excl=false)
13301330
r = nzrange(A, i); r1 = r.start; r2 = r.stop
13311331
rv = rowvals(A)
13321332
@inbounds r2 < r1 || rv[r2] <= i - excl ? r : r1:(searchsortedlast(view(rv, r1:r2), i - excl) + r1-1)
13331333
end
13341334
# row range from diagonal (included if excl=false) to end
1335-
function nzrangelo(A::AbstractSparseMatrixCSC, i, excl=false)
1335+
function nzrangelo(A::SparseMatrixCSCUnion3, i, excl=false)
13361336
r = nzrange(A, i); r1 = r.start; r2 = r.stop
13371337
rv = rowvals(A)
13381338
@inbounds r2 < r1 || rv[r1] >= i + excl ? r : (searchsortedfirst(view(rv, r1:r2), i + excl) + r1-1):r2
13391339
end
1340-
function nzrangeup(A::AbstractSparseMatrixCSR, i, excl=false)
1341-
r = nzrange(A, i); r1 = r.start; r2 = r.stop
1342-
rv = colvals(A)
1343-
@inbounds r2 < r1 || rv[r1] >= i + excl ? r : (searchsortedfirst(view(rv, r1:r2), i + excl) + r1-1):r2
1340+
function nzrangeup(A::SparseMatrixCSRUnion3, i, excl=false)
1341+
c = nzrange(A, i); c1 = c.start; c2 = c.stop
1342+
cv = colvals(A)
1343+
@inbounds c2 < c1 || cv[c1] >= i + excl ? c : (searchsortedfirst(view(cv, c1:c2), i + excl) + c1-1):c2
13441344
end
1345-
function nzrangelo(A::AbstractSparseMatrixCSR, i, excl=false)
1346-
r = nzrange(A, i); r1 = r.start; r2 = r.stop
1347-
rv = colvals(A)
1348-
@inbounds r2 < r1 || rv[r2] <= i - excl ? r : r1:(searchsortedlast(view(rv, r1:r2), i - excl) + r1-1)
1345+
function nzrangelo(A::SparseMatrixCSRUnion3, i, excl=false)
1346+
c = nzrange(A, i); c1 = c.start; c2 = c.stop
1347+
cv = colvals(A)
1348+
@inbounds c2 < c1 || cv[c2] <= i - excl ? c : c1:(searchsortedlast(view(cv, c1:c2), i - excl) + c1-1)
13491349
end
13501350

13511351
dot(x::AbstractVector, A::RealHermSymComplexHerm{<:Any,<:AbstractSparseMatrixCSC}, y::AbstractVector) =

src/sparseconvert.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -366,7 +366,7 @@ function _sparsem(taA::AdjOrTrans{Tv,<:AbstractTriangularSparseCSC}) where {Tv}
366366
newcolptr[j] = ni + 1
367367
end
368368
end
369-
_sparse_gen(n, m, newcolptr, newrowval, newnzval)
369+
_sparse_gen_csc(SparseMatrixCSC, n, m, newcolptr, newrowval, newnzval)
370370
end
371371

372372
function _sparsem(taA::AdjOrTrans{Tv,<:AbstractTriangularSparseCSR{Tv,<:Any,MatrixType}}) where {Tv, MatrixType}
@@ -421,7 +421,7 @@ function _sparsem(taA::AdjOrTrans{Tv,<:AbstractTriangularSparseCSR{Tv,<:Any,Matr
421421
newrowptr[j] = ni + 1
422422
end
423423
end
424-
_sparse_gen(MatrixType, n, m, newrowptr, newcolval, newnzval)
424+
_sparse_gen_csr(MatrixType, n, m, newrowptr, newcolval, newnzval)
425425
end
426426

427427
function _sparse_gen_csc(T, m, n, newcolptr, newrowval, newnzval)

src/sparsematrix.jl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ const SparseMatrixCSCColumnSubset{Tv,Ti} =
190190
SubArray{Tv,2,<:AbstractSparseMatrixCSC{Tv,Ti},
191191
Tuple{Base.Slice{Base.OneTo{Int}},I}} where {I<:AbstractVector{<:Integer}}
192192
const SparseMatrixCSCUnion2{Tv,Ti} = Union{AbstractSparseMatrixCSC{Tv,Ti}, SparseMatrixCSCColumnSubset{Tv,Ti}}
193+
const SparseMatrixCSCUnion3{Tv,Ti} = Union{AbstractSparseMatrixCSC{Tv,Ti}, SparseMatrixCSCColumnSubset{Tv,Ti}, SparseMatrixCSCView{Tv, Ti}}
193194

194195
getcolptr(S::SorF) = getfield(S, :colptr)
195196
getcolptr(S::SparseMatrixCSCView) = view(getcolptr(parent(S)), first(S.indices[2]):(last(S.indices[2]) + 1))
@@ -202,12 +203,13 @@ nzvalview(S::AbstractSparseMatrixCSC) = view(nonzeros(S), 1:nnz(S))
202203

203204
const SparseMatrixCSRView{Tv,Ti} =
204205
SubArray{Tv,2,<:AbstractSparseMatrixCSR{Tv,Ti},
205-
Tuple{Base.Slice{Base.OneTo{Int}},I}} where {I<:AbstractUnitRange{<:Integer}}
206+
Tuple{I,Base.Slice{Base.OneTo{Int}}}} where {I<:AbstractUnitRange{<:Integer}}
206207
const SparseMatrixCSRRowSubset{Tv,Ti} =
207208
SubArray{Tv,2,<:AbstractSparseMatrixCSR{Tv,Ti},
208209
Tuple{I,Base.Slice{Base.OneTo{Int}}}} where {I<:AbstractVector{<:Integer}}
209210
const SparseMatrixCSRUnion{Tv,Ti} = Union{AbstractSparseMatrixCSR{Tv,Ti}, SparseMatrixCSRView{Tv,Ti}}
210211
const SparseMatrixCSRUnion2{Tv,Ti} = Union{AbstractSparseMatrixCSR{Tv,Ti}, SparseMatrixCSRRowSubset{Tv,Ti}}
212+
const SparseMatrixCSRUnion3{Tv,Ti} = Union{AbstractSparseMatrixCSR{Tv,Ti}, SparseMatrixCSRRowSubset{Tv,Ti}, SparseMatrixCSRView{Tv, Ti}}
211213

212214
getrowptr(S::AbstractSparseMatrixCSR) = getfield(S, :rowptr)
213215
getrowptr(S::SparseMatrixCSRView) = view(getrowptr(parent(S)), first(S.indices[2]):(last(S.indices[2]) + 1))

0 commit comments

Comments
 (0)