Skip to content

Fault-tolerant hyperbolic Floquet quantum error correcting codes

Notifications You must be signed in to change notification settings

fahimniya/HyperbolicFloquetQECC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 

Repository files navigation

HyperbolicFloquetQECC

Fault-tolerant hyperbolic Floquet quantum error correcting codes

arXiv: https://arxiv.org/abs/2309.10033

contact: [email protected]

Lattices

Includes colored adjacency matrices (edges) of the lattices that honeycomb and hyperbolic Floquet codes are based on. Each lattice folder has three "*_adj_mat.txt" files for the colored (green, blue, red) edges, as well plaquettes.txt for octagonal/hexagonal plaquette data and nontriv_loops.txt for noncontractible loops of the lattices.

Decoder Performance

Includes two slightly different scripts that calculate "any logical operator" error rates for hyperbolic and honeycomb codes. The target code's name should be specified with its "num_sites" (number of physical qubits) and a path to a folder that includes necessary lattice information for that code (from "Lattices" folder).

The main function to calculate the logical error rate is "calc_recovery". Calling this function needs setting probabilities of various physical errors of different error models:

- p_depol: unbiased single-qubit depolarization error rate per round

- p_depol2: unbiased double-qubit depolarization error rate per check measurement

- p_mess: measurement error rate (per round)

- p_em3: EM3 model (from Gidney's paper) error rate

"calc_recovery" will calculate logical error rate for the given physical error rates until either the logarithmic error bar of the logical error rate is less than min_errorbar or the number of error scenarios exceeds max_num_shots.

The depth of the syndrome lattice should be specified by setting "num_steps" (number of rounds). At least 3 or 4 (depending on having measurement errors in the error model) rounds at the end of the circiut need to be perfect (errorless). This is set by "num_final_steps". Total number of erroneous rounds is "num_steps - num_final_steps".

By setting "save_errors=True", calc_recovery will also save the error scenario, decoder's suggested correction, and the result of decoding (flip or not) on two logical operators in "/error_files/". These files can be used to check the decoding proceudre.

Decoder Check

Needs "/error_files/" generated by "calc_recovery" function. 1100 samples are included for "H64" code in its respective folder in "Lattices/". These error files can be generated for other hyperbolic lattices using "calc_recovery". The script then generates a stim circuit that simulates the error scenario, including initialization of two logical operators, Floquet measurement checks, Pauli and measuremnet errors, and decoder's correction. By running the deterministic cictuit and comparing the result for two logical operators to our prediction, we make sure that our understanding of the decoding is complete, and the calculated logical rates are correct. This check has been done for all hyperbolic distance-maximizing codes.

Hyperbolic Code Family

Distance-maximizing:

[[16, 4, 2]]

[[64, 10, 4]]

[[144, 20, 6]]

[400, 52, 8]]

[[2160, 272, 10]]

Everything else:

[[256, 34, 4]]

[[336, 44, 6]]

[512, 66, 8]]

[[672, 86, 8]]

[[720, 92, 8]]

[[1024, 130, 8]]

[[1296, 164, 6]]

[[1344, 170, 8]]

[[2048, 258, 8]]

[[2688, 338, 8]]

[[2880, 362, 8]]

[[3888, 488, 6]]

[[4096, 514, 8]]

[[4896, 614, 10]]

[[5376, 674, 8]]

[[5616, 704, 6]]

[[5760, 722, 10]]

[[6072, 761, 10]]

[[7800, 977, 10]]

[[8192, 1026, 8]]

[[8640, 1082, 10]]

About

Fault-tolerant hyperbolic Floquet quantum error correcting codes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published