Skip to content

Commit 9109d5c

Browse files
author
Pawel Latawiec
committed
Add views on performance-sensitive indexing
1 parent 4c0cdf5 commit 9109d5c

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

src/lal.jl

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,8 @@ function _update_p̂q̂_common!(ld)
498498
copyto!(ld.q̂, ld.w)
499499
for i = mk[kstar]:mk[k]-1 # TODO: OPTIMIZE gemv! (or 5-arg mul!)
500500
if ld.U[i, end] != 0
501-
axpy!(-ld.U[i, end], ld.P[:, i], ld.p̂)
502-
axpy!(-ld.U[i, end] * ld.γ[end] / ld.γ[i], ld.Q[:, i], ld.q̂)
501+
axpy!(-ld.U[i, end], view(ld.P, :, i), ld.p̂)
502+
axpy!(-ld.U[i, end] * ld.γ[end] / ld.γ[i], view(ld.Q, :, i), ld.q̂)
503503
end
504504
end
505505
end
@@ -547,8 +547,8 @@ function _update_pq_regular!(ld)
547547
copyto!(ld.q, ld.q̂)
548548
for i = mk[k]:n-1 # TODO: OPTIMIZE gemv! (or 5-arg mul!)
549549
if ld.U[i, end] != 0
550-
axpy!(-ld.U[i, end], ld.P[:, i], ld.p)
551-
axpy!(-ld.U[i, end] * ld.γ[n] / ld.γ[i], ld.Q[:, i], ld.q)
550+
axpy!(-ld.U[i, end], view(ld.P, :, i), ld.p)
551+
axpy!(-ld.U[i, end] * ld.γ[n] / ld.γ[i], view(ld.Q, :, i), ld.q)
552552
end
553553
end
554554
return ld
@@ -563,8 +563,8 @@ function _update_pq_inner!(ld)
563563
u = _u(i, n, mk[k])
564564
ld.U[i, end] = u
565565
if u != 0
566-
axpy!(-u, ld.P[:, i], ld.p)
567-
axpy!(-u * ld.γ[n] / ld.γ[i], ld.Q[:, i], ld.q)
566+
axpy!(-u, view(ld.P, :, i), ld.p)
567+
axpy!(-u * ld.γ[n] / ld.γ[i], view(ld.Q, :, i), ld.q)
568568
end
569569
end
570570
return ld
@@ -659,8 +659,8 @@ function _update_v̂ŵ_common!(ld)
659659

660660
for i = nl[lstar]:nl[l]-1 # TODO: OPTIMIZE gemv! (or 5-arg mul!)
661661
if ld.L[i, n] != 0
662-
axpy!(-ld.L[i, n], ld.V[:, i], ld.Ap)
663-
axpy!(-ld.L[i, n] * ld.γ[n] / ld.γ[i], ld.W[:, i], ld.Atq)
662+
axpy!(-ld.L[i, n], view(ld.V, :, i), ld.Ap)
663+
axpy!(-ld.L[i, n] * ld.γ[n] / ld.γ[i], view(ld.W, :, i), ld.Atq)
664664
end
665665
end
666666
return ld
@@ -703,8 +703,8 @@ function _update_vw_regular!(ld)
703703
copyto!(ld.w̃, ld.Atq)
704704
for i = nl[l]:n # TODO: OPTIMIZE gemv! (or 5-arg mul!)
705705
if ld.L[i, end] != 0
706-
axpy!(-ld.L[i, end], ld.V[:, i], ld.ṽ)
707-
axpy!(-ld.L[i, end] * ld.γ[n] / ld.γ[i], ld.W[:, i], ld.w̃)
706+
axpy!(-ld.L[i, end], view(ld.V, :, i), ld.ṽ)
707+
axpy!(-ld.L[i, end] * ld.γ[n] / ld.γ[i], view(ld.W, :, i), ld.w̃)
708708
end
709709
end
710710
return ld
@@ -719,8 +719,8 @@ function _update_vw_inner!(ld)
719719
ll = _l(i, n, nl[l])
720720
ld.L[i, end] = ll
721721
if ll != 0
722-
axpy!(-_l(i, n, nl[l]), ld.V[:, i], ld.ṽ)
723-
axpy!(-_l(i, n, nl[l]) * ld.γ[n] / ld.γ[i], ld.W[:, i], ld.w̃)
722+
axpy!(-_l(i, n, nl[l]), view(ld.V, :, i), ld.ṽ)
723+
axpy!(-_l(i, n, nl[l]) * ld.γ[n] / ld.γ[i], view(ld.W, :, i), ld.w̃)
724724
end
725725
end
726726
return ld

0 commit comments

Comments
 (0)