Skip to content

Commit f4bf551

Browse files
committed
Change 1:size to axes in bidiag mul (#1337)
This makes snippets of the code easier to follow (cherry picked from commit 2702a49)
1 parent 1ee6ec1 commit f4bf551

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/bidiag.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -963,7 +963,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
963963
if A.uplo == 'U'
964964
u = A.ev
965965
@inbounds begin
966-
for j = 1:nB
966+
for j in axes(B,2)
967967
b₀, b₊ = B[1, j], B[2, j]
968968
_modify!(_add, d[1]*b₀ + u[1]*b₊, C, (1, j))
969969
for i = 2:nA - 1
@@ -976,7 +976,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
976976
else
977977
l = A.ev
978978
@inbounds begin
979-
for j = 1:nB
979+
for j in axes(B,2)
980980
b₀, b₊ = B[1, j], B[2, j]
981981
_modify!(_add, d[1]*b₀, C, (1, j))
982982
for i = 2:nA - 1
@@ -996,7 +996,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::TriSym, B::AbstractVecOrMat, _ad
996996
d = _diag(A, 0)
997997
u = _diag(A, 1)
998998
@inbounds begin
999-
for j = 1:nB
999+
for j in axes(B,2)
10001000
b₀, b₊ = B[1, j], B[2, j]
10011001
_modify!(_add, d[1]*b₀ + u[1]*b₊, C, (1, j))
10021002
for i = 2:nA - 1
@@ -1028,7 +1028,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _add::MulAddMul)
10281028
B21 = Bl[1]
10291029
Bmm = Bd[m]
10301030
Bm₋1m = Bu[m-1]
1031-
for i in 1:n
1031+
for i in axes(A,1)
10321032
_modify!(_add, A[i,1] * B11 + A[i, 2] * B21, C, (i, 1))
10331033
_modify!(_add, A[i, m-1] * Bm₋1m + A[i, m] * Bmm, C, (i, m))
10341034
end
@@ -1037,7 +1037,7 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _add::MulAddMul)
10371037
Bj₋1j = Bu[j-1]
10381038
Bjj = Bd[j]
10391039
Bj₊1j = Bl[j]
1040-
for i = 1:n
1040+
for i in axes(A,1)
10411041
_modify!(_add, A[i, j-1] * Bj₋1j + A[i, j]*Bjj + A[i, j+1] * Bj₊1j, C, (i, j))
10421042
end
10431043
end
@@ -1052,17 +1052,17 @@ function _mul!(C::AbstractMatrix, A::AbstractMatrix, B::Bidiagonal, _add::MulAdd
10521052
(iszero(m) || iszero(n)) && return C
10531053
iszero(_add.alpha) && return _rmul_or_fill!(C, _add.beta)
10541054
@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)
10561056
_modify!(_add, A[i,j] * B.dv[j] + A[i,j-1] * B.ev[j-1], C, (i, j))
10571057
end
1058-
for i in 1:m
1058+
for i in axes(A,1)
10591059
_modify!(_add, A[i,1] * B.dv[1], C, (i, 1))
10601060
end
10611061
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)
10631063
_modify!(_add, A[i,j] * B.dv[j] + A[i,j+1] * B.ev[j], C, (i, j))
10641064
end
1065-
for i in 1:m
1065+
for i in axes(A,1)
10661066
_modify!(_add, A[i,n] * B.dv[n], C, (i, n))
10671067
end
10681068
end
@@ -1138,7 +1138,7 @@ function _dibimul!(C::AbstractMatrix, A::Diagonal, B::Bidiagonal, _add)
11381138
if B.uplo == 'L'
11391139
C[2,1] += _add(Ad[2]*Bev[1])
11401140
end
1141-
for col in 2:n-1
1141+
for col in axes(A,1)[2:end-1]
11421142
evrow = col+rowshift
11431143
C[evrow, col] += _add(Ad[evrow]*Bev[col - evshift])
11441144
C[col, col] += _add(Ad[col]*Bdv[col])
@@ -1219,7 +1219,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
12191219
@inbounds if B.uplo == 'U'
12201220
x₀ = x[1]
12211221
r = dot(x[1], dv[1], y[1])
1222-
for j in 2:nx-1
1222+
for j in eachindex(x)[2:end-1]
12231223
x₋, x₀ = x₀, x[j]
12241224
r += dot(adjoint(ev[j-1])*x₋ + adjoint(dv[j])*x₀, y[j])
12251225
end
@@ -1229,7 +1229,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
12291229
x₀ = x[1]
12301230
x₊ = x[2]
12311231
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]
12331233
x₀, x₊ = x₊, x[j+1]
12341234
r += dot(adjoint(dv[j])*x₀ + adjoint(ev[j])*x₊, y[j])
12351235
end
@@ -1260,15 +1260,15 @@ function ldiv!(c::AbstractVecOrMat, A::Bidiagonal, b::AbstractVecOrMat)
12601260
zi = findfirst(iszero, A.dv)
12611261
isnothing(zi) || throw(SingularException(zi))
12621262

1263-
@inbounds for j in 1:nb
1263+
@inbounds for j in axes(b,2)
12641264
if A.uplo == 'L' #do colwise forward substitution
12651265
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]
12671267
c[i,j] = bi1 = A.dv[i] \ (b[i,j] - A.ev[i - 1] * bi1)
12681268
end
12691269
else #do colwise backward substitution
12701270
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))
12721272
c[i,j] = bi1 = A.dv[i] \ (b[i,j] - A.ev[i] * bi1)
12731273
end
12741274
end

0 commit comments

Comments
 (0)