@@ -1046,7 +1046,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
1046
1046
if A. uplo == ' U'
1047
1047
u = A. ev
1048
1048
@inbounds begin
1049
- for j = 1 : nB
1049
+ for j in axes (B, 2 )
1050
1050
b₀, b₊ = B[1 , j], B[2 , j]
1051
1051
_modify! (_add, d[1 ]* b₀ + u[1 ]* b₊, C, (1 , j))
1052
1052
for i = 2 : nA - 1
@@ -1059,7 +1059,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
1059
1059
else
1060
1060
l = A. ev
1061
1061
@inbounds begin
1062
- for j = 1 : nB
1062
+ for j in axes (B, 2 )
1063
1063
b₀, b₊ = B[1 , j], B[2 , j]
1064
1064
_modify! (_add, d[1 ]* b₀, C, (1 , j))
1065
1065
for i = 2 : nA - 1
@@ -1079,7 +1079,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::TriSym, B::AbstractVecOrMat, _ad
1079
1079
d = _diag (A, 0 )
1080
1080
u = _diag (A, 1 )
1081
1081
@inbounds begin
1082
- for j = 1 : nB
1082
+ for j in axes (B, 2 )
1083
1083
b₀, b₊ = B[1 , j], B[2 , j]
1084
1084
_modify! (_add, d[1 ]* b₀ + u[1 ]* b₊, C, (1 , j))
1085
1085
for i = 2 : nA - 1
@@ -1118,7 +1118,7 @@ function _mul_bitrisym_right!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _
1118
1118
B21 = Bl[1 ]
1119
1119
Bmm = Bd[m]
1120
1120
Bm₋1m = Bu[m- 1 ]
1121
- for i in 1 : n
1121
+ for i in axes (A, 1 )
1122
1122
_modify! (_add, A[i,1 ] * B11 + A[i, 2 ] * B21, C, (i, 1 ))
1123
1123
_modify! (_add, A[i, m- 1 ] * Bm₋1m + A[i, m] * Bmm, C, (i, m))
1124
1124
end
@@ -1127,7 +1127,7 @@ function _mul_bitrisym_right!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _
1127
1127
Bj₋1j = Bu[j- 1 ]
1128
1128
Bjj = Bd[j]
1129
1129
Bj₊1j = Bl[j]
1130
- for i = 1 : n
1130
+ for i in axes (A, 1 )
1131
1131
_modify! (_add, A[i, j- 1 ] * Bj₋1j + A[i, j]* Bjj + A[i, j+ 1 ] * Bj₊1j, C, (i, j))
1132
1132
end
1133
1133
end
@@ -1148,17 +1148,17 @@ end
1148
1148
function _mul_bitrisym_right! (C:: AbstractMatrix , A:: AbstractMatrix , B:: Bidiagonal , _add:: MulAddMul )
1149
1149
m, n = size (A)
1150
1150
@inbounds if B. uplo == ' U'
1151
- for j in n : - 1 : 2 , i in 1 : m
1151
+ for j in reverse ( axes (A, 2 )[ 2 : end ]) , i in axes (A, 1 )
1152
1152
_modify! (_add, A[i,j] * B. dv[j] + A[i,j- 1 ] * B. ev[j- 1 ], C, (i, j))
1153
1153
end
1154
- for i in 1 : m
1154
+ for i in axes (A, 1 )
1155
1155
_modify! (_add, A[i,1 ] * B. dv[1 ], C, (i, 1 ))
1156
1156
end
1157
1157
else # uplo == 'L'
1158
- for j in 1 : n - 1 , i in 1 : m
1158
+ for j in axes (A, 2 )[ 1 : end - 1 ] , i in axes (A, 1 )
1159
1159
_modify! (_add, A[i,j] * B. dv[j] + A[i,j+ 1 ] * B. ev[j], C, (i, j))
1160
1160
end
1161
- for i in 1 : m
1161
+ for i in axes (A, 1 )
1162
1162
_modify! (_add, A[i,n] * B. dv[n], C, (i, n))
1163
1163
end
1164
1164
end
@@ -1235,7 +1235,7 @@ function _dibimul_nonzeroalpha!(C::AbstractMatrix, A::Diagonal, B::Bidiagonal, _
1235
1235
if B. uplo == ' L'
1236
1236
C[2 ,1 ] += _add (Ad[2 ]* Bev[1 ])
1237
1237
end
1238
- for col in 2 : n - 1
1238
+ for col in axes (A, 1 )[ 2 : end - 1 ]
1239
1239
evrow = col+ rowshift
1240
1240
C[evrow, col] += _add (Ad[evrow]* Bev[col - evshift])
1241
1241
C[col, col] += _add (Ad[col]* Bdv[col])
@@ -1321,7 +1321,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
1321
1321
@inbounds if B. uplo == ' U'
1322
1322
x₀ = x[1 ]
1323
1323
r = dot (x[1 ], dv[1 ], y[1 ])
1324
- for j in 2 : nx - 1
1324
+ for j in eachindex (x)[ 2 : end - 1 ]
1325
1325
x₋, x₀ = x₀, x[j]
1326
1326
r += dot (adjoint (ev[j- 1 ])* x₋ + adjoint (dv[j])* x₀, y[j])
1327
1327
end
@@ -1331,7 +1331,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
1331
1331
x₀ = x[1 ]
1332
1332
x₊ = x[2 ]
1333
1333
r = dot (adjoint (dv[1 ])* x₀ + adjoint (ev[1 ])* x₊, y[1 ])
1334
- for j in 2 : nx - 1
1334
+ for j in eachindex (x)[ 2 : end - 1 ]
1335
1335
x₀, x₊ = x₊, x[j+ 1 ]
1336
1336
r += dot (adjoint (dv[j])* x₀ + adjoint (ev[j])* x₊, y[j])
1337
1337
end
@@ -1362,15 +1362,15 @@ function ldiv!(c::AbstractVecOrMat, A::Bidiagonal, b::AbstractVecOrMat)
1362
1362
zi = findfirst (iszero, A. dv)
1363
1363
isnothing (zi) || throw (SingularException (zi))
1364
1364
1365
- @inbounds for j in 1 : nb
1365
+ @inbounds for j in axes (b, 2 )
1366
1366
if A. uplo == ' L' # do colwise forward substitution
1367
1367
c[1 ,j] = bi1 = A. dv[1 ] \ b[1 ,j]
1368
- for i in 2 : N
1368
+ for i in eachindex (A . dv)[ 2 : end ]
1369
1369
c[i,j] = bi1 = A. dv[i] \ (b[i,j] - A. ev[i - 1 ] * bi1)
1370
1370
end
1371
1371
else # do colwise backward substitution
1372
1372
c[N,j] = bi1 = A. dv[N] \ b[N,j]
1373
- for i in (N - 1 ) : - 1 : 1
1373
+ for i in reverse ( eachindex (A . ev))
1374
1374
c[i,j] = bi1 = A. dv[i] \ (b[i,j] - A. ev[i] * bi1)
1375
1375
end
1376
1376
end
0 commit comments