@@ -26,7 +26,7 @@ struct SparseMatrixCSC{Tv,Ti<:Integer} <: AbstractSparseMatrixCSC{Tv,Ti}
2626    function  SparseMatrixCSC {Tv,Ti} (m:: Integer , n:: Integer , colptr:: Vector{Ti} ,
2727                            rowval:: Vector{Ti} , nzval:: Vector{Tv} ) where  {Tv,Ti<: Integer }
2828        sparse_check_Ti (m, n, Ti)
29-         _goodbuffers (Int (m), Int (n), colptr, rowval, nzval) || 
29+         _goodbufferscsc (Int (m), Int (n), colptr, rowval, nzval) || 
3030            throw (ArgumentError (" Invalid buffers for SparseMatrixCSC construction n=$n , colptr=$(summary (colptr)) , rowval=$(summary (rowval)) , nzval=$(summary (nzval)) " 
3131        new (Int (m), Int (n), colptr, rowval, nzval)
3232    end 
@@ -73,7 +73,7 @@ struct FixedSparseCSC{Tv,Ti<:Integer} <: AbstractSparseMatrixCSC{Tv,Ti}
7373                            rowval:: ReadOnly{Ti,1,Vector{Ti}} ,
7474                            nzval:: Vector{Tv} ) where  {Tv,Ti<: Integer }
7575        sparse_check_Ti (m, n, Ti)
76-         _goodbuffers (Int (m), Int (n), parent (colptr), parent (rowval), nzval) || 
76+         _goodbufferscsc (Int (m), Int (n), parent (colptr), parent (rowval), nzval) || 
7777            throw (ArgumentError (" Invalid buffers for FixedSparseCSC construction n=$n , colptr=$(summary (colptr)) , rowval=$(summary (rowval)) , nzval=$(summary (nzval)) " 
7878        new (Int (m), Int (n), colptr, rowval, nzval)
7979    end 
@@ -164,15 +164,21 @@ end
164164
165165size (S:: SorF ) =  (getfield (S, :m ), getfield (S, :n ))
166166
167- _goodbuffers (S:: AbstractSparseMatrixCSC ) =  _goodbuffers (size (S)... , getcolptr (S), getrowval (S), nonzeros (S))
168- _checkbuffers (S:: AbstractSparseMatrixCSC ) =  (@assert  _goodbuffers (S); S)
167+ _goodbuffers (S:: AbstractSparseMatrixCSC ) =  _goodbufferscsc (size (S)... , getcolptr (S), getrowval (S), nonzeros (S))
168+ _goodbuffers (S:: AbstractSparseMatrixCSR ) =  _goodbufferscsr (size (S)... , getrowptr (S), getcolval (S), nonzeros (S))
169+ _checkbuffers (S:: AbstractSparseMatrixCSCOrCSR ) =  (@assert  _goodbuffers (S); S)
169170_checkbuffers (S:: Union{Adjoint, Transpose} ) =  (_checkbuffers (parent (S)); S)
170171
171- function  _goodbuffers (m, n, colptr, rowval, nzval)
172+ function  _goodbufferscsc (m, n, colptr, rowval, nzval)
172173    (length (colptr) ==  n +  1  &&  colptr[end ] -  1  ==  length (rowval) ==  length (nzval))
173174    #  stronger check for debugging purposes
174175    #  && all(issorted(@view rowval[colptr[i]:colptr[i+1]-1]) for i=1:n)
175176end 
177+ function  _goodbufferscsr (m, n, rowptr, colval, nzval)
178+     (length (rowptr) ==  m +  1  &&  rowptr[end ] -  1  ==  length (colval) ==  length (nzval))
179+     #  stronger check for debugging purposes
180+     #  && all(issorted(@view rowval[colptr[i]:colptr[i+1]-1]) for i=1:n)
181+ end 
176182
177183#  Define an alias for views of a SparseMatrixCSC which include all rows and a unit range of the columns.
178184#  Also define a union of SparseMatrixCSC and this view since many methods can be defined efficiently for
@@ -1535,11 +1541,9 @@ end
15351541function  _computerowptrs_halfperm! (X:: AbstractSparseMatrixCSR{Tv,Ti} , A:: AbstractSparseMatrixCSR{TvA,Ti} ) where  {Tv,TvA,Ti}
15361542    #  Compute `transpose(A[q,:])`'s column counts. Store shifted forward one position in getcolptr(X).
15371543    fill! (getrowptr (X), 0 )
1538-     @show  colvals (A)
15391544    for  k in  1 : nnz (A)
15401545        getrowptr (X)[colvals (A)[k]+ 1 ] +=  1 
15411546    end 
1542-     @show  getrowptr (X)
15431547    #  Compute `transpose(A[q,:])`'s column pointers. Store shifted forward one position in getcolptr(X).
15441548    getrowptr (X)[1 ] =  1 
15451549    countsum =  1 
@@ -1647,7 +1651,7 @@ function ftranspose(A::MatrixType, f::Function, eltype::Type{Tv} = TvA) where {T
16471651                   Vector {Ti} (undef, 0 ),
16481652                   Vector {Tv} (undef, 0 ))
16491653    sizehint! (X, nnz (A))
1650-     return  halfperm! (X, A, 1 : size (A, 2 ), f)
1654+     return  halfperm! (X, A, 1 : size (A, 1 ), f)
16511655end 
16521656
16531657adjoint (A:: AbstractSparseMatrixCSC ) =  Adjoint (A)
0 commit comments