Skip to main content

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

Project description

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

To install a local version 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). Options to apply more general Clifford code deformations are pending.
  • GBCode: class for constructing generalized bicycle codes, as described in arXiv:1904.02703.
  • QCCode: class for constructing the quasi-cyclic codes 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.
  • abstract.py: module for basic abstract algebra (groups, algebras, and representations thereof).
  • objects.py: module for constructing and helper objects such as Cayley complexes and chain complexes, which are instrumental for the construction of various quantum codes.

🤔 Questions and issues

If this project gains interest and traction, I'll add a documentation webpage and material to help users get started quickly. I am also planning to write a paper that presents and explains this project. In the meantime, you can explore the documentation and explanations in the source code. qldpc/codes_test.py contains some examples of using the classes and methods described above.

If you have any questions, feedback, or requests, please open an issue on GitHub or email me at michael.perlin@infleqtion.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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qldpc-0.0.9.tar.gz (60.2 kB view details)

Uploaded Source

Built Distribution

qldpc-0.0.9-py3-none-any.whl (66.3 kB view details)

Uploaded Python 3

File details

Details for the file qldpc-0.0.9.tar.gz.

File metadata

  • Download URL: qldpc-0.0.9.tar.gz
  • Upload date:
  • Size: 60.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/6.8.0-zen1

File hashes

Hashes for qldpc-0.0.9.tar.gz
Algorithm Hash digest
SHA256 4ddb22639397c63f39aa29b93286bb2ca4c9d2da1638b44d1d81a3bf0faf1f91
MD5 41a498be13ad82712e892e4568654f9e
BLAKE2b-256 807b9cfc980134de12a4c1585c2afcb1058a619c603ac7f9c3df17f02114dc3d

See more details on using hashes here.

Provenance

File details

Details for the file qldpc-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: qldpc-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 66.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.10.13 Linux/6.8.0-zen1

File hashes

Hashes for qldpc-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 eb5aabdc0137005463f95655af37285fc8c25bf9aa58c4c957f0883c6848246e
MD5 c3dc995273dc7f7412d5c9f2cbc20673
BLAKE2b-256 0177e10dcd8d236b3df08ec6c3e97d882d974be699d03ea0e103dd245c6c9045

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page