Skip to content

Commit 2702a49

Browse files
authored
Change 1:size to axes in bidiag mul (#1337)
This makes snippets of the code easier to follow
1 parent 6e0a996 commit 2702a49

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
@@ -1046,7 +1046,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
10461046
if A.uplo == 'U'
10471047
u = A.ev
10481048
@inbounds begin
1049-
for j = 1:nB
1049+
for j in axes(B,2)
10501050
b₀, b₊ = B[1, j], B[2, j]
10511051
_modify!(_add, d[1]*b₀ + u[1]*b₊, C, (1, j))
10521052
for i = 2:nA - 1
@@ -1059,7 +1059,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::Bidiagonal, B::AbstractVecOrMat,
10591059
else
10601060
l = A.ev
10611061
@inbounds begin
1062-
for j = 1:nB
1062+
for j in axes(B,2)
10631063
b₀, b₊ = B[1, j], B[2, j]
10641064
_modify!(_add, d[1]*b₀, C, (1, j))
10651065
for i = 2:nA - 1
@@ -1079,7 +1079,7 @@ function _mul_bitrisym!(C::AbstractVecOrMat, A::TriSym, B::AbstractVecOrMat, _ad
10791079
d = _diag(A, 0)
10801080
u = _diag(A, 1)
10811081
@inbounds begin
1082-
for j = 1:nB
1082+
for j in axes(B,2)
10831083
b₀, b₊ = B[1, j], B[2, j]
10841084
_modify!(_add, d[1]*b₀ + u[1]*b₊, C, (1, j))
10851085
for i = 2:nA - 1
@@ -1118,7 +1118,7 @@ function _mul_bitrisym_right!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _
11181118
B21 = Bl[1]
11191119
Bmm = Bd[m]
11201120
Bm₋1m = Bu[m-1]
1121-
for i in 1:n
1121+
for i in axes(A,1)
11221122
_modify!(_add, A[i,1] * B11 + A[i, 2] * B21, C, (i, 1))
11231123
_modify!(_add, A[i, m-1] * Bm₋1m + A[i, m] * Bmm, C, (i, m))
11241124
end
@@ -1127,7 +1127,7 @@ function _mul_bitrisym_right!(C::AbstractMatrix, A::AbstractMatrix, B::TriSym, _
11271127
Bj₋1j = Bu[j-1]
11281128
Bjj = Bd[j]
11291129
Bj₊1j = Bl[j]
1130-
for i = 1:n
1130+
for i in axes(A,1)
11311131
_modify!(_add, A[i, j-1] * Bj₋1j + A[i, j]*Bjj + A[i, j+1] * Bj₊1j, C, (i, j))
11321132
end
11331133
end
@@ -1148,17 +1148,17 @@ end
11481148
function _mul_bitrisym_right!(C::AbstractMatrix, A::AbstractMatrix, B::Bidiagonal, _add::MulAddMul)
11491149
m, n = size(A)
11501150
@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)
11521152
_modify!(_add, A[i,j] * B.dv[j] + A[i,j-1] * B.ev[j-1], C, (i, j))
11531153
end
1154-
for i in 1:m
1154+
for i in axes(A,1)
11551155
_modify!(_add, A[i,1] * B.dv[1], C, (i, 1))
11561156
end
11571157
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)
11591159
_modify!(_add, A[i,j] * B.dv[j] + A[i,j+1] * B.ev[j], C, (i, j))
11601160
end
1161-
for i in 1:m
1161+
for i in axes(A,1)
11621162
_modify!(_add, A[i,n] * B.dv[n], C, (i, n))
11631163
end
11641164
end
@@ -1235,7 +1235,7 @@ function _dibimul_nonzeroalpha!(C::AbstractMatrix, A::Diagonal, B::Bidiagonal, _
12351235
if B.uplo == 'L'
12361236
C[2,1] += _add(Ad[2]*Bev[1])
12371237
end
1238-
for col in 2:n-1
1238+
for col in axes(A,1)[2:end-1]
12391239
evrow = col+rowshift
12401240
C[evrow, col] += _add(Ad[evrow]*Bev[col - evshift])
12411241
C[col, col] += _add(Ad[col]*Bdv[col])
@@ -1321,7 +1321,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
13211321
@inbounds if B.uplo == 'U'
13221322
x₀ = x[1]
13231323
r = dot(x[1], dv[1], y[1])
1324-
for j in 2:nx-1
1324+
for j in eachindex(x)[2:end-1]
13251325
x₋, x₀ = x₀, x[j]
13261326
r += dot(adjoint(ev[j-1])*x₋ + adjoint(dv[j])*x₀, y[j])
13271327
end
@@ -1331,7 +1331,7 @@ function dot(x::AbstractVector, B::Bidiagonal, y::AbstractVector)
13311331
x₀ = x[1]
13321332
x₊ = x[2]
13331333
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]
13351335
x₀, x₊ = x₊, x[j+1]
13361336
r += dot(adjoint(dv[j])*x₀ + adjoint(ev[j])*x₊, y[j])
13371337
end
@@ -1362,15 +1362,15 @@ function ldiv!(c::AbstractVecOrMat, A::Bidiagonal, b::AbstractVecOrMat)
13621362
zi = findfirst(iszero, A.dv)
13631363
isnothing(zi) || throw(SingularException(zi))
13641364

1365-
@inbounds for j in 1:nb
1365+
@inbounds for j in axes(b,2)
13661366
if A.uplo == 'L' #do colwise forward substitution
13671367
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]
13691369
c[i,j] = bi1 = A.dv[i] \ (b[i,j] - A.ev[i - 1] * bi1)
13701370
end
13711371
else #do colwise backward substitution
13721372
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))
13741374
c[i,j] = bi1 = A.dv[i] \ (b[i,j] - A.ev[i] * bi1)
13751375
end
13761376
end

0 commit comments

Comments
 (0)