Skip to content

Commit 5b1c6da

Browse files
committed
updated names
1 parent adc4eb2 commit 5b1c6da

File tree

1 file changed

+30
-41
lines changed

1 file changed

+30
-41
lines changed

src/apply_right.jl

Lines changed: 30 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,12 @@ function apply_right!(l::CliffordOperator, r::AbstractCliffordOperator; phases=t
77
end
88

99
# helper
10-
function mul_right_log_i!(l::PauliOperator, r::PauliOperator)
10+
function mul_right_ignore_anticommute!(l::PauliOperator, r::PauliOperator)
1111
x = mul_right!(l, r; phases=Val(true))
1212
x.phase[] = x.phase[] & 0x02
1313
return x
1414
end
1515

16-
# new symbolics
17-
"""A \"symbolic\" single-qubit SQRTZ. See also : [`SingleQubitOperator`](@ref), [`AbstractSymbolicOperator`](@ref)"""
18-
struct sSQRTZ <: AbstractSingleQubitOperator
19-
q::Int
20-
sSQRTZ(q) = if q<0 throw(NoZeroQubit) else new(q) end
21-
end
22-
"""A \"symbolic\" single-qubit InvSQRTZ. See also : [`SingleQubitOperator`](@ref), [`AbstractSymbolicOperator`](@ref)"""
23-
struct sInvSQRTZ <: AbstractSingleQubitOperator
24-
q::Int
25-
sInvSQRTZ(q) = if q<0 throw(NoZeroQubit) else new(q) end
26-
end
2716

2817
##############################
2918
# Single-qubit gates
@@ -35,25 +24,25 @@ function apply_right!(l::CliffordOperator, r::sHadamard)
3524
end
3625

3726
function apply_right!(l::CliffordOperator, r::sHadamardXY)
38-
l[r.q] = mul_right_log_i!(l[r.q], l[nqubits(l)+r.q])
27+
l[r.q] = mul_right_ignore_anticommute!(l[r.q], l[nqubits(l)+r.q])
3928
apply_right!(l, sY(r.q))
4029
return l
4130
end
4231

4332
function apply_right!(l::CliffordOperator, r::sHadamardYZ)
44-
l[nqubits(l)+r.q] = mul_right_log_i!(l[nqubits(l)+r.q], l[r.q])
33+
l[nqubits(l)+r.q] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q], l[r.q])
4534
apply_right!(l, sZ(r.q))
4635
return l
4736
end
4837

4938
function apply_right!(l::CliffordOperator, r::sPhase)
50-
l[r.q] = mul_right_log_i!(l[r.q], l[nqubits(l)+r.q])
39+
l[r.q] = mul_right_ignore_anticommute!(l[r.q], l[nqubits(l)+r.q])
5140
apply_right!(l, sZ(r.q))
5241
return l
5342
end
5443

5544
function apply_right!(l::CliffordOperator, r::sInvPhase)
56-
l[r.q] = mul_right_log_i!(l[r.q], l[nqubits(l)+r.q])
45+
l[r.q] = mul_right_ignore_anticommute!(l[r.q], l[nqubits(l)+r.q])
5746
return l
5847
end
5948

@@ -80,7 +69,7 @@ function apply_right!(l::CliffordOperator, r::sSQRTX)
8069
end
8170

8271
function apply_right!(l::CliffordOperator, r::sInvSQRTX)
83-
l[nqubits(l)+r.q] = mul_right_log_i!(l[nqubits(l)+r.q], l[r.q])
72+
l[nqubits(l)+r.q] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q], l[r.q])
8473
return l
8574
end
8675

@@ -96,26 +85,26 @@ function apply_right!(l::CliffordOperator, r::sInvSQRTY)
9685
return l
9786
end
9887

99-
function apply_right!(l::CliffordOperator, r::sSQRTZ)
100-
apply_right!(l, sInvSQRTZ(r.q))
88+
function apply_right!(l::CliffordOperator, r::sPhase)
89+
apply_right!(l, sInvPhase(r.q))
10190
apply_right!(l, sZ(r.q))
10291
return l
10392
end
10493

105-
function apply_right!(l::CliffordOperator, r::sInvSQRTZ)
106-
l[r.q] = mul_right_log_i!(l[r.q], l[nqubits(l)+r.q])
94+
function apply_right!(l::CliffordOperator, r::sInvPhase)
95+
l[r.q] = mul_right_ignore_anticommute!(l[r.q], l[nqubits(l)+r.q])
10796
return l
10897
end
10998

11099
function apply_right!(l::CliffordOperator, r::sCXYZ)
111100
rowswap!(tab(l), r.q, nqubits(l)+r.q)
112-
l[r.q] = mul_right_log_i!(l[r.q], l[nqubits(l)+r.q])
101+
l[r.q] = mul_right_ignore_anticommute!(l[r.q], l[nqubits(l)+r.q])
113102
return l
114103
end
115104

116105
function apply_right!(l::CliffordOperator, r::sCZYX)
117106
rowswap!(tab(l), r.q, nqubits(l)+r.q)
118-
l[nqubits(l)+r.q] = mul_right_log_i!(l[nqubits(l)+r.q], l[r.q])
107+
l[nqubits(l)+r.q] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q], l[r.q])
119108
apply_right!(l, sX(r.q))
120109
return l
121110
end
@@ -147,16 +136,16 @@ end
147136
function apply_right!(l::CliffordOperator, r::sISWAP)
148137
apply_right!(l, sSWAP(r.q1, r.q2))
149138
apply_right!(l, sZCZ(r.q1, r.q2))
150-
apply_right!(l, sSQRTZ(r.q1))
151-
apply_right!(l, sSQRTZ(r.q2))
139+
apply_right!(l, sPhase(r.q1))
140+
apply_right!(l, sPhase(r.q2))
152141
return l
153142
end
154143

155144
function apply_right!(l::CliffordOperator, r::sInvISWAP)
156145
apply_right!(l, sSWAP(r.q1, r.q2))
157146
apply_right!(l, sZCZ(r.q1, r.q2))
158-
apply_right!(l, sInvSQRTZ(r.q1))
159-
apply_right!(l, sInvSQRTZ(r.q2))
147+
apply_right!(l, sInvPhase(r.q1))
148+
apply_right!(l, sInvPhase(r.q2))
160149
return l
161150
end
162151

@@ -245,10 +234,10 @@ function apply_right!(l::CliffordOperator, r::sSQRTZZ)
245234
end
246235

247236
function apply_right!(l::CliffordOperator, r::sInvSQRTZZ)
248-
l[r.q1] = mul_right_log_i!(l[r.q1], l[nqubits(l)+r.q1])
249-
l[r.q1] = mul_right_log_i!(l[r.q1], l[nqubits(l)+r.q2])
250-
l[r.q2] = mul_right_log_i!(l[r.q2], l[nqubits(l)+r.q1])
251-
l[r.q2] = mul_right_log_i!(l[r.q2], l[nqubits(l)+r.q2])
237+
l[r.q1] = mul_right_ignore_anticommute!(l[r.q1], l[nqubits(l)+r.q1])
238+
l[r.q1] = mul_right_ignore_anticommute!(l[r.q1], l[nqubits(l)+r.q2])
239+
l[r.q2] = mul_right_ignore_anticommute!(l[r.q2], l[nqubits(l)+r.q1])
240+
l[r.q2] = mul_right_ignore_anticommute!(l[r.q2], l[nqubits(l)+r.q2])
252241
return l
253242
end
254243

@@ -260,10 +249,10 @@ function apply_right!(l::CliffordOperator, r::sSQRTXX)
260249
end
261250

262251
function apply_right!(l::CliffordOperator, r::sInvSQRTXX)
263-
l[nqubits(l)+r.q1] = mul_right_log_i!(l[nqubits(l)+r.q1], l[r.q1])
264-
l[nqubits(l)+r.q1] = mul_right_log_i!(l[nqubits(l)+r.q1], l[r.q2])
265-
l[nqubits(l)+r.q2] = mul_right_log_i!(l[nqubits(l)+r.q2], l[r.q1])
266-
l[nqubits(l)+r.q2] = mul_right_log_i!(l[nqubits(l)+r.q2], l[r.q2])
252+
l[nqubits(l)+r.q1] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q1], l[r.q1])
253+
l[nqubits(l)+r.q1] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q1], l[r.q2])
254+
l[nqubits(l)+r.q2] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q2], l[r.q1])
255+
l[nqubits(l)+r.q2] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q2], l[r.q2])
267256
return l
268257
end
269258

@@ -275,12 +264,12 @@ function apply_right!(l::CliffordOperator, r::sSQRTYY)
275264
end
276265

277266
function apply_right!(l::CliffordOperator, r::sInvSQRTYY)
278-
l[r.q1] = mul_right_log_i!(l[r.q1], l[nqubits(l)+r.q1])
279-
l[nqubits(l)+r.q1] = mul_right_log_i!(l[nqubits(l)+r.q1], l[nqubits(l)+r.q2])
280-
l[nqubits(l)+r.q1] = mul_right_log_i!(l[nqubits(l)+r.q1], l[r.q2])
281-
l[r.q2] = mul_right_log_i!(l[r.q2], l[r.q1])
282-
l[nqubits(l)+r.q2] = mul_right_log_i!(l[nqubits(l)+r.q2], l[r.q1])
283-
l[r.q1] = mul_right_log_i!(l[r.q1], l[nqubits(l)+r.q1])
267+
l[r.q1] = mul_right_ignore_anticommute!(l[r.q1], l[nqubits(l)+r.q1])
268+
l[nqubits(l)+r.q1] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q1], l[nqubits(l)+r.q2])
269+
l[nqubits(l)+r.q1] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q1], l[r.q2])
270+
l[r.q2] = mul_right_ignore_anticommute!(l[r.q2], l[r.q1])
271+
l[nqubits(l)+r.q2] = mul_right_ignore_anticommute!(l[nqubits(l)+r.q2], l[r.q1])
272+
l[r.q1] = mul_right_ignore_anticommute!(l[r.q1], l[nqubits(l)+r.q1])
284273
rowswap!(tab(l), r.q1, nqubits(l)+r.q1)
285274
rowswap!(tab(l), r.q2, nqubits(l)+r.q2)
286275
apply_right!(l, sZ(r.q2))

0 commit comments

Comments
 (0)