Skip to content

Commit 550e761

Browse files
committed
unicode subscripts
1 parent b235cef commit 550e761

3 files changed

Lines changed: 48 additions & 48 deletions

File tree

src/pullbacks/lq.jl

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -59,48 +59,48 @@ function lq_pullback!(
5959

6060
ΔL, ΔQ = ΔLQ
6161

62-
Q1 = view(Q, 1:p, :)
63-
L11 = LowerTriangular(view(L, 1:p, 1:p))
64-
ΔA1 = view(ΔA, 1:p, :)
65-
ΔA2 = view(ΔA, (p + 1):m, :)
62+
Q₁ = view(Q, 1:p, :)
63+
L₁₁ = LowerTriangular(view(L, 1:p, 1:p))
64+
ΔA₁ = view(ΔA, 1:p, :)
65+
ΔA₂ = view(ΔA, (p + 1):m, :)
6666

6767
check_lq_cotangents(L, Q, ΔL, ΔQ, p; gauge_atol)
6868

6969
ΔQ̃ = zero!(similar(Q, (p, n)))
7070
if !iszerotangent(ΔQ)
71-
ΔQ1 = view(ΔQ, 1:p, :)
72-
copy!(ΔQ̃, ΔQ1)
71+
ΔQ₁ = view(ΔQ, 1:p, :)
72+
copy!(ΔQ̃, ΔQ₁)
7373
if minmn < size(Q, 1)
74-
ΔQ3 = view(ΔQ, (minmn + 1):size(ΔQ, 1), :)
75-
Q3 = view(Q, (minmn + 1):size(Q, 1), :)
76-
ΔQ3Q1ᴴ = ΔQ3 * Q1'
77-
ΔQ̃ = mul!(ΔQ̃, ΔQ3Q1ᴴ', Q3, -1, 1)
74+
ΔQ₃ = view(ΔQ, (minmn + 1):size(ΔQ, 1), :)
75+
Q₃ = view(Q, (minmn + 1):size(Q, 1), :)
76+
ΔQ₃Q₁ᴴ = ΔQ₃ * Q₁'
77+
ΔQ̃ = mul!(ΔQ̃, ΔQ₃Q₁ᴴ', Q₃, -1, 1)
7878
end
7979
end
8080
if !iszerotangent(ΔL) && m > p
81-
L21 = view(L, (p + 1):m, 1:p)
82-
ΔL21 = view(ΔL, (p + 1):m, 1:p)
83-
ΔQ̃ = mul!(ΔQ̃, L21' * ΔL21, Q1, -1, 1)
84-
# Adding ΔA2 contribution
85-
ΔA2 = mul!(ΔA2, ΔL21, Q1, 1, 1)
81+
L₂₁ = view(L, (p + 1):m, 1:p)
82+
ΔL₂₁ = view(ΔL, (p + 1):m, 1:p)
83+
ΔQ̃ = mul!(ΔQ̃, L₂₁' * ΔL₂₁, Q₁, -1, 1)
84+
# Adding ΔA₂ contribution
85+
ΔA₂ = mul!(ΔA₂, ΔL₂₁, Q₁, 1, 1)
8686
end
8787

8888
# construct M
8989
M = zero!(similar(L, (p, p)))
9090
if !iszerotangent(ΔL)
91-
ΔL11 = LowerTriangular(view(ΔL, 1:p, 1:p))
92-
M = mul!(M, L11', ΔL11, 1, 1)
91+
ΔL₁₁ = LowerTriangular(view(ΔL, 1:p, 1:p))
92+
M = mul!(M, L₁₁', ΔL₁₁, 1, 1)
9393
end
94-
M = mul!(M, ΔQ̃, Q1', -1, 1)
94+
M = mul!(M, ΔQ̃, Q₁', -1, 1)
9595
view(M, uppertriangularind(M)) .= conj.(view(M, lowertriangularind(M)))
9696
if eltype(M) <: Complex
9797
Md = diagview(M)
9898
Md .= real.(Md)
9999
end
100-
ldiv!(L11', M)
101-
ldiv!(L11', ΔQ̃)
102-
ΔA1 = mul!(ΔA1, M, Q1, +1, 1)
103-
ΔA1 .+= ΔQ̃
100+
ldiv!(L₁₁', M)
101+
ldiv!(L₁₁', ΔQ̃)
102+
ΔA₁ = mul!(ΔA₁, M, Q₁, +1, 1)
103+
ΔA₁ .+= ΔQ̃
104104
return ΔA
105105
end
106106

src/pullbacks/qr.jl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@ function qr_pullback!(
6161

6262
ΔQ, ΔR = ΔQR
6363

64-
Q1 = view(Q, :, 1:p)
65-
R11 = UpperTriangular(view(R, 1:p, 1:p))
66-
ΔA1 = view(ΔA, :, 1:p)
67-
ΔA2 = view(ΔA, :, (p + 1):n)
64+
Q₁ = view(Q, :, 1:p)
65+
R₁₁ = UpperTriangular(view(R, 1:p, 1:p))
66+
ΔA₁ = view(ΔA, :, 1:p)
67+
ΔA₂ = view(ΔA, :, (p + 1):n)
6868

6969
check_qr_cotangents(Q, R, ΔQ, ΔR, p; gauge_atol)
7070

@@ -73,36 +73,36 @@ function qr_pullback!(
7373
ΔQ₁ = view(ΔQ, :, 1:p)
7474
copy!(ΔQ̃, ΔQ₁)
7575
if minmn < size(Q, 2)
76-
ΔQ3 = view(ΔQ, :, (minmn + 1):size(ΔQ, 2)) # extra columns in the case of qr_full
77-
Q3 = view(Q, :, (minmn + 1):size(Q, 2))
78-
Q1ᴴΔQ3 = Q1' * ΔQ3
79-
ΔQ̃ = mul!(ΔQ̃, Q3, Q1ᴴΔQ3', -1, 1)
76+
ΔQ₃ = view(ΔQ, :, (minmn + 1):size(ΔQ, 2)) # extra columns in the case of qr_full
77+
Q₃ = view(Q, :, (minmn + 1):size(Q, 2))
78+
Q₁ᴴΔQ₃ = Q₁' * ΔQ₃
79+
ΔQ̃ = mul!(ΔQ̃, Q₃, Q₁ᴴΔQ₃', -1, 1)
8080
end
8181
end
8282
if !iszerotangent(ΔR) && n > p
83-
R12 = view(R, 1:p, (p + 1):n)
84-
ΔR12 = view(ΔR, 1:p, (p + 1):n)
85-
ΔQ̃ = mul!(ΔQ̃, Q1, ΔR12 * R12', -1, 1)
86-
# Adding ΔA2 contribution
87-
ΔA2 = mul!(ΔA2, Q1, ΔR12, 1, 1)
83+
R₁₂ = view(R, 1:p, (p + 1):n)
84+
ΔR₁₂ = view(ΔR, 1:p, (p + 1):n)
85+
ΔQ̃ = mul!(ΔQ̃, Q₁, ΔR₁₂ * R₁₂', -1, 1)
86+
# Adding ΔA₂ contribution
87+
ΔA₂ = mul!(ΔA₂, Q₁, ΔR₁₂, 1, 1)
8888
end
8989

9090
# construct M
9191
M = zero!(similar(R, (p, p)))
9292
if !iszerotangent(ΔR)
93-
ΔR11 = UpperTriangular(view(ΔR, 1:p, 1:p))
94-
M = mul!(M, ΔR11, R11', 1, 1)
93+
ΔR₁₁ = UpperTriangular(view(ΔR, 1:p, 1:p))
94+
M = mul!(M, ΔR₁₁, R₁₁', 1, 1)
9595
end
96-
M = mul!(M, Q1', ΔQ̃, -1, 1)
96+
M = mul!(M, Q₁', ΔQ̃, -1, 1)
9797
view(M, lowertriangularind(M)) .= conj.(view(M, uppertriangularind(M)))
9898
if eltype(M) <: Complex
9999
Md = diagview(M)
100100
Md .= real.(Md)
101101
end
102-
rdiv!(M, R11') # R11 is upper triangular
103-
rdiv!(ΔQ̃, R11')
104-
ΔA1 = mul!(ΔA1, Q1, M, +1, 1)
105-
ΔA1 .+= ΔQ̃
102+
rdiv!(M, R₁₁') # R₁₁ is upper triangular
103+
rdiv!(ΔQ̃, R₁₁')
104+
ΔA₁ = mul!(ΔA₁, Q₁, M, +1, 1)
105+
ΔA₁ .+= ΔQ̃
106106
return ΔA
107107
end
108108

test/testsuite/ad_utils.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ function remove_qr_gauge_dependence!(ΔQ, ΔR, A, Q, R; rank_atol = MatrixAlgebr
8585
ΔQ₃ = view(ΔQ, :, (minmn + 1):size(ΔQ, 2)) # extra columns in the case of qr_full
8686
Q₁ᴴΔQ₃ = Q₁' * ΔQ₃
8787
mul!(ΔQ₃, Q₁, Q₁ᴴΔQ₃)
88-
ΔR22 = view(ΔR, (r + 1):minmn, (r + 1):size(R, 2))
89-
MatrixAlgebraKit.diagview(ΔR22) .= 0
90-
view(ΔR22, MatrixAlgebraKit.uppertriangularind(ΔR22)) .= 0
88+
ΔR₂₂ = view(ΔR, (r + 1):minmn, (r + 1):size(R, 2))
89+
MatrixAlgebraKit.diagview(ΔR₂₂) .= 0
90+
view(ΔR₂₂, MatrixAlgebraKit.uppertriangularind(ΔR₂₂)) .= 0
9191
return ΔQ, ΔR
9292
end
9393

@@ -120,9 +120,9 @@ function remove_lq_gauge_dependence!(ΔL, ΔQ, A, L, Q; rank_atol = MatrixAlgebr
120120
ΔQ₃ = view(ΔQ, (minmn + 1):size(ΔQ, 1), :) # extra rows in the case of lq_full
121121
ΔQ₃Q₁ᴴ = ΔQ₃ * Q₁'
122122
mul!(ΔQ₃, ΔQ₃Q₁ᴴ, Q₁)
123-
ΔL22 = view(ΔL, (r + 1):size(ΔL, 1), (r + 1):minmn)
124-
MatrixAlgebraKit.diagview(ΔL22) .= 0
125-
view(ΔL22, MatrixAlgebraKit.lowertriangularind(ΔL22)) .= 0
123+
ΔL₂₂ = view(ΔL, (r + 1):size(ΔL, 1), (r + 1):minmn)
124+
MatrixAlgebraKit.diagview(ΔL₂₂) .= 0
125+
view(ΔL₂₂, MatrixAlgebraKit.lowertriangularind(ΔL₂₂)) .= 0
126126
return ΔL, ΔQ
127127
end
128128

0 commit comments

Comments
 (0)