Skip to main content

Extension module for computing permanents of square and rectangular matrices.

Project description

This project supports Python 3.10+ pre-commit GNU GPLv3

Permanent

The permanent of a (square) matrix, like the determinant is a polynomial in the entries of the matrix. Unlike the determinant, the signatures of the permutations are not taken into account making the permanent much more difficult to compute because decomposition methods cannot be used.

The permanent commonly appears in problems related to quantum mechanics, and the most common brute-force combinatorial method has time complexity $\mathcal{O}(N!N)$, thus it is useful to look for more efficient algorithms. The two algorithms considered to be the fastest are one by Ryser (based on the inclusion-exclusion principle), and one by Glynn (based on invariant theory).

This library aims to solve the need for an efficient library that solves the permanent of a given matrix.

Algorithms

permanent.opt()

Compute the permanent of a matrix using an automatically selected algorithm. The library uses a polynomial logistic regression model (degree 4) trained on benchmarks to predict whether Ryser's or Glynn's algorithm will be faster for the given matrix dimensions.

Parameters:

  • matrix: np.ndarray(M, N, dtype=(np.double|np.complex))

Returns:

  • permanent: (np.double|np.complex) - Permanent of matrix.

permanent.combinatoric()

Compute the permanent of a matrix combinatorically.

Formula:

$$ \text{per}(A) = \sum_{\sigma \in P(N,M)}{\prod_{i=1}^M{a_{i,{\sigma(i)}}}} $$

Parameters:

  • matrix: np.ndarray(M, N, dtype=(np.double|np.complex))

Returns:

  • permanent: (np.double|np.complex) - Permanent of matrix.

permanent.glynn()

Formula:

$$ \text{per}(A) = \frac{1}{2^{N-1}} \cdot \sum_{\delta \in \left[\delta_1 = 1,~ \delta_2 \dots \delta_N=\pm1\right]}{ \left(\sum_{k=1}^N{\delta_k}\right){\prod_{j=1}^N{\sum_{i=1}^N{\delta_i a_{i,j}}}}} $$

Additional Information: The original formula has been generalized here to work with $M$ by $N$ rectangular permanents with $M \leq N$ by use of the following identity (shown here for $M \geq N$):

$$ \begin{aligned} \text{per}\left(\begin{matrix}a_{1,1} & \cdots & a_{1,N} \ \vdots & \ddots & \vdots \ a_{M,1} & \cdots & a_{M,N}\end{matrix}\right) = \frac{1}{(M - N + 1)!} \cdot \text{per}\left(\begin{matrix}a_{1,1} & \cdots & a_{1,N} & 1_{1,N+1} & \cdots & 1_{1,M} \ \vdots & \ddots & \vdots & \vdots & \ddots & \vdots \ a_{M,1} & \cdots & a_{M,N} & 1_{M,N+1} & \cdots & 1_{M,M}\end{matrix}\right) \end{aligned} $$

This can be neatly fit into the original formula by extending the inner sums over $\delta$ from $[1,M]$ to $[1,N]$:

$$ \text{per}(A) = \frac{1}{2^{N-1}} \cdot \frac{1}{(N - M + 1)!}\cdot \sum_{\delta \in \left[\delta_1 = 1,~ \delta_2 \dots \delta_N=\pm1\right]}{ \left(\sum_{k=1}^N{\delta_k}\right) \prod_{j=1}^N{\left( \sum_{i=1}^M{\delta_i a_{i,j}} + \sum_{i=M+1}^N{\delta_i} \right)} } $$

Parameters:

  • matrix: np.ndarray(M, N, dtype=(np.double|np.complex))

Returns:

  • permanent: (np.double|np.complex) - Permanent of matrix.

permanent.ryser()

Formula:

$$ \text{per}(A) = \sum_{k=0}^{M-1}{ {(-1)}^k \binom{N - M + k}{k} \sum_{\sigma \in P(N,M-k)}{ \prod_{i=1}^M{ \sum_{j=1}^{M-k}{a_{i,{\sigma(j)}}} } } } $$

Parameters:

  • matrix: np.ndarray(M, N, dtype=(np.double|np.complex))

Returns:

  • permanent: (np.double|np.complex) - Permanent of matrix.

Installation

The permanent package allows you to solve the permanent of a given matrix using the optimal algorithm for your matrix dimensions.

Installing from PyPI

Simply run:

pip install qc-permanent

This will install the package with pre-set parameters with a good performance for most cases. Advanced users can also compile the code locally and fine tune it for their specific architecture. They can either use the pre-defined parameters or fine tune them to their machine.

Installing manually

  1. Install Python on your machine. Depending on your operating system, the instructions may vary.

  2. Install gcc on your machine. Depending on your operating system, the instructions may vary.

  3. Create and activate a virtual environment for this project named permanents. One way to do this is with pip.

    python -m venv permanents
    source permanents/bin/activate
    
  4. Install Python dependencies:

    pip install numpy pandas scikit-learn pytest
    
  5. Install qc-permanent.

    pip install .
    

    Optionally, install dependencies for building documentation (doc), running the tuning algorithm (tune), and/or running the tests (test) by specifying them in square brackets:

    pip install '.[doc,tune,test]'
    

If you want to generate a machine-specific tuning header for building the library, you must first install with tuning dependencies, and then build with tuning enabled:

PERMANENT_TUNE=ON pip install '.[tune]'

This compiles the code with machine specific tuning for algorithm swapping. Note that machine specific tuning will run a series of tests. This will take anywhere from 10 minutes to 1 hour depending on your system.

Using the C++ library

The C++ library can be used by including the CMake project for matrix-permanent in your own CMake project. The Makefile also acts as a convenience wrapper around the CMake build for quickly compiling the C++ library.

License

This code is distributed under the GNU General Public License version 3 (GPLv3). See https://www.gnu.org/licenses/ for more information.

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.

qc_permanent-0.0.2-cp314-cp314-win_amd64.whl (92.6 kB view details)

Uploaded CPython 3.14Windows x86-64

qc_permanent-0.0.2-cp314-cp314-musllinux_1_2_x86_64.whl (199.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

qc_permanent-0.0.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

qc_permanent-0.0.2-cp314-cp314-macosx_10_15_universal2.whl (156.2 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

qc_permanent-0.0.2-cp313-cp313-win_amd64.whl (91.7 kB view details)

Uploaded CPython 3.13Windows x86-64

qc_permanent-0.0.2-cp313-cp313-musllinux_1_2_x86_64.whl (199.8 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

qc_permanent-0.0.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

qc_permanent-0.0.2-cp313-cp313-macosx_10_13_universal2.whl (156.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

qc_permanent-0.0.2-cp312-cp312-win_amd64.whl (91.7 kB view details)

Uploaded CPython 3.12Windows x86-64

qc_permanent-0.0.2-cp312-cp312-musllinux_1_2_x86_64.whl (199.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

qc_permanent-0.0.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

qc_permanent-0.0.2-cp312-cp312-macosx_10_13_universal2.whl (156.0 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

qc_permanent-0.0.2-cp311-cp311-win_amd64.whl (91.8 kB view details)

Uploaded CPython 3.11Windows x86-64

qc_permanent-0.0.2-cp311-cp311-musllinux_1_2_x86_64.whl (199.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

qc_permanent-0.0.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

qc_permanent-0.0.2-cp311-cp311-macosx_10_9_universal2.whl (154.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

qc_permanent-0.0.2-cp310-cp310-win_amd64.whl (91.8 kB view details)

Uploaded CPython 3.10Windows x86-64

qc_permanent-0.0.2-cp310-cp310-musllinux_1_2_x86_64.whl (199.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

qc_permanent-0.0.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (117.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64manylinux: glibc 2.5+ x86-64

qc_permanent-0.0.2-cp310-cp310-macosx_10_9_universal2.whl (154.4 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file qc_permanent-0.0.2-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 e516ab2a1dc73492df34e909f7a38618b0695dc15ba3fcb09f30bc86e470ebcb
MD5 20f7509f45971e75f5fa85740d64e538
BLAKE2b-256 5f1254b17f78eba40285a4fb26a12a88b546154f739347270850686af76a95ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp314-cp314-win_amd64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0d522dd9649178bc8a020bd73cef85b66801d4cce5f40c3decf42118626e95f5
MD5 8fbbb471e145d4a59c4e1ebc7aaeb6b0
BLAKE2b-256 7f20ea8678c75e04339214924302e1aca7f7735ea8f80bbf8aa71d63925eb550

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 3cd8ab89762ff286cbcb3fdc528a6765d2f6f095b1c07e1523dabef1be5e5133
MD5 947c796180ab1ab1e60f060b6ed4f51e
BLAKE2b-256 c3c5788fe1a496a9c8390a850aee9a7e3c5db58360ed53a8b94a2d54fb780402

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 04ebd7741c8e6a339db4d03571be7608ab2afe371caa1732da5a397e932f7afb
MD5 72c83f0e2ed6621756815aef82a01a3c
BLAKE2b-256 e5e76dd9d69bea3932bce2b6b957e696a6aebd431bdeb46e819b68001c81f9d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp314-cp314-macosx_10_15_universal2.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 c6968d2a525e45b3858ba68018ad565e819b9a61ae7e51e76c643f6599b430bb
MD5 f2eb4d93afae4856ff4641ca7e68b033
BLAKE2b-256 ec39b10f91ab2c6a1ed10108a92c9c79f0906bce28fe81976f010d7ae2322d50

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp313-cp313-win_amd64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 149179f7143e1282ae3574a702d14da43b8b9cba96c2e4f2e33275a8db0fa732
MD5 8571abdcc8d49ed1f903b5ee9ca01703
BLAKE2b-256 9a62bae9a9cb3c5977f288815963e7def2f0890db3be0d414359683cf1d9f52d

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 99b1a14c7cd4f424d8c2b3e5809d1a70ef9de9be79b66193630e9af311dd5b0c
MD5 d45249bb2e98b0f3123e1ce2c9086722
BLAKE2b-256 041ec78d7d987c5fc15e415eb3a3d3e865d90c066b5275883396fb667d175b5c

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 997efe5e9bf9bc7af3eda7ba5ad41a22e15e12a7d4132e1d14e6f57a8d5ceb0c
MD5 fa7a47600a1358827b6b404be2e2a13c
BLAKE2b-256 e2df254ecdce892ec0456632da1ba6a506059fbd890af2b3834f28d3c48b697d

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp313-cp313-macosx_10_13_universal2.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6e10be9ae3740abc001e9c03609a3a5d1b40df503f0ef18fbb4ca3e3460d84fa
MD5 53fd4b7000f608e296c4d7e7c1f156da
BLAKE2b-256 b6b99f2d77ea0d4e5c2bb98cc3eb570d248ca5aa89860a6985b72380e65f7cc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp312-cp312-win_amd64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3ab99a978f25cf48da4be1a990918eb2793b513416cdf4a6ffa59d207b9ae608
MD5 dcf34aab646c718e29078048f7c6cc1d
BLAKE2b-256 46ee936495f4ccf8a05551d929ac0dc651ec23991ff205f7c62f77a1670fb263

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 9f1933e0700002c4eec3a49ad3a03acc61049c1a4940a79c6b2240b8b88159e2
MD5 8f74d925b2a855cf9c60426352a4409e
BLAKE2b-256 5f65c529229e6a5f467579a5ed1a29f7a720177d83465cb59b9092050cac44d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 a71148b78fd71728327d4d290361a1674c785c2b9dd40c61c0c0da92d3c03ec5
MD5 583129b7e7cbcbdd053428734efe284f
BLAKE2b-256 fa665af63cb3065c7bd6d2e0114ca11af6ca8a8c2ccd86affb4e7f3dc8943198

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp312-cp312-macosx_10_13_universal2.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 62d2c4f1caa48b3072679c89a12769d19d85741e4e27955db4323c266156cdf3
MD5 41f222ab7830ff73836fcc98a43450ca
BLAKE2b-256 0e5a900c6500728d78b95e338d8cbb2f9ae5b272c5a8e1e6e468d07fddd48291

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp311-cp311-win_amd64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1b70f56fad1ae1545b00871e91d10f53c94e582b1ffa3aad38e5884c9b0eab0
MD5 57768cdf5a800c8bfad2e448f8d0f67f
BLAKE2b-256 7d37f8cd94b398e24c9d01207d49e211257b084f84227123ab64abb8ba0f26dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 9fe71465020c1186283b6f296e27e6ed769b3d3c2f0c2c61e528dc2d3d393572
MD5 e929bc25befee100282b2d1b7224a068
BLAKE2b-256 4a99dde30e99254d4961f1045529f7de472f27711978fdd2c97eccc44c296ed1

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3256cffcb8f025c1b8a183d32ec9d92625ebe78469b7b7b2452a8deb006ca3d4
MD5 fe8c1673034ab7ff9615ab1f763fdc9e
BLAKE2b-256 f0c3a689c5187c63d3f11d111e15dc2410933011cc1d54b897af5d5e119c30b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp311-cp311-macosx_10_9_universal2.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 81db186504b5b465b528c4053dd7249d8afb5c3c099d552d8edf6b80d02eb1da
MD5 89deb76df339579449978eaf1f6302bf
BLAKE2b-256 3fed3416d7da1b3c05c66b67ea5b08bfdf801dc5325123687712d401756867dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp310-cp310-win_amd64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 65772cdac43aa7a9817ccd0d2a318489ae703f950b63764b026b1b6a056bf18a
MD5 bad0e3a0a06bf13d4e614c761b075861
BLAKE2b-256 2fd9cd74a4f173249b3a30f217799857efc7f92fc6ddd677a585a04d23ee9afb

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
Algorithm Hash digest
SHA256 973b1013972a4158fe471091224a757a3bf5092ee68bae4056a79083b660ea72
MD5 01abf4c0ad8858930baa9ec33813c519
BLAKE2b-256 09fbcbda123eff4af4c0a75338dfd5bd83e1016a27c7a9809810244907164961

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file qc_permanent-0.0.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for qc_permanent-0.0.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 67a3d6543971408ec2d391b5acce2458549228035486e36bdf6aba8a3f762464
MD5 a47bd47a90adef2e35860d7aad6b2e3b
BLAKE2b-256 ec036937a70677bac941f5db77bf27cd48ff9cc8e16e5de1170e487ab3f40537

See more details on using hashes here.

Provenance

The following attestation bundles were made for qc_permanent-0.0.2-cp310-cp310-macosx_10_9_universal2.whl:

Publisher: publish_pypi.yml on theochem/matrix-permanent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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