Skip to content

Tools for constructing and analyzing quantum low density parity check (qLDPC) codes.

License

Notifications You must be signed in to change notification settings

Infleqtion/qLDPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

qLDPC

This package contains tools for constructing and analyzing quantum low density parity check (qLDPC) codes.

📦 Installation

This package requires Python>=3.10, and can be installed from PyPI with

pip install qldpc

If you use macOS, you may need to install cvxpy manually by following the instructions here before installing qLDPC.

To install a local version of qLDPC from source:

git clone git@github.com:Infleqtion/qLDPC.git
pip install -e qLDPC

You can also pip install -e 'qLDPC[dev]' to additionally install some development tools.

🚀 Features

Notable features include:

  • ClassicalCode: class for representing classical linear error-correcting codes over finite fields.
  • QuditCode: general class for constructing Galois-qudit codes.
  • CSSCode: general class for constructing quantum CSS codes out of two mutually compatible ClassicalCodes.
    • CSSCode.get_logical_ops: method to construct a complete basis of nontrivial logical operators for a CSSCode.
    • CSSCode.get_distance: method to compute the code distance (i.e., the minimum weight of a nontrivial logical operator) of a CSSCode. Includes options for computing the exact code distance by brute force, as well as an estimate (or upper bound) with the method of arXiv:2308.07915.
    • Includes options for applying local Hadamard transformations, which is useful for tailoring a CSSCode to biased noise (see arXiv:2202.01702).
  • TBCode: class for constructing two-block quantum codes.
  • BBCode: class for constructing the bivariate bicycle codes in arXiv:2308.07915 and arXiv:2311.16980.
    • Includes methods to identify "toric layouts" of a BBCode, in which the code looks like a toric code augmented by some long-distance checks, as in discussed in arXiv:2308.07915.
  • HGPCode: class for constructing hypergraph product codes out of two ClassicalCodes.
  • LPCode: class for constructing lifted product codes out of two protographs (i.e., matrices whose entries are elements of a group algebra). See arXiv:2012.04068 and arXiv:2202.01702.
  • QTCode: class for constructing quantum Tanner codes out of (a) two symmetric subsets A and B of a group G, and (b) two ClassicalCodes with block lengths |A| and |B|. See arXiv:2202.13641 and arXiv:2206.07571.
    • Random QTCodes can be constructed out of a choice of group G and one ClassicalCode only.
  • abstract.py: module for basic abstract algebra (groups, algebras, and representations thereof).
  • objects.py: module for constructing helper objects such as Cayley complexes and chain complexes, which are instrumental for the construction of various quantum codes.

🤔 Questions and issues

This project technically has a documentation page, but at the moment the documentation is largely auto-generated from source code and comments that were written to be readable in a text editor. For now, I recommend looking at the source code (and comments therein) directly, as well as the examples directory. Test files (such as qldpc/codes/quantum_test.py) also contain some examples of using the classes and methods in this library.

If you have any questions, feedback, or requests, please open an issue on GitHub or email me at mika.perlin@gmail.com!

⚓ Attribution

If you use this software in your work, please cite with:

@misc{perlin2023qldpc,
  author = {Perlin, Michael A.},
  title = {{qLDPC}},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/Infleqtion/qLDPC}},
}

This may require adding \usepackage{url} to your LaTeX file header. Alternatively, you can cite

Michael A. Perlin. qLDPC. https://github.com/Infleqtion/qLDPC, 2023.

About

Tools for constructing and analyzing quantum low density parity check (qLDPC) codes.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages