Skip to main content

A package for decoding quantum error correcting codes using minimum-weight perfect matching.

Project description

PyMatching

Continuous Integration codecov docs PyPI version Unitary Fund

PyMatching is a fast Python/C++ library for decoding quantum error correcting codes (QECC) using the Minimum Weight Perfect Matching (MWPM) decoder. PyMatching can decode codes for which each error generates a pair of syndrome defects (or only a single defect at a boundary). Codes that satisfy these properties include two-dimensional topological codes such as the toric code, the surface code and 2D hyperbolic codes, amongst others. PyMatching can also be used as a subroutine to decode other codes, such as the 3D toric code and the color code. PyMatching can handle boundaries, measurement errors and weighted edges in the matching graph. Since the core algorithms are written in C++, PyMatching is much faster than a pure Python NetworkX implementation.

Documentation for PyMatching can be found at: pymatching.readthedocs.io

Installation

PyMatching can be downloaded and installed from PyPI with the command:

pip install pymatching

This is the recommended way to install PyMatching since pip will fetch the pre-compiled binaries, rather than building the C++ extension from source on your machine. Note that PyMatching requires Python 3.

If instead you would like to install PyMatching from source, clone the repository (using the --recursive flag to include the lib/pybind11 submodule) and then use pip to install:

git clone --recursive https://github.com/oscarhiggott/PyMatching.git
pip install -e ./PyMatching

The installation may take a few minutes since the C++ extension has to be compiled. If you'd also like to run the tests, first install pytest, and then run:

pytest ./PyMatching/tests ./PyMatching/src

Usage

In order to decode a parity check matrix H (a scipy.sparse matrix) with syndrome vector z (a bitstring which is a numpy array of dtype int), first construct the Matching object after importing it:

from pymatching import Matching
m = Matching(H)

Now to decode, simply run:

c = m.decode(z)

which outputs a bitstring c, which is a numpy array of ints corresponding to the minimum-weight correction. Note that the m by n parity check matrix H should correspond to the Z (or X) stabilisers of a CSS code with n qubits, m Z (or X) stabilisers, and with either one or two non-zero entries per column.

To decode instead in the presence of measurement errors, each stabiliser measurement is repeated L times, and decoding then takes place over a 3D matching graph (see Section IV B of this paper), which can be constructed directly from the check matrix H using:

m = Matching(H, repetitions=L)

and then decoded from an m by L numpy array syndrome z using:

c = m.decode(z)

Instead of using a check matrix, the Matching object can also be constructed using the Matching.add_edge method or by loading from a NetworkX graph. PyMatching supports arbitrary graphs, including weighted edges and boundary nodes.

PyMatching can be used with Stim for circuit-level simulations of quantum error correction protocols. Stim is a powerful tool that can automatically construct matching graphs just from the definition of the annotated stabiliser circuit used for stabiliser measurements. Stim can also be used to sample from the stabiliser measurement circuits. The Stim "getting started" notebook contains an example that uses Stim and PyMatching to estimate the circuit-level threshold of a quantum error correcting code.

For more details on how to use PyMatching, see the documentation.

Performance

While all the functionality of PyMatching is available via the Python bindings, the core algorithms and data structures are implemented in C++, with the help of the LEMON and Boost Graph libraries. PyMatching also uses a local variant of the MWPM decoder (explained in the Appendix of this paper) that has a runtime that is approximately linear, rather than quadratic, in the number of nodes. As a result, PyMatching is orders of magnitude faster than a standard pure Python NetworkX implementation, as shown here for decoding the toric code under an independent noise model with p=0.05 and noiseless syndrome measurements:

Exact vs. local matching

PyMatching includes both the standard "exact" minimum-weight perfect matching decoder, as well as a close approximation of it, called local matching, which is much faster. Local matching allows each node corresponding to a syndrome defect (-1 measurement) to be matched to one of the num_neighbours defects that are closest to it in the matching graph. By default, PyMatching uses local matching with num_neighbours=30, but a different choice of num_neighbours can be set when decoding, e.g.:

c = m.decode(z, num_neighbours=40)

Note that by setting num_neighbours=sum(z), local matching corresponds to exact matching.

Rather than setting num_neighbours=sum(z), an alternative option for using exact matching is provided by setting num_neighbours=None. If this option is chosen, the shortest paths between all pairs of nodes in the matching graph are pre-computed and cached the first time m.decode is called, and then reused for later uses of m.decode. This differs from local matching, where shortest paths are computed on the fly. As a result, setting num_neighbours=None is more memory intensive than local matching, with the required memory scaling quadratically with the number of nodes in the matching graph, however for exact matching it is faster than setting num_neighbours=sum(z).

For typical decoding problems, local matching is an extremely close approximation of exact matching even for small num_neighbours. The following graph shows the threshold of local matching for the toric code with noisy syndrome measurements (a 3D matching graph), as a function of num_neighbours. For num_neighbours>=16, the local matching threshold is consistent with the 2.92% threshold found with exact matching:

The runtime of local matching scales linearly with num_neighbours, as shown by the following graph, generated using an L=20 toric code:

A more detailed description and analysis of local matching can be found in the PyMatching paper.

Note that PyMatching used num_neighbours=20 as a default for v0.3.1 and earlier.

Attribution

When using PyMatching for research, please cite:

@article{higgott2021pymatching,
  title={{PyMatching}: A Python package for decoding quantum codes with minimum-weight perfect matching},
  author={Higgott, Oscar},
  journal={arXiv preprint arXiv:2105.13082},
  year={2021}
}

Please also consider citing the LEMON and Boost Graph libraries.

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

PyMatching-0.7.0.tar.gz (11.8 MB view details)

Uploaded Source

Built Distributions

PyMatching-0.7.0-cp310-cp310-win_amd64.whl (176.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

PyMatching-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl (733.8 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

PyMatching-0.7.0-cp310-cp310-musllinux_1_1_i686.whl (793.5 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

PyMatching-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (222.7 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

PyMatching-0.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (232.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

PyMatching-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl (180.2 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

PyMatching-0.7.0-cp39-cp39-win_amd64.whl (176.1 kB view details)

Uploaded CPython 3.9 Windows x86-64

PyMatching-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl (734.2 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

PyMatching-0.7.0-cp39-cp39-musllinux_1_1_i686.whl (793.8 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

PyMatching-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (222.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

PyMatching-0.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (232.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

PyMatching-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl (180.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

PyMatching-0.7.0-cp38-cp38-win_amd64.whl (176.0 kB view details)

Uploaded CPython 3.8 Windows x86-64

PyMatching-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl (733.7 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

PyMatching-0.7.0-cp38-cp38-musllinux_1_1_i686.whl (793.5 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

PyMatching-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (222.5 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

PyMatching-0.7.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (232.4 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

PyMatching-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl (180.3 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

PyMatching-0.7.0-cp37-cp37m-win_amd64.whl (176.0 kB view details)

Uploaded CPython 3.7m Windows x86-64

PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_x86_64.whl (740.6 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_i686.whl (801.1 kB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (228.4 kB view details)

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

PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (238.4 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

PyMatching-0.7.0-cp37-cp37m-macosx_10_9_x86_64.whl (179.0 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

PyMatching-0.7.0-cp36-cp36m-win_amd64.whl (176.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_x86_64.whl (740.4 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ x86-64

PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_i686.whl (801.1 kB view details)

Uploaded CPython 3.6m musllinux: musl 1.1+ i686

PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (228.3 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64

PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl (238.4 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ i686

PyMatching-0.7.0-cp36-cp36m-macosx_10_9_x86_64.whl (179.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file PyMatching-0.7.0.tar.gz.

File metadata

  • Download URL: PyMatching-0.7.0.tar.gz
  • Upload date:
  • Size: 11.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for PyMatching-0.7.0.tar.gz
Algorithm Hash digest
SHA256 3bfc478a98b3ac6fe3a91fd8ba72e71837e44d0c1b5903a1ddce01556fd7e488
MD5 48a5badf45230cee0f67c25e9c57d946
BLAKE2b-256 63cc48b2f59847f5acc4f7f46b153ccaa3ddc23697ef8b3e1e3bdac4a33ada06

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 855c1f14850b4628d5af99bfd737153a7c2021d327d8417d5ba81b4c38dd6f5e
MD5 3b2d9b09ea5c396db99ae13573db9ff0
BLAKE2b-256 4f3b8487d679b19995c99392d03eb256c911fe8f152eb2e1e309b0e3d4823272

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bd7d42e3b396a25e4fe186392f23b8ef45d1985168e3dcc759a948fa269e8200
MD5 1d5e6383d8c42927e04522cd81c52211
BLAKE2b-256 f12c937ec8d0be28ebd2522a5bf71b99c5e601264647254c1dc6b94aff01ad2a

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 b5265cfbdfdce8cefc314396097ab3b3cd1a91af8271db101d58619fb8a3a615
MD5 d02c1c1b1976a2727c3481b5e1066b6f
BLAKE2b-256 3c2d06ef7108b76f31486316bee516e3e748526002cab7278b12712195f84b28

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 567c6e07d707c24dd10d19689738d6be3701c5687f74b20bb874d283829e2565
MD5 793eeb37a7d3b2e152f6fae0f1ed5785
BLAKE2b-256 688c0104285f823cb059e4596b119da7f6daddd2f53c1cff31efac7463a37dec

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b49d904f2b74d400c6842ffc4c9016e4ddad7e24d5838d8cc12a59b999b8e898
MD5 769d4ae166f5bf3eed6e87cd2827339c
BLAKE2b-256 6b0efa1fd48aea54f409a8b8c8e0874eeb9ef336c6fdc41d177c8ddf4b19c0a1

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3d9428810727404a689facd0a553e1e9f0f67e612f860c15f968f82add4ca734
MD5 36d94aab4623a3198aca03a51c63d45c
BLAKE2b-256 d83252400147b96bf86e6436cca47454f2245cf977132262adfa8ca50d8f702b

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: PyMatching-0.7.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 176.1 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 ca0701ab3180a347093eeadb34b91387834f54fbfc158f0fd31033801ab45b7d
MD5 6c79ac4ecb446f9fde94f44e6e45181d
BLAKE2b-256 3463ab42f6d90b99d367cf1c8d48083be6c11ead893f86e85f2acc1223c6bc59

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5dc67ae57eaa5a6d976c0644a6fc5680f21f3872779f516424521f43bb3ae567
MD5 66e0b0b4a2370b9e9b13986881d95e6e
BLAKE2b-256 5c47c7486fa1232302769a0f7841cb083e0ee74de3d19f6db82ec80f509bd28c

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2010485bec7da0bd32e031b6c9735aa3cacce22ea29b835e3f9785c89869f45f
MD5 47cbe36b49bc10f7fef023028efeaf96
BLAKE2b-256 7216ea0d560393e8b1ff7ea48537d8627702a173675efcf68a2061fa26bfccb7

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b6340cce577fc11428e8e4238a3280d59177b414e530fc73073dedbe5c6c5385
MD5 16e6be3de3bad22c669d0787d02add8c
BLAKE2b-256 ac110f207ab9045e7fbac05c694e8c6ac85047f5af1cc3f7f375ab67069a78e2

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4f9664d879c43fa9331a6478893f237f0e69336dd59051319f5dbdf47cfe963e
MD5 148e668e24b1ef33195a926387dcbab1
BLAKE2b-256 c39d4064b03fe8f28792630ca7ceaa5a42f9c81afdef6bbbc6b90330c8778253

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0ac980ea4b61a9ff98cd90c9dde82696b767c816f8466ca2c9223b5ef026dda7
MD5 0e045d2802e2d120e26a7e2b6fc89f97
BLAKE2b-256 4c39efe8345734fcc1763febb253037ff3b6f2c2be00724660987e2530df5863

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: PyMatching-0.7.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 176.0 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 79e7ea48c4e8c12f809132f41f5f6b69eba505b446148b3354c042a6cde1a414
MD5 10e7a4b7db00fece03274ec9e0215ebe
BLAKE2b-256 38da729e6c30222e0c9d8db1cda0e43e94dde602aa890f68211566ebebe0fd16

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c578fe2945655d70c62a17ecc37773d778a9fbeabb80171e38d1b84cea41b839
MD5 ecba1b0696015405001172b3dc9fb330
BLAKE2b-256 6bc8d866ede07cd2698bf1af684883193e960c146196b1c21519c219bc9092da

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 6bb3235aff4813c4341513d9310b7b29f7ee5315551c719b97b07f92938caccc
MD5 3031cf6b919237293c16c3437baaf1a0
BLAKE2b-256 800f3b2b078870774b66b7015475f39f71d7546f8eb10b6cc8cc2a6eb0f90ff4

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bd78d3e4f172c0d8ef7676bee39fae9f239ea8acbea17b05bf717b3a0078a3f7
MD5 d3f821a38400fe4b1f2bfe1d2c8e5ab3
BLAKE2b-256 5bfb81b96daef659f4d4a5f78d7c2dc0a495fe4b896a282fd929efc38e889d21

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d81e1fee5cb91a05e18222c1f498c480f9285c0f016f5da9951895b351a3defa
MD5 8117279f0c21ed38f3f9c79f3ee87d98
BLAKE2b-256 6546c025c404388a7e1ceb141b6f4a4d713dce42469cdf2c13d16666f8b43795

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a7933b218142f8b772e9ca725f420200232fd368cbcc179f66946dc24839901b
MD5 a95c1761fbb121a14572e54354a787f7
BLAKE2b-256 cd716c5e3183f47155b357fdb918f0a7b0b5b0fb2bf590e59e9946f580c8b7eb

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 a617ef972db7cf81d6703875ed004d90b514f0202dc2d9d3a462170e624cdcde
MD5 5ceea9c8d4db0772d8f65171974296ca
BLAKE2b-256 4e3a5849c4b69f4bbe220fbfd25becfcb37d34fab2ac4abec81e667ad6eeb9e8

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 92ff87577546c7b89f87144a4bc8fb86c6b1134d4fef747d088eec3a030d06b0
MD5 2b41c3270155f8f9c2349594ca2c94e7
BLAKE2b-256 ddfdd1eac4edc2704349aeb5588ef5689fae7a4759912dd62878fced3e91845e

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 4ff621ea058614919785981ee2dd67b98b569364120f57575287288957ff836b
MD5 a5a82e772a08e5664aa969ecff5e3bcc
BLAKE2b-256 c9d040527617bfa27188afeb872ca6738ecba93b3163ea59b6f33d7df61ed5e3

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 853d741d83f0b35437710c75ad5570c0313a590e574feb41f1f29c1dda1d0d18
MD5 62ea6da97144d33f42ee0e9e08e2f7ca
BLAKE2b-256 6b289da67adcfbf595168e5e07994ba811565915080d988b80c30a4ceaa52dfb

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7f7c498b4861134b7ace32ca4f546078ec715d9cbd7e9771b564ef5d9c7f25c9
MD5 a7bdab3ffdb9afc2b954654bdd910ebe
BLAKE2b-256 18b7f1cc5933f3df61dd93327ae38bb8822d8bd84c2be55e56515454d1e64a68

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e7f9471a540bf40427185d7f89ab9d617ba68bbea485bd321c1fe1f74dd2c658
MD5 b54a3facdcc4ce325f5c162c08d0d40b
BLAKE2b-256 718ca73d3e2e31a1ba77f106d8f6e22753d38ed72f4a5f84eadb70c248d88f0f

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 c1ec2ab53ef4339753f3451bc3c5cb9c975fe3ead332441adb9f530cc1cc693e
MD5 3a7b9afefa6e0cac657912285608322a
BLAKE2b-256 5bdd7f701f569e3a9d65e8247d3520713716c0c9246f80192cdf8a1c3f254a9d

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3c04d391e57346c14d331beea6f171f5404884165f24ead8998b1eec4c14f90f
MD5 cfc0a4b3ecc23926f775ff94799b307b
BLAKE2b-256 7f6765721648dd425d93f1a66a2ed268422f61cfb1e6245737627e208fb4edd7

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 86a81e5aba89cc6c76fe54c0459dc7374aaae04bb1d53084ef43169c3bf97e71
MD5 5766340e3ad0dfb33cbe847d7a89b43d
BLAKE2b-256 30d6653f4d46b390cc0f47163a23fc1f59e5c15061b77365c5bd6641ffe72d40

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0017d95a7b4aa2b2c618a0145de7897f0f6eac643ef245448f9fce5acbe0122
MD5 766f28ae7a24ccd9f640542a306a46ca
BLAKE2b-256 9d57d689da56a19124843ab3608cb22bc128c2b54d27cf71033479eaa7da50ca

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b5286226f2f8b92ba550c56979d92f591c60b687758c89dec01f749267a30879
MD5 e089b956cfccb66b78b30378a817be2b
BLAKE2b-256 13da8d6ea901693d4e88bc2f46fe9c50b31bd208adb15b16783b70d22c2ea95d

See more details on using hashes here.

File details

Details for the file PyMatching-0.7.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for PyMatching-0.7.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 49ca838cb306ffe2da54fa6be1ba5ab40cf89822c60209c717a2831b2ad307a1
MD5 bd5e299395f7b5a7cfb34c4043b3fe4a
BLAKE2b-256 a42bfbe9487c64a52ec7f0e7b23bb503b1a239f0562cbba69d5bb92f35e3eca3

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