@@ -963,7 +963,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
963
963
if A. uplo == ' U'
964
964
u = A. ev
965
965
@inbounds begin
966
- for j = 1 : nB
966
+ for j in axes (B, 2 )
967
967
b₀, b₊ = B[1 , j], B[2 , j]
968
968
_modify! (_add, d[1 ]* b₀ + u[1 ]* b₊, C, (1 , j))
969
969
for i = 2 : nA - 1
@@ -976,7 +976,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
976
976
else
977
977
l = A. ev
978
978
@inbounds begin
979
- for j = 1 : nB
979
+ for j in axes (B, 2 )
980
980
b₀, b₊ = B[1 , j], B[2 , j]
981
981
_modify! (_add, d[1 ]* b₀, C, (1 , j))
982
982
for i = 2 : nA - 1
@@ -996,7 +996,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::TriSym, B::AbstractVecOrMat, _ad
996
996
d = _diag (A, 0 )
997
997
u = _diag (A, 1 )
998
998
@inbounds begin
999
- for j = 1 : nB
999
+ for j in axes (B, 2 )
1000
1000
b₀, b₊ = B[1 , j], B[2 , j]
1001
1001
_modify! (_add, d[1 ]* b₀ + u[1 ]* b₊, C, (1 , j))
1002
1002
for i = 2 : nA - 1
@@ -1028,7 +1028,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _add::MulAddMul)
1028
1028
B21 = Bl[1 ]
1029
1029
Bmm = Bd[m]
1030
1030
Bm₋1m = Bu[m- 1 ]
1031
- for i in 1 : n
1031
+ for i in axes (A, 1 )
1032
1032
_modify! (_add, A[i,1 ] * B11 + A[i, 2 ] * B21, C, (i, 1 ))
1033
1033
_modify! (_add, A[i, m- 1 ] * Bm₋1m + A[i, m] * Bmm, C, (i, m))
1034
1034
end
@@ -1037,7 +1037,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _add::MulAddMul)
1037
1037
Bj₋1j = Bu[j- 1 ]
1038
1038
Bjj = Bd[j]
1039
1039
Bj₊1j = Bl[j]
1040
- for i = 1 : n
1040
+ for i in axes (A, 1 )
1041
1041
_modify! (_add, A[i, j- 1 ] * Bj₋1j + A[i, j]* Bjj + A[i, j+ 1 ] * Bj₊1j, C, (i, j))
1042
1042
end
1043
1043
end
@@ -1052,17 +1052,17 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::Bidiagonal, _add::MulAdd
1052
1052
(iszero (m) || iszero (n)) && return C
1053
1053
iszero (_add. alpha) && return _rmul_or_fill! (C, _add. beta)
1054
1054
@inbounds if B. uplo == ' U'
1055
- for j in n : - 1 : 2 , i in 1 : m
1055
+ for j in reverse ( axes (A, 2 )[ 2 : end ]) , i in axes (A, 1 )
1056
1056
_modify! (_add, A[i,j] * B. dv[j] + A[i,j- 1 ] * B. ev[j- 1 ], C, (i, j))
1057
1057
end
1058
- for i in 1 : m
1058
+ for i in axes (A, 1 )
1059
1059
_modify! (_add, A[i,1 ] * B. dv[1 ], C, (i, 1 ))
1060
1060
end
1061
1061
else # uplo == 'L'
1062
- for j in 1 : n - 1 , i in 1 : m
1062
+ for j in axes (A, 2 )[ 1 : end - 1 ] , i in axes (A, 1 )
1063
1063
_modify! (_add, A[i,j] * B. dv[j] + A[i,j+ 1 ] * B. ev[j], C, (i, j))
1064
1064
end
1065
- for i in 1 : m
1065
+ for i in axes (A, 1 )
1066
1066
_modify! (_add, A[i,n] * B. dv[n], C, (i, n))
1067
1067
end
1068
1068
end
@@ -1138,7 +1138,7 @@ function _dibimul!(C::AbstractMatrix, A::Diagonal, B::Bidiagonal, _add)
1138
1138
if B. uplo == ' L'
1139
1139
C[2 ,1 ] += _add (Ad[2 ]* Bev[1 ])
1140
1140
end
1141
- for col in 2 : n - 1
1141
+ for col in axes (A, 1 )[ 2 : end - 1 ]
1142
1142
evrow = col+ rowshift
1143
1143
C[evrow, col] += _add (Ad[evrow]* Bev[col - evshift])
1144
1144
C[col, col] += _add (Ad[col]* Bdv[col])
@@ -1219,7 +1219,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
1219
1219
@inbounds if B. uplo == ' U'
1220
1220
x₀ = x[1 ]
1221
1221
r = dot (x[1 ], dv[1 ], y[1 ])
1222
- for j in 2 : nx - 1
1222
+ for j in eachindex (x)[ 2 : end - 1 ]
1223
1223
x₋, x₀ = x₀, x[j]
1224
1224
r += dot (adjoint (ev[j- 1 ])* x₋ + adjoint (dv[j])* x₀, y[j])
1225
1225
end
@@ -1229,7 +1229,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
1229
1229
x₀ = x[1 ]
1230
1230
x₊ = x[2 ]
1231
1231
r = dot (adjoint (dv[1 ])* x₀ + adjoint (ev[1 ])* x₊, y[1 ])
1232
- for j in 2 : nx - 1
1232
+ for j in eachindex (x)[ 2 : end - 1 ]
1233
1233
x₀, x₊ = x₊, x[j+ 1 ]
1234
1234
r += dot (adjoint (dv[j])* x₀ + adjoint (ev[j])* x₊, y[j])
1235
1235
end
@@ -1260,15 +1260,15 @@ function ldiv!(c::AbstractVecOrMat, A::Bidiagonal, b::AbstractVecOrMat)
1260
1260
zi = findfirst (iszero, A. dv)
1261
1261
isnothing (zi) || throw (SingularException (zi))
1262
1262
1263
- @inbounds for j in 1 : nb
1263
+ @inbounds for j in axes (b, 2 )
1264
1264
if A. uplo == ' L' # do colwise forward substitution
1265
1265
c[1 ,j] = bi1 = A. dv[1 ] \ b[1 ,j]
1266
- for i in 2 : N
1266
+ for i in eachindex (A . dv)[ 2 : end ]
1267
1267
c[i,j] = bi1 = A. dv[i] \ (b[i,j] - A. ev[i - 1 ] * bi1)
1268
1268
end
1269
1269
else # do colwise backward substitution
1270
1270
c[N,j] = bi1 = A. dv[N] \ b[N,j]
1271
- for i in (N - 1 ) : - 1 : 1
1271
+ for i in reverse ( eachindex (A . ev))
1272
1272
c[i,j] = bi1 = A. dv[i] \ (b[i,j] - A. ev[i] * bi1)
1273
1273
end
1274
1274
end
0 commit comments