C++ implemenation of UnionFind with a python binding
Project description
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for UnionFindPy-0.2.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b1ad9223b0d4f3408fe5cbed1385e81496fb597d6c7ab219576da5a9e7ccf1b |
|
MD5 | 4f9d207a841d01b3d75c4b41a818c4ef |
|
BLAKE2b-256 | 170b8388a2bdd10d49fbb81fde33e9f5f42dd3d5bf1590aa874c4e8ad956b449 |
Hashes for UnionFindPy-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a9479bac2f1100471b2d9ab1d90581206aa876d32a3b75470437d8138cf02290 |
|
MD5 | 370a6e1fb97b35d0316a5df69d10d914 |
|
BLAKE2b-256 | 573138997db522b73f4b507e83e30cafa014c5ef3420862b63339b44ec83a1ef |
Hashes for UnionFindPy-0.2.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52152f2652c54a1739f93a7e11e9f72965c4a59aa1b16c5cee59c596bfbe8e6b |
|
MD5 | e03595ea697353ec8a3a9b995c6b8898 |
|
BLAKE2b-256 | f1ddd2a82636dcf20127ef4737a837de40c3d9cccc8b546c37478052cebde510 |
Hashes for UnionFindPy-0.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d94862f6b6a982f4f21b357a055e71416dda82652e4c621afd7e65727bdff45 |
|
MD5 | 3d02b8c93c694afd92e5d0de7acf060f |
|
BLAKE2b-256 | c2c26c69e657430332488a314d402547377ebb9add3e1386ed7a7fcecdedc223 |
Hashes for UnionFindPy-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 07b1c73eed76f4cb05882b7c68e534c1212e8b8ebaab4c5c487c4ff8d640a418 |
|
MD5 | 17b1d856be7c3c40d77bd91fb4b45dea |
|
BLAKE2b-256 | bbd0f795f1e70e99faec55c8e9823fd2fb22e8e93b457d8266275a5a74d3c350 |
Hashes for UnionFindPy-0.2.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2b52dd60cb7a3ef0a1e3a3d99f57f478b4e24bc13220cc6db9bdead1810d074 |
|
MD5 | f52ac869b97cfd73b65806045f1bddd7 |
|
BLAKE2b-256 | dbe6f86f88c06cbea7885b49b5100444f64db9a9b7857fd63130772647040fdb |
Hashes for UnionFindPy-0.2.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c041b1d6198542a74f45d592b8a61c12ee39356779501855c461d0d2edc37778 |
|
MD5 | c7d06ad5575276dc6d17d3bb217eac59 |
|
BLAKE2b-256 | 9f4ae15a161300e18e02d99a2af0002824c6ce4f4d7c92bf3b245f013d9df476 |
Hashes for UnionFindPy-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59e0cbb4fb0c6c87776d5d7a30c1c3c76a321494e9b3fc13904d5873882f5cb4 |
|
MD5 | baf84aae10fda303fbe485bb10cdea64 |
|
BLAKE2b-256 | 48f65395bbe9abb780f5d5ab31c0fe4004f60250d036879cf887885966957c25 |
Hashes for UnionFindPy-0.2.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ab35c7b5eb2cc7cb3212896600d5bf76abfab0fcb7a9791f7871e0a9a7a8210 |
|
MD5 | a4fcc2a3d336987f2d07ecfa457779f0 |
|
BLAKE2b-256 | 85de7a66296c6286209c47f8d1aebb8357cfa24e87e5653f9f3f0f57f756fb8f |
Hashes for UnionFindPy-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77118004de0f3448fe8b3e148bd68d9fbf46533d48b004d0b5aa0d266e0dd41e |
|
MD5 | c74ac78889d798f320ebd015b8935fd7 |
|
BLAKE2b-256 | 17f200f75ec456d67b3c5ee12be7d094e3f38ea774db3ce7d404c8fadc93405c |
Hashes for UnionFindPy-0.2.1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f81168206bd567d712f4737bdd03dfe093761f435217a47e62eee69f6e0e9b4 |
|
MD5 | d3b806f9c1e0361c6e8f2cb9b5eb622a |
|
BLAKE2b-256 | cd90f6e3836b27b18e33e139d1eb64708d7018c42d79878e5b3ecf96dd338529 |