Open Fe-r-oz opened 4 months ago
Attention: Patch coverage is 92.85714%
with 1 line
in your changes missing coverage. Please review.
Project coverage is 82.43%. Comparing base (
44f618a
) to head (2b95282
). Report is 38 commits behind head on master.
Files with missing lines | Patch % | Lines |
---|---|---|
src/ecc/codes/gottesman4.jl | 92.85% | 1 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Thanks, @Krastanov, for providing clarification in https://github.com/QuantumSavory/QuantumClifford.jl/issues/287!
Gottesman applies H to the state to get Family of Distance 4 codes.
Previously, I was using
for rows in 1:c.j
for cols in 1:2^c.j
if Hⱼ[rows][cols] == (true, false) # X
Hⱼ[rows, cols] = (false, true) # X -> Z
elseif Hⱼ[rows][cols] == (false, true) # Z
Hⱼ[rows, cols] = (true, false) # Z -> X
end
end
end
which can now be changed
for qᵢ in 1:nqubits(Hⱼ)
apply!(Hⱼ, sHadamard(qᵢ))
end
I found a small quantum code, aka a Distance 4 code from Gottesman 1997 thesis. This class of [[2ʲ, 2ʲ - j - 2, 3]]` Gottesman codes is derived from [[2ʲ, 2ʲ - 2j - 2, 4]] Gottesman codes . The method is taken from the his thesis:
X
and Pauli-Z
operators acting on all qubits, represented byMₓ
andMz
, respectively.j
generators correspond toM₁
throughMⱼ
, which are directly inherited from the[[2ʲ, 2ʲ - j - 2, 3]]
Gottesman code's stabilizers. This inclusion ensures thatS
retains the inherent distance-three property of the original Gottesman code.So, this is Gottesman(4) that we have in the library
j
generators are defined asNᵢ = RMᵢR
, wherei
ranges from1
toj
. Here,R
signifies a Hadamard Rotation operation applied to all2ʲ
qubits, andMᵢ
refers to one of the existing generators from the second set(M₁ to Mⱼ)
.Finally, Hadamard transform turns X operator to Z and Z operator to X, so for 1 to j Rows of (M₁ to Mⱼ)