QuantumSavory / QuantumClifford.jl

Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
MIT License
103 stars 42 forks source link

[[2ᵐ - 1, 1, 3]] quantum Reed-Muller code #302

Open Fe-r-oz opened 3 days ago

Fe-r-oz commented 3 days ago

Initial Results

goal: implement most things from the paper as part of testing. I am waiting for RecursiveReedMuller to be reviewed so that I can use it to built these codes.

julia> parity_checks(QuantumReedMuller(4))
+ X_X_X_X_X_X_X_X
+ _XX__XX__XX__XX
+ ___XXXX____XXXX
+ _______XXXXXXXX
+ Z___Z___Z___Z__
+ _Z___Z___Z___Z_
+ __Z___Z___Z___Z
+ ___ZZZZ____ZZZZ
+ ____Z_Z_____Z_Z
+ _____ZZ______ZZ
+ _______ZZZZZZZZ
+ ________Z_Z_Z_Z
+ _________ZZ__ZZ
+ ___________ZZZZ

julia> parity_checks(Steane7())
+ ___XXXX
+ _XX__XX
+ X_X_X_X
+ ___ZZZZ
+ _ZZ__ZZ
+ Z_Z_Z_Z

julia> parity_checks(QuantumReedMuller(3))
+ X_X_X_X
+ _XX__XX
+ ___XXXX
+ Z_Z_Z_Z
+ _ZZ__ZZ
+ ___ZZZZ

julia> canonicalize!(parity_checks(Steane7())) ==  parity_checks(QuantumReedMuller(3))
true

Construction Method Followed from the paper, It looks like

julia> RM13 = generator(RecursiveReedMuller(1, 3));

julia> RM23 = generator(RecursiveReedMuller(3 - 2, 3));

julia> QRM_steane = CSS(RM13[2:end, 2:end], RM23[2:end, 2:end])
CSS(Bool[1 0 … 0 1; 0 1 … 1 1; 0 0 … 1 1], Bool[1 0 … 0 1; 0 1 … 1 1; 0 0 … 1 1])

julia> Steane = Stabilizer(QRM_steane)
+ X_X_X_X
+ _XX__XX
+ ___XXXX
+ Z_Z_Z_Z
+ _ZZ__ZZ
+ ___ZZZZ
codecov[bot] commented 3 days ago

Codecov Report

Attention: Patch coverage is 76.92308% with 9 lines in your changes missing coverage. Please review.

Project coverage is 82.79%. Comparing base (dddaedb) to head (65f8a2c).

Files Patch % Lines
src/ecc/codes/classical/recursivereedmuller.jl 65.21% 8 Missing :warning:
src/ecc/codes/quantumreedmuller.jl 93.75% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #302 +/- ## ========================================== - Coverage 82.85% 82.79% -0.06% ========================================== Files 60 62 +2 Lines 3971 4010 +39 ========================================== + Hits 3290 3320 +30 - Misses 681 690 +9 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

Fe-r-oz commented 3 days ago

PyMatching Decoder should not be used for QRM codes.

Please check out the decoder graphs for these codes!

BeliefPropDecoder display

Table Decoder display

More Samples

display