Skip to main content

Quantum circuit simulator for particle number conserving extended matchgate circuits

Project description

ExtraFerm

pip install extraferm

Overview

This library can be used to estimate Born rule probabilities of measurement outcomes from particle-number conserving extended matchgate circuits:

  • Extended matchgate: the universal gate set consisting of matchgates + controlled‑phase gates
  • Particle-number conserving: the Hamming weight of initial state is preserved at all points by the circuit

Circuit Extent

Our simulator runs most efficiently when the circuit’s extent is close to one. The extent is defined as:

$$ \xi^* = \prod_{j=1}^k \bigl(\cos(\theta_j/4) + \sin(\theta_j/4)\bigr)^2 $$

where $\theta_j$ is the angle of the $j$-th controlled-phase gate.

Use

Users should interact with the simulator through the outcome_probabilities function in interface.py.

Example

import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit.library import XXPlusYYGate

from extraferm import outcome_probabilities

# Create a small circuit
seed = 123
rng = np.random.default_rng(seed=seed)
angles = rng.uniform(0, 2 * np.pi, size=12)
qc = QuantumCircuit(4)
qc.x([0, 2])
qc.append(XXPlusYYGate(theta=angles[0], beta=angles[1]), [0, 1])
qc.cp(theta=angles[3], control_qubit=1, target_qubit=2)
qc.append(XXPlusYYGate(theta=angles[4], beta=angles[5]), [1, 2])
qc.cp(theta=angles[6], control_qubit=0, target_qubit=1)
qc.p(theta=angles[7], qubit=0)
qc.append(XXPlusYYGate(theta=angles[8], beta=angles[9]), [2, 3])
qc.append(XXPlusYYGate(theta=angles[10], beta=angles[11]), [0, 1])

# Estimate a few bitstring probabilitites
bitstrings = [0b0101, 0b1100, 0b0011]
probs = outcome_probabilities(
    circuit=qc, outcome_states=bitstrings, trajectory_count=100_000, seed=seed
)

# Show results
print(probs)
qc.draw("mpl", scale=0.8, fold=-1)

[5.09355260e-01 1.56195696e-33 8.07714813e-02]

Quantum Circuit

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

ExtraFerm-0.0.1.dev0.tar.gz (404.8 kB view details)

Uploaded Source

Built Distributions

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

ExtraFerm-0.0.1.dev0-cp314-cp314t-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

ExtraFerm-0.0.1.dev0-cp314-cp314t-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

ExtraFerm-0.0.1.dev0-cp314-cp314t-macosx_11_0_arm64.whl (286.8 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

ExtraFerm-0.0.1.dev0-cp314-cp314-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

ExtraFerm-0.0.1.dev0-cp314-cp314-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

ExtraFerm-0.0.1.dev0-cp314-cp314-macosx_11_0_arm64.whl (287.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

ExtraFerm-0.0.1.dev0-cp313-cp313-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

ExtraFerm-0.0.1.dev0-cp313-cp313-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

ExtraFerm-0.0.1.dev0-cp313-cp313-macosx_11_0_arm64.whl (287.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ExtraFerm-0.0.1.dev0-cp312-cp312-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

ExtraFerm-0.0.1.dev0-cp312-cp312-manylinux_2_28_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

ExtraFerm-0.0.1.dev0-cp312-cp312-macosx_11_0_arm64.whl (287.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ExtraFerm-0.0.1.dev0-cp311-cp311-musllinux_1_2_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

ExtraFerm-0.0.1.dev0-cp311-cp311-manylinux_2_28_x86_64.whl (3.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

ExtraFerm-0.0.1.dev0-cp311-cp311-macosx_11_0_arm64.whl (287.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file ExtraFerm-0.0.1.dev0.tar.gz.

File metadata

  • Download URL: ExtraFerm-0.0.1.dev0.tar.gz
  • Upload date:
  • Size: 404.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ExtraFerm-0.0.1.dev0.tar.gz
Algorithm Hash digest
SHA256 317c584f29de3ec696d4046544fb09dc61b19b22b66ff82afbe9a66c8d7c559e
MD5 7a8394b13f0615eb06fc336e582fe4b2
BLAKE2b-256 4a73accb5361709624fe4ad34ce7145a8b9ed6b7bd0162cec93244dbc2074938

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0.tar.gz:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4a5bc57304b534cb2e0d2083e5b102442ce971b6a7753bbdacfe7aef09c2602e
MD5 c5d65d87d16ba27a41f37f2a78079a29
BLAKE2b-256 02d644c98babe9e5c974c6f49bf0f56c5d840007c9f824da3b2c452ff0af1bf5

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4077649fe1d871bb1d31ab146c489aadca37a6052e2b7634cf241bfe9d227658
MD5 60941f44e0b3f268ceef957502015bb7
BLAKE2b-256 3a8e02f5b4ddb62b129aba316d8a3c374f72f95f871f129ffadd48a15e4a4406

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22559ee379332f0b5e866afe238fc06b9fa9cf92516ff8ea769e9f48104ccebc
MD5 cac610289ec0da66b910b743857da098
BLAKE2b-256 b7fcb31402d6288edef9830475114303507760be2adb3403fc9d4b65bbf77569

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e46122afd78ef19cdb68485c9fdfdad0411f32a209eb8aac05dde14a6385e18d
MD5 b328b1dbc2c07195e8ac514ea2cb196f
BLAKE2b-256 418a80454edacf1ee25a11258c914a19273a6b5f23f2eb293b263b503bca203a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec120da7aae4753f45f281be48aca166e887de76427d1dcba4abb5c769c0edef
MD5 779b108d36f059bb4d276ac73b2ad9eb
BLAKE2b-256 43195feb49e69946efb1800de70b7b6d72b9eb53c28d2b76c5d748d2a25f79bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3fd2154c493152963e3d11325bb6bfa526789aee25d0efb58b66469e09ad2b74
MD5 6241393ce3e6aaf862f7de5ea904d87b
BLAKE2b-256 ea8a79d8d065f77aba3955b2939412260ba3998c345082163ba16798c166d0fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ca60bf920babfeb55ef9ecfe9a3f761615cf99bb7b0f1ae8269e075d3695add8
MD5 ebb01b373f8fb023028fcf4b6216b352
BLAKE2b-256 c35511008cf2091812dc0328ff45268db0101c1300d890b5a8c722a4da1b8275

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 171620e94d5d3e07319fe6295c8a657cfce655903f572b7bb7902498deadf7fe
MD5 c50862d6c183fa4b13c3c7c1614280f4
BLAKE2b-256 d8259acb9a689472433ab84cd4963b11689fcb6b43ba0324725ef7c0f515ca42

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d49bbe6170a954120806c963be9cc6c1b2db3fcb367a6f5aa1b38439e47d097
MD5 0c806dbd54291972bbe7cbb917540940
BLAKE2b-256 95f6da0f5d99f512d383819d43839563b6434da69159e1a4c734e3b1294b0f90

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 40bef09ede0ffecd48e1a2948e2ffd8dce271738cd9c4fbf943b2ffa2837eff9
MD5 936fd8e211ac2861018fe7ed2960f10e
BLAKE2b-256 df3577cbdefb52af12a01dbf712d84324c66511ecdcd421973013ec00fc3da0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 21484f083bc1b297b0aa63d5bf82d06ea9f4a5b76f638777fa70dd98606048ba
MD5 3ccc65f957c8f73f18ba39c90b6cb578
BLAKE2b-256 936435162a47f5a7bf5c240cab6a7c8e63e99b816764a1eccb66b77c80c6b339

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98600dd7ca38105e3cec0a40cd26fc81268142f86804cffed5084ee5e0621b9b
MD5 4fb531e6cee1a18c31b87aec1b6c6e67
BLAKE2b-256 ffc643a23877d46842280c208e6b880fc0dcd424480cb1e9dba0d153d24af0e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ae71e38eff42765fe5fa9a5b9f7a0ea4aff8790aea0a433475dee4c6cc0b880f
MD5 8eb88177e60c55561acf5de935cc55e0
BLAKE2b-256 59a04271b6ed8d77b9f987d83b6bd5b2fa4ae38f36a624c53b0bf81432568da3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2fdd69cd3e629607edf69ff1e88ef9c340408e1ce855a1846c28bbda8d66acd1
MD5 2208dd76e0cd09e5cfc0fa4c057d5420
BLAKE2b-256 fb7de1b34052a7ced3d7769c1d53292a878628edd2c8a3b109f4d6dbd9aa6575

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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

File details

Details for the file ExtraFerm-0.0.1.dev0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ExtraFerm-0.0.1.dev0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7267de9005ae4127816ac05bf136c528aea4a7956bd2180a61c34c8834e6a279
MD5 c65a4c7770bdaa67847f14c46eb0f54c
BLAKE2b-256 1378c991d0ccefdb424f2f182f7c2ad9766d3634fd237a21200fc20d9acfaac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for ExtraFerm-0.0.1.dev0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build-and-release.yml on zhassman/ExtraFerm

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