Skip to main content

C++ implemenation of UnionFind with a python binding

Project description

Documentation Status CodeFactor

Introduction

C++ implementation of the Union-Find decoder arXiv:1709:06218. Python interface is also implemented using pybind11.

Based on a Python implementation by Kai Meinerz.

Under the LGPL lisence.

This repository includes codes for arXiv:2101.07285 which explores a machine learning assisted preprocessing combined with conventional decoders such as minimum-weight perfect matching (MWPM) and the Union-Find decoder.

Installation

Currently, you can install this project by cloning the source code tree and compiling it. To clone the source tree, use git clone as

git clone https://github.com/chaeyeunpark/UnionFind.git && cd UnionFind
git submodule update --init --recursive

Then you can compile the code using

pip install -r requirements.txt
python3 setup.py install

Note that a compiler with some C++20 supports (e.g. GCC version => 10 or Clang++ version => 12) is required. For example, if you are using Ubuntu

apt install -y g++-10
CXX=g++-10 python3 setup.py install

will work.

PyPI support will be available soon.

Basic Usage

from UnionFindPy import Decoder
decoder = Decoder(parity_matrix)
decoder.decode(syndromes) # syndromes is a list of measurment outcomes of each parity operator

For details, check the document and examples directory.

Notes

This repository does not contain an implementation of weighted Union-Find decoder.

Reference

When you cite this repository, please use the following:

@misc{UnionFindCPP,
    author = {Chae-Yeun Park and Kai Meinerz},
    title = {Open-source C++ implementation of the Union-Find decoder},
    year = {2020},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/chaeyeunpark/UnionFind}}
}

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

UnionFindPy-0.2.1-cp310-cp310-win_amd64.whl (102.9 kB view details)

Uploaded CPython 3.10Windows x86-64

UnionFindPy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl (97.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

UnionFindPy-0.2.1-cp310-cp310-macosx_10_14_x86_64.whl (97.0 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

UnionFindPy-0.2.1-cp39-cp39-win_amd64.whl (102.5 kB view details)

Uploaded CPython 3.9Windows x86-64

UnionFindPy-0.2.1-cp39-cp39-macosx_11_0_arm64.whl (97.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

UnionFindPy-0.2.1-cp39-cp39-macosx_10_14_x86_64.whl (97.0 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

UnionFindPy-0.2.1-cp38-cp38-win_amd64.whl (102.9 kB view details)

Uploaded CPython 3.8Windows x86-64

UnionFindPy-0.2.1-cp38-cp38-macosx_11_0_arm64.whl (96.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

UnionFindPy-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl (96.9 kB view details)

Uploaded CPython 3.8macOS 10.14+ x86-64

UnionFindPy-0.2.1-cp37-cp37m-win_amd64.whl (103.3 kB view details)

Uploaded CPython 3.7mWindows x86-64

UnionFindPy-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl (96.6 kB view details)

Uploaded CPython 3.7mmacOS 10.14+ x86-64

File details

Details for the file UnionFindPy-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 102.9 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1b1ad9223b0d4f3408fe5cbed1385e81496fb597d6c7ab219576da5a9e7ccf1b
MD5 4f9d207a841d01b3d75c4b41a818c4ef
BLAKE2b-256 170b8388a2bdd10d49fbb81fde33e9f5f42dd3d5bf1590aa874c4e8ad956b449

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9479bac2f1100471b2d9ab1d90581206aa876d32a3b75470437d8138cf02290
MD5 370a6e1fb97b35d0316a5df69d10d914
BLAKE2b-256 573138997db522b73f4b507e83e30cafa014c5ef3420862b63339b44ec83a1ef

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp310-cp310-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.10, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 52152f2652c54a1739f93a7e11e9f72965c4a59aa1b16c5cee59c596bfbe8e6b
MD5 e03595ea697353ec8a3a9b995c6b8898
BLAKE2b-256 f1ddd2a82636dcf20127ef4737a837de40c3d9cccc8b546c37478052cebde510

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 102.5 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0d94862f6b6a982f4f21b357a055e71416dda82652e4c621afd7e65727bdff45
MD5 3d02b8c93c694afd92e5d0de7acf060f
BLAKE2b-256 c2c26c69e657430332488a314d402547377ebb9add3e1386ed7a7fcecdedc223

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 07b1c73eed76f4cb05882b7c68e534c1212e8b8ebaab4c5c487c4ff8d640a418
MD5 17b1d856be7c3c40d77bd91fb4b45dea
BLAKE2b-256 bbd0f795f1e70e99faec55c8e9823fd2fb22e8e93b457d8266275a5a74d3c350

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 97.0 kB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c2b52dd60cb7a3ef0a1e3a3d99f57f478b4e24bc13220cc6db9bdead1810d074
MD5 f52ac869b97cfd73b65806045f1bddd7
BLAKE2b-256 dbe6f86f88c06cbea7885b49b5100444f64db9a9b7857fd63130772647040fdb

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 102.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 c041b1d6198542a74f45d592b8a61c12ee39356779501855c461d0d2edc37778
MD5 c7d06ad5575276dc6d17d3bb217eac59
BLAKE2b-256 9f4ae15a161300e18e02d99a2af0002824c6ce4f4d7c92bf3b245f013d9df476

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 96.9 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59e0cbb4fb0c6c87776d5d7a30c1c3c76a321494e9b3fc13904d5873882f5cb4
MD5 baf84aae10fda303fbe485bb10cdea64
BLAKE2b-256 48f65395bbe9abb780f5d5ab31c0fe4004f60250d036879cf887885966957c25

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 96.9 kB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8ab35c7b5eb2cc7cb3212896600d5bf76abfab0fcb7a9791f7871e0a9a7a8210
MD5 a4fcc2a3d336987f2d07ecfa457779f0
BLAKE2b-256 85de7a66296c6286209c47f8d1aebb8357cfa24e87e5653f9f3f0f57f756fb8f

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 103.3 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 77118004de0f3448fe8b3e148bd68d9fbf46533d48b004d0b5aa0d266e0dd41e
MD5 c74ac78889d798f320ebd015b8935fd7
BLAKE2b-256 17f200f75ec456d67b3c5ee12be7d094e3f38ea774db3ce7d404c8fadc93405c

See more details on using hashes here.

File details

Details for the file UnionFindPy-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: UnionFindPy-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 96.6 kB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for UnionFindPy-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 6f81168206bd567d712f4737bdd03dfe093761f435217a47e62eee69f6e0e9b4
MD5 d3b806f9c1e0361c6e8f2cb9b5eb622a
BLAKE2b-256 cd90f6e3836b27b18e33e139d1eb64708d7018c42d79878e5b3ecf96dd338529

See more details on using hashes here.

Supported by

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