@@ -84,8 +84,8 @@ function _spmatmul!(C, A, B, α, β)
8484 nzv = nonzeros (A)
8585 rv = rowvals (A)
8686 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
87- for k in 1 : size (C, 2 )
88- @inbounds for col in 1 : size (A, 2 )
87+ for k in axes (C, 2 )
88+ @inbounds for col in axes (A,2 )
8989 αxj = B[col,k] * α
9090 for j in nzrange (A, col)
9191 C[rv[j], k] += nzv[j]* αxj
@@ -105,8 +105,8 @@ function _At_or_Ac_mul_B!(tfun::Function, C, A, B, α, β)
105105 nzv = nonzeros (A)
106106 rv = rowvals (A)
107107 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
108- for k in 1 : size (C, 2 )
109- @inbounds for col in 1 : size (A, 2 )
108+ for k in axes (C, 2 )
109+ @inbounds for col in axes (A,2 )
110110 tmp = zero (eltype (C))
111111 for j in nzrange (A, col)
112112 tmp += tfun (nzv[j])* B[rv[j],k]
@@ -139,10 +139,10 @@ function _spmul!(C::StridedMatrix, X::DenseMatrixUnion, A::SparseMatrixCSCUnion2
139139 rv = rowvals (A)
140140 nzv = nonzeros (A)
141141 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
142- @inbounds for col in 1 : size (A, 2 ), k in nzrange (A, col)
142+ @inbounds for col in axes (A,2 ), k in nzrange (A, col)
143143 Aiα = nzv[k] * α
144144 rvk = rv[k]
145- @simd for multivec_row in 1 : mX
145+ @simd for multivec_row in axes (X, 1 )
146146 C[multivec_row, col] += X[multivec_row, rvk] * Aiα
147147 end
148148 end
@@ -159,7 +159,7 @@ function _spmul!(C::StridedMatrix, X::AdjOrTrans{<:Any,<:DenseMatrixUnion}, A::S
159159 rv = rowvals (A)
160160 nzv = nonzeros (A)
161161 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
162- for multivec_row in 1 : mX , col in 1 : size (A , 2 )
162+ for multivec_row in axes (X, 1 ) , col in axes (C , 2 )
163163 @inbounds for k in nzrange (A, col)
164164 C[multivec_row, col] += X[multivec_row, rv[k]] * nzv[k] * α
165165 end
@@ -178,10 +178,10 @@ function _A_mul_Bt_or_Bc!(tfun::Function, C::StridedMatrix, A::AbstractMatrix, B
178178 rv = rowvals (B)
179179 nzv = nonzeros (B)
180180 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
181- @inbounds for col in 1 : size (B, 2 ), k in nzrange (B, col)
181+ @inbounds for col in axes (B, 2 ), k in nzrange (B, col)
182182 Biα = tfun (nzv[k]) * α
183183 rvk = rv[k]
184- @simd for multivec_col in 1 : mA
184+ @simd for multivec_col in axes (A, 1 )
185185 C[multivec_col, rvk] += A[multivec_col, col] * Biα
186186 end
187187 end
@@ -267,7 +267,7 @@ function spmatmul(A::SparseOrTri, B::Union{SparseOrTri,AbstractCompressedVector,
267267 @inbounds begin
268268 ip = 1
269269 xb = fill (false , mA)
270- for i in 1 : nB
270+ for i in axes (B, 2 )
271271 if ip + mA - 1 > nnzC
272272 nnzC += max (mA, nnzC>> 2 )
273273 resize! (rowvalC, nnzC)
@@ -322,7 +322,7 @@ function spcolmul!(rowvalC, nzvalC, xb, i, ip, A, B)
322322 end
323323 else
324324 # scan result vector (effort O(mA))
325- for k = 1 : mA
325+ for k in axes (A, 1 )
326326 if xb[k]
327327 xb[k] = false
328328 rowvalC[ip0] = k
@@ -557,7 +557,7 @@ function dot(A::AbstractSparseMatrixCSC{T1,S1},B::AbstractSparseMatrixCSC{T2,S2}
557557 m, n = size (A)
558558 size (B) == (m,n) || throw (DimensionMismatch (" matrices must have the same dimensions" ))
559559 r = dot (zero (T1), zero (T2))
560- @inbounds for j = 1 : n
560+ @inbounds for j in axes (A, 2 )
561561 ia = getcolptr (A)[j]; ia_nxt = getcolptr (A)[j+ 1 ]
562562 ib = getcolptr (B)[j]; ib_nxt = getcolptr (B)[j+ 1 ]
563563 if ia < ia_nxt && ib < ib_nxt
@@ -595,7 +595,7 @@ function dot(x::AbstractVector{T1}, A::AbstractSparseMatrixCSC{T2}, y::AbstractV
595595 rowvals = getrowval (A)
596596 nzvals = getnzval (A)
597597
598- @inbounds @simd for col in 1 : n
598+ @inbounds @simd for col in axes (A, 2 )
599599 ycol = y[col]
600600 for j in nzrange (A, col)
601601 row = rowvals[j]
@@ -653,7 +653,7 @@ function dot(A::Union{DenseMatrixUnion,WrapperMatrixTypes{<:Any,Union{DenseMatri
653653 end
654654 rows = rowvals (B)
655655 vals = nonzeros (B)
656- @inbounds for j in 1 : n
656+ @inbounds for j in axes (A, 2 )
657657 for ridx in nzrange (B, j)
658658 i = rows[ridx]
659659 v = vals[ridx]
@@ -744,8 +744,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, tf
744744 if uploc == ' U'
745745 if tfun === identity
746746 # forward multiplication for UpperTriangular SparseCSC matrices
747- for k = 1 : ncolB
748- for j = 1 : nrowB
747+ for k in axes (B, 2 )
748+ for j in axes (B, 1 )
749749 i1 = ia[j]
750750 i2 = ia[j + 1 ] - 1
751751 done = unit
@@ -773,8 +773,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, tf
773773 end
774774 else # tfun in (adjoint, transpose)
775775 # backward multiplication with adjoint and transpose of LowerTriangular CSC matrices
776- for k = 1 : ncolB
777- for j = nrowB : - 1 : 1
776+ for k in axes (B, 2 )
777+ for j in reverse ( axes (B, 1 ))
778778 i1 = ia[j]
779779 i2 = ia[j + 1 ] - 1
780780 akku = Z
@@ -800,8 +800,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, tf
800800 else # uploc == 'L'
801801 if tfun === identity
802802 # backward multiplication for LowerTriangular SparseCSC matrices
803- for k = 1 : ncolB
804- for j = nrowB : - 1 : 1
803+ for k in axes (B, 2 )
804+ for j in reverse ( axes (B, 1 ))
805805 i1 = ia[j]
806806 i2 = ia[j + 1 ] - 1
807807 done = unit
@@ -829,8 +829,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, tf
829829 end
830830 else # tfun in (adjoint, transpose)
831831 # forward multiplication for adjoint and transpose of LowerTriangular CSC matrices
832- for k = 1 : ncolB
833- for j = 1 : nrowB
832+ for k in axes (B, 2 )
833+ for j in axes (B, 1 )
834834 i1 = ia[j]
835835 i2 = ia[j + 1 ] - 1
836836 akku = Z
@@ -873,8 +873,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, ::
873873 Z = zero (eltype (C))
874874
875875 if uploc == ' U'
876- for k = 1 : ncolB
877- for j = 1 : nrowB
876+ for k in axes (B, 2 )
877+ for j in axes (B, 1 )
878878 i1 = ia[j]
879879 i2 = ia[j + 1 ] - 1
880880 done = unit
@@ -901,8 +901,8 @@ function LinearAlgebra.generic_trimatmul!(C::StridedVecOrMat, uploc, isunitc, ::
901901 joff += nrowB
902902 end
903903 else # uploc == 'L'
904- for k = 1 : ncolB
905- for j = nrowB : - 1 : 1
904+ for k in axes (B, 2 )
905+ for j in reverse ( axes (B, 1 ))
906906 i1 = ia[j]
907907 i2 = ia[j + 1 ] - 1
908908 done = unit
@@ -954,8 +954,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, tf
954954 if uploc == ' L'
955955 if tfun === identity
956956 # forward substitution for LowerTriangular CSC matrices
957- for k in 1 : ncolB
958- for j = 1 : nrowB
957+ for k in axes (B, 2 )
958+ for j in axes (B, 1 )
959959 i1 = ia[j]
960960 i2 = ia[j + 1 ] - one (eltype (ia))
961961
@@ -983,8 +983,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, tf
983983 end
984984 else # tfun in (adjoint, transpose)
985985 # backward substitution for adjoint and transpose of LowerTriangular CSC matrices
986- for k in 1 : ncolB
987- for j = nrowB : - 1 : 1
986+ for k in axes (B, 2 )
987+ for j in reverse ( axes (B, 1 ))
988988 i1 = ia[j]
989989 i2 = ia[j + 1 ] - 1
990990 akku = B[j,k]
@@ -1013,8 +1013,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, tf
10131013 else # uploc == 'U'
10141014 if tfun === identity
10151015 # backward substitution for UpperTriangular CSC matrices
1016- for k in 1 : ncolB
1017- for j = nrowB : - 1 : 1
1016+ for k in axes (B, 2 )
1017+ for j in reverse ( axes (B, 1 ))
10181018 i1 = ia[j]
10191019 i2 = ia[j + 1 ] - one (eltype (ia))
10201020
@@ -1042,8 +1042,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, tf
10421042 end
10431043 else # tfun in (adjoint, transpose)
10441044 # forward substitution for adjoint and transpose of UpperTriangular CSC matrices
1045- for k in 1 : ncolB
1046- for j = 1 : nrowB
1045+ for k in axes (B, 2 )
1046+ for j in axes (B, 1 )
10471047 i1 = ia[j]
10481048 i2 = ia[j + 1 ] - 1
10491049 akku = B[j,k]
@@ -1091,8 +1091,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, ::
10911091
10921092 if uploc == ' L'
10931093 # forward substitution for LowerTriangular CSC matrices
1094- for k in 1 : ncolB
1095- for j = 1 : nrowB
1094+ for k in axes (B, 2 )
1095+ for j in axes (B, 1 )
10961096 i1 = ia[j]
10971097 i2 = ia[j + 1 ] - one (eltype (ia))
10981098
@@ -1120,8 +1120,8 @@ function LinearAlgebra.generic_trimatdiv!(C::StridedVecOrMat, uploc, isunitc, ::
11201120 end
11211121 else # uploc == 'U'
11221122 # backward substitution for UpperTriangular CSC matrices
1123- for k in 1 : ncolB
1124- for j = nrowB : - 1 : 1
1123+ for k in axes (B, 2 )
1124+ for j in reverse ( axes (B, 1 ))
11251125 i1 = ia[j]
11261126 i2 = ia[j + 1 ] - one (eltype (ia))
11271127
@@ -1176,8 +1176,8 @@ function _mul!(nzrang::Function, diagop::Function, odiagop::Function, C::Strided
11761176 nzv = nonzeros (A)
11771177 let z = T (0 ), sumcol= z, αxj= z, aarc= z, α = α
11781178 β != one (β) && LinearAlgebra. _rmul_or_fill! (C, β)
1179- @inbounds for k = 1 : m
1180- for col = 1 : n
1179+ @inbounds for k in axes (B, 2 )
1180+ for col in axes (B, 1 )
11811181 αxj = B[col,k] * α
11821182 sumcol = z
11831183 for j = nzrang (A, col)
@@ -1224,7 +1224,7 @@ function _dot(x::AbstractVector, A::AbstractSparseMatrixCSC, y::AbstractVector,
12241224 r = zero (T)
12251225 rvals = getrowval (A)
12261226 nzvals = getnzval (A)
1227- @inbounds for col in 1 : n
1227+ @inbounds for col in axes (A, 2 )
12281228 ycol = y[col]
12291229 xcol = x[col]
12301230 if _isnotzero (ycol) && _isnotzero (xcol)
@@ -1280,7 +1280,7 @@ function _dot(x::SparseVector, A::AbstractSparseMatrixCSC, y::SparseVector, rang
12801280 end
12811281 end
12821282 # diagonal
1283- for i in 1 : m
1283+ for i in axes (A, 1 )
12841284 r1 = Int (Acolptr[i])
12851285 r2 = Int (Acolptr[i+ 1 ]- 1 )
12861286 r1 > r2 && continue
@@ -1320,10 +1320,10 @@ function ldiv!(D::Diagonal{T}, A::AbstractSparseMatrixCSC{T}) where {T}
13201320 nonz = nonzeros (A)
13211321 Arowval = rowvals (A)
13221322 b = D. diag
1323- for i= 1 : length (b )
1323+ for i= axes (b, 1 )
13241324 iszero (b[i]) && throw (SingularException (i))
13251325 end
1326- @inbounds for col in 1 : size (A, 2 ), p in nzrange (A, col)
1326+ @inbounds for col in axes (A,2 ), p in nzrange (A, col)
13271327 nonz[p] = b[Arowval[p]] \ nonz[p]
13281328 end
13291329 A
@@ -1543,7 +1543,7 @@ function opnorm(A::AbstractSparseMatrixCSC, p::Real=2)
15431543 Tsum = promote_type (Float64,Tnorm)
15441544 if p== 1
15451545 nA:: Tsum = 0
1546- for j= 1 : n
1546+ for j in axes (A, 2 )
15471547 colSum:: Tsum = 0
15481548 for i in nzrange (A, j)
15491549 colSum += abs (nonzeros (A)[i])
@@ -1555,7 +1555,7 @@ function opnorm(A::AbstractSparseMatrixCSC, p::Real=2)
15551555 throw (ArgumentError (" 2-norm not yet implemented for sparse matrices. Try opnorm(Array(A)) or opnorm(A, p) where p=1 or Inf." ))
15561556 elseif p== Inf
15571557 rowSum = zeros (Tsum,m)
1558- for i= 1 : length (nonzeros (A))
1558+ for i in axes (nonzeros (A), 1 )
15591559 rowSum[rowvals (A)[i]] += abs (nonzeros (A)[i])
15601560 end
15611561 return convert (Tnorm, maximum (rowSum))
@@ -1689,7 +1689,7 @@ function opnormestinv(A::AbstractSparseMatrixCSC{T}, t::Integer = min(2,maximum(
16891689 h_max = zero (real (eltype (Z)))
16901690 h = zeros (real (eltype (Z)), n)
16911691 h_ind = 0
1692- for i = 1 : n
1692+ for i in axes (A, 1 )
16931693 h[i] = norm (Z[i,1 : t], Inf )
16941694 if h[i] > h_max
16951695 h_max = h[i]
@@ -1779,11 +1779,11 @@ const _DenseKronGroup = Union{Number, Vector, Matrix, AdjOrTrans{<:Any,<:VecOrMa
17791779 resize! (rowvalC, nnzC)
17801780
17811781 col = 1
1782- @inbounds for j = 1 : nA
1782+ @inbounds for j in axes (A, 2 )
17831783 startA = getcolptr (A)[j]
17841784 stopA = getcolptr (A)[j+ 1 ] - 1
17851785 lA = stopA - startA + 1
1786- for i = 1 : nB
1786+ for i in axes (B, 2 )
17871787 startB = getcolptr (B)[i]
17881788 stopB = getcolptr (B)[i+ 1 ] - 1
17891789 lB = stopB - startB + 1
@@ -1899,7 +1899,7 @@ function mul!(C::AbstractSparseMatrixCSC, A::AbstractSparseMatrixCSC, D::Diagona
18991899 Cnzval = nonzeros (C)
19001900 Anzval = nonzeros (A)
19011901 resize! (Cnzval, length (Anzval))
1902- for col in 1 : n , p in nzrange (A, col)
1902+ for col in axes (A, 2 ) , p in nzrange (A, col)
19031903 @inbounds Cnzval[p] = Anzval[p] * b[col]
19041904 end
19051905 C
@@ -1916,7 +1916,7 @@ function mul!(C::AbstractSparseMatrixCSC, D::Diagonal, A::AbstractSparseMatrixCS
19161916 Anzval = nonzeros (A)
19171917 Arowval = rowvals (A)
19181918 resize! (Cnzval, length (Anzval))
1919- for col in 1 : n , p in nzrange (A, col)
1919+ for col in axes (A, 2 ) , p in nzrange (A, col)
19201920 @inbounds Cnzval[p] = b[Arowval[p]] * Anzval[p]
19211921 end
19221922 C
@@ -1953,7 +1953,7 @@ function rmul!(A::AbstractSparseMatrixCSC, D::Diagonal)
19531953 szD = size (D, 1 )
19541954 (n == szD) || throw (DimensionMismatch (" A has size ($m , $n ) but D has size ($szD , $szD )" ))
19551955 Anzval = nonzeros (A)
1956- @inbounds for col in 1 : n , p in nzrange (A, col)
1956+ @inbounds for col in axes (A, 2 ) , p in nzrange (A, col)
19571957 Anzval[p] = Anzval[p] * D. diag[col]
19581958 end
19591959 return A
@@ -1965,7 +1965,7 @@ function lmul!(D::Diagonal, A::AbstractSparseMatrixCSC)
19651965 (m == ds2) || throw (DimensionMismatch (" D has size ($ds2 , $ds2 ) but A has size ($m , $n )" ))
19661966 Anzval = nonzeros (A)
19671967 Arowval = rowvals (A)
1968- @inbounds for col in 1 : n , p in nzrange (A, col)
1968+ @inbounds for col in axes (A, 2 ) , p in nzrange (A, col)
19691969 Anzval[p] = D. diag[Arowval[p]] * Anzval[p]
19701970 end
19711971 return A
@@ -1983,7 +1983,7 @@ function ldiv!(C::AbstractSparseMatrixCSC, D::Diagonal, A::AbstractSparseMatrixC
19831983 Anzval = nonzeros (A)
19841984 Arowval = rowvals (A)
19851985 resize! (Cnzval, length (Anzval))
1986- for col in 1 : n , p in nzrange (A, col)
1986+ for col in axes (A, 2 ) , p in nzrange (A, col)
19871987 @inbounds Cnzval[p] = b[Arowval[p]] \ Anzval[p]
19881988 end
19891989 C
@@ -2000,7 +2000,7 @@ function LinearAlgebra._rdiv!(C::AbstractSparseMatrixCSC, A::AbstractSparseMatri
20002000 Cnzval = nonzeros (C)
20012001 Anzval = nonzeros (A)
20022002 resize! (Cnzval, length (Anzval))
2003- for col in 1 : n , p in nzrange (A, col)
2003+ for col in axes (A, 2 ) , p in nzrange (A, col)
20042004 @inbounds Cnzval[p] = Anzval[p] / b[col]
20052005 end
20062006 C
0 commit comments