Skip to main content

MQT QECC - A Tool for Quantum Error Correcting Codes

Project description

License: MIT CI Python CI Bindings codecov

MQT QECC - A tool for Quantum Error Correcting Codes written in C++

:warning: This project is still in early development and breaking changes might happen frequently.

(Additionally to the basic numerical results already provided, further data will be published continually)

A tool for quantum error correcting codes and numerical simulations developed by the Chair for Design Automation at the Technical University of Munich based on methods proposed in [1]. QECC is part of the Munich Quantum Toolkit (MQT).

The tool can be used to decode quantum LDPC codes and conduct respective numerical simulations.

At the moment the general QLDPC decoder [2] and a heuristic (which improves the runtime of the algorithm) [1] are implemented. Currently, open-source software by Joschka Roffe et al.: [3] is used to construct codes (toric, lifted product and hypergraph product).

Documentation

If you have any questions, feel free to contact us via quantum.cda@xcit.tum.de or by creating an issue on GitHub.

Getting Started

QECC is available via PyPI for Linux, macOS, and Windows.

(venv) $ pip install mqt.qecc

The following code gives an example on the usage:

from mqt.qecc import *
import numpy as np

H = [
    [1, 0, 0, 1, 0, 1, 1],
    [0, 1, 0, 1, 1, 0, 1],
    [0, 0, 1, 0, 1, 1, 1]
]
code = Code(H, H)
decoder = UFHeuristic()
decoder.set_code(code)
x_err = sample_iid_pauli_err(code.N, 0.05)
decoder.decode(code.get_x_syndrome(x_err))
result = decoder.result
print(result)
residual_err = np.array(x_err) ^ np.array(result.estimate)
print(code.is_x_stabilizer(residual_err))

Detailed documentation on all available methods, options, and input formats is available at ReadTheDocs.

Note Pre-built wheels are not yet available. They will be released soon. In the meantime, follow the instructions below for cloning the repository and call pip install --editable . in the cloned directory to install the Python package.

System Requirements and Building

The implementation is compatible with any C++17 compiler and a minimum CMake version of 3.14. Please refer to the documentation on how to build the project.

Building (and running) is continuously tested under Linux, macOS, and Windows using the latest available system versions for GitHub Actions.

Reference

If you use our tool for your research, we will be thankful if you refer to it by citing the appropriate publication:

a L. Berent, L. Burgholzer, and R. Wille, "Software Tools for Decoding Quantum Low-Density Parity Check Codes," in Asia and South Pacific Design Automation Conference (ASP-DAC), 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

mqt.qecc-1.0.1.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

mqt.qecc-1.0.1-cp311-cp311-manylinux_2_28_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

mqt.qecc-1.0.1-cp311-cp311-macosx_10_15_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qecc-1.0.1-cp310-cp310-manylinux_2_28_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

mqt.qecc-1.0.1-cp310-cp310-macosx_10_15_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qecc-1.0.1-cp39-cp39-manylinux_2_28_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

mqt.qecc-1.0.1-cp39-cp39-macosx_10_15_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qecc-1.0.1-cp38-cp38-manylinux_2_28_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

mqt.qecc-1.0.1-cp38-cp38-macosx_10_15_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

mqt.qecc-1.0.1-cp37-cp37m-manylinux_2_28_x86_64.whl (17.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.28+ x86-64

mqt.qecc-1.0.1-cp37-cp37m-macosx_10_15_x86_64.whl (4.1 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file mqt.qecc-1.0.1.tar.gz.

File metadata

  • Download URL: mqt.qecc-1.0.1.tar.gz
  • Upload date:
  • Size: 1.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for mqt.qecc-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e95d1d0681e41a0c218ebeee5572aa7a315d6112401568cf7c519b1a5e274001
MD5 e26181aa8244e296c2753a2f54193db4
BLAKE2b-256 3d6d8eba52e408ba227e40ea89d3fd3f727b191ca0fd96f054aaf54c16903524

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e37afefbb8dbffc507089f6d5fbb408dcc61183e2239a9d57300fb5160a93cfe
MD5 f6597d901a391b067e485d0850379d3c
BLAKE2b-256 5de8e71d985b7733f5146353d03f2784060af1b6159c9fec6eb49c07aceabd37

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c6492843eb6dcf4d44c358f898b2d3511e5d5454d311c1be2fbaf9360a8f00c8
MD5 7ac852ed658a4b788608ee635e7598ee
BLAKE2b-256 761e8e434717cecb0dd46732d2859dd700fa046b05ab09758d0a71bdaa375843

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb94d001a8601e5ec6d5a61f266741427782f52a96600ce296ad12468f70e432
MD5 5a8f1de27ffdc30c22bfea0e11f404a1
BLAKE2b-256 2cee3b0d7eb558d998408a03f14b33d2e355dc37226cb9d6c5c922148e514ab7

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5f77e8a4584643664cb33642bdb4b6eed3406b57dcdee50482be3be1071a0c1b
MD5 d027801392e6094e4e41f0b030743f87
BLAKE2b-256 4836df3674cafd228cccddac3e85370c1a08c073a1f8dca8f3d6ef8bc1401336

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed1c7686c20838c8dbbd5cdf70c08e8465de4a22b51f58778b13cb5d79313e91
MD5 83c6d514f90215783567b18e7479067a
BLAKE2b-256 f12ce0e07075b1a0dd5b4242c413de5ace414efeae3fd6c90e149d2aae0e6096

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a3b1545858b5585bb6927bad5d278ee29e80de0c4d56f0854b3064d6402a2f79
MD5 0df7292e24c801f1529c73768dbc607c
BLAKE2b-256 afd46ab862fe7c7e1d7bb9b9c7cf4d1e7539aa9f25df28dbb5f9d08b60f3ee3f

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 78c05b217bcd905d584443a727b022e5c11e8725b5afacbb5eb28e4aae19cec8
MD5 d0aa27cc55d10fa9ac0a1669334caf66
BLAKE2b-256 68f89187a108661bf2a2f8acb1a8289154e4dc78351b8f6d35d7b524269140df

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c52020de9189161de99829f974a6ef1e788d94c81b2a148a98f68144530b7438
MD5 42acaddebc156c69c19de23ad291bb88
BLAKE2b-256 f0e3b91db7a3384388b61e55c52f5bfed72af59b9a8856c29a5c757b31c2bc7f

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp37-cp37m-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce4279ac720133e472e499282330f81dd81cb61cfa5f700782ea1cbf6c1b57d4
MD5 732af9be135f59fd30ce88e20423a50c
BLAKE2b-256 234321ef14e4a245ad497f1719d6f704bc013fb6f11acf6cdfa07b49d89abe14

See more details on using hashes here.

File details

Details for the file mqt.qecc-1.0.1-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qecc-1.0.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 be4a8cafcb1fff4f10b05a90bd8426051e99af6781d43668e7a88a68e3fb76cf
MD5 5c9af0a7062c1f95bf78e094480480a8
BLAKE2b-256 a586cf5f30d32849e5e91430d10a4cbb7c02d769a0088fb606ac72d54d4eb998

See more details on using hashes here.

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