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.2.tar.gz (1.5 MB view details)

Uploaded Source

Built Distributions

mqt.qecc-1.0.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2-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.2.tar.gz.

File metadata

  • Download URL: mqt.qecc-1.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 3adaa18869a7ed6731946cb56da44c46fc7fae13a12aab9541ce6b47e6d27052
MD5 42ffc32d8234ed5c90eafe452c015b78
BLAKE2b-256 f9ba279978ff05bd7516ff94f9b388215febc519cce1db67c6ffed82ab4f3796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c4b3e50af304d38fa83521234f5f328ded60ac7bc294933d184c03676d15af3
MD5 a2bf99b86fed44d4efa3420a17329436
BLAKE2b-256 42c00a9b38fbe5a586c70d5cde0f820eff2797ba2d9a2b059a037af2e51488da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5c061c71b431a9eee599ce1c4c0f1fc7a0a34d6fbd3455246d68b2b8b38808f5
MD5 6b6cf014d1638b9a7dd05b387ec98b7e
BLAKE2b-256 021d3ed2ac96221adbd4bd3bf68bd23d7635b058feb1447ad74918cdb40a8f05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6e5efb1a0a8ae85f7cb26bc5b7a4133b6aa9698369e7bb99dfc1423e17f5a88
MD5 49f5d8548f02536fa96fa9f57e576109
BLAKE2b-256 28ebd1e34364b8da8bbc6c9525143c69f9c645bd4aa34fc327be2526c9a48ec5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 74f4b7dab77d64c4d5031b1def5a424612b76780f4331710151ccdff21aa3715
MD5 c2a6c095b6ae1441d4b994c5697c6952
BLAKE2b-256 30342d956447aa4d220a358a126c70d000f884f920f6412f69b669f14ea90bad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6afd531ac744442dffa81730cb689ae1276a5f4d5733a53c862aa83d90a1c2e4
MD5 876b699538e06d7c1d8520bfc32c78dc
BLAKE2b-256 fa166dd3b518a0da53743e1d419948256293d0d9d8d12941e8c1f7a8883943dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 86f6d36d2fa76f4c041602660d4106a580d982919feca1b100cbb90562c5c9ab
MD5 b438e177584273f32a447bb671b605c9
BLAKE2b-256 7fd4cbff862d553ebe8280c91eba270d22dfd758f58d71bc4b2ecda96165fa8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27a87e82ad8c4519f03172c93cee02c7008bfc97dab45d6cc10ba6e2242ed72c
MD5 4902cbe3263d77958d5e7adf9e32be34
BLAKE2b-256 feba9564b3f399d9ced7595ef4f5896ec37e70c5d13d89cec50e5d968b6956c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8346a5b4268804c4de7c2d094fccb9563b1df981fee0e08e26b0b69bc4da28f1
MD5 4ec1be262f40f71e78850e4a3b2b3c80
BLAKE2b-256 fac896abdaf818fcae834734a43b7354b8bb6a7cb712fc396d6de87338549b9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp37-cp37m-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 327ae5b9040ea817018d300ea8c0280037a3b0f7c28cfcef13b757fd4bdf2dec
MD5 d5ac48e14fe05338e304a790e8ff6903
BLAKE2b-256 125b4bd3cac57a7ba32393c09a623c85c66125cc4519a30943cde3f9ebbfa89e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qecc-1.0.2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9ee23c5ae946260951c79a0aba87dc8d58648aa3563c5a99c9a6772ba505253b
MD5 c543bd332991dd333074cc926f05b554
BLAKE2b-256 26b72623f9256a32541a567569435bc5457a8895e2ee941c1aab2550a338e2ae

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