Skip to main content

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

Project description

qLDPC

This package contains tools for constructing and analyzing quantum low density partity 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:

  • abstract.py: module for basic abstract algebra (groups, algebras, and representations thereof).
  • ClassicalCode: class for representing classical linear error-correcting codes.
  • CSSCode: general class for constructing quantum CSS codes out of two ClassicalCodes.
    • Includes options for applying local Pauli transformations (i.e., Pauli deformations of the code), which is useful for tailoring a CSSCode to biased noise (see arXiv:2202.01702).
    • CSSCode.get_logical_ops: method (from arXiv:0903.5256) to construct a 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). Includes options for computing a lower bound (determined by the distances of the underlying ClassicalCodes), an upper bound (with the method of arXiv:2308.07915), and the exact code distance (with an integer linear program, which has exponential complexity).
  • 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. Follows the conventions of arXiv:2202.01702.
  • 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.

🤔 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.

In the meantime, if you have any questions or requests, please open an issue!

⚓ 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.5.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

qldpc-0.0.5-py3-none-any.whl (38.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: qldpc-0.0.5.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.5.9-zen2

File hashes

Hashes for qldpc-0.0.5.tar.gz
Algorithm Hash digest
SHA256 0ba8878b76dc21c3b768f1b001a2a377c0a400e612b8c5a63fdb74e9f851fc9a
MD5 8ad081a1a2c45643a149e8919b229bb6
BLAKE2b-256 983e264d2f0538a19802a405b6e571d2ab49d151b2c223556d4209f5be814061

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: qldpc-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 38.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.13 Linux/6.5.9-zen2

File hashes

Hashes for qldpc-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 dbbf1641c473983914bc6d1e69d81fdba00e7cd5d52699319d17d14d35b7b378
MD5 98e3b33c77dbf4a808af9ca68a5b50ce
BLAKE2b-256 b31c05aeb4f3ac908bdb386fe3dfba79e10a0fc7e5f8a3035fb246814e61c681

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