Skip to main content

qevedo-simulator

Python bindings of qvd, a fast quantum circuit simulator written in Rust. It installs as qevedo-simulator and imports as qevedo.simulator.

pip install qevedo-simulator          # add [numpy] for NumPy state vectors
from qevedo.simulator import Circuit, expectation, run, statevector

bell = Circuit(2).h(0).cx(0, 1).measure_all()
result = run(bell, shots=1000, seed=1)
print(result.counts, result.backend)  # {'00': ..., '11': ...} stabilizer

# OpenQASM 2 or 3 text works anywhere a circuit does.
result = run("""
OPENQASM 3.0;
include "stdgates.inc";
qubit[3] q;
bit[3] c;
h q[0];
cx q[0], q[1];
ccx q[0], q[1], q[2];
c = measure q;
""", shots=1000)

state = statevector(Circuit(3).h(0).cx(0, 1).t(2))  # NumPy complex128 array

# Expectation values by Pauli propagation, far beyond a state vector:
# a Pauli string, a {string: coefficient} dict or a Qiskit SparsePauliOp.
e = expectation(Circuit(2).h(0).cx(0, 1), {"Z0 Z1": 1.0, "X0 X1": 0.5})
print(e.value, e.truncated_one_norm)  # 1.5, and a bound on its error (0)

Clifford circuits can carry Pauli noise channels (x_error, y_error, z_error, pauli_channel_1, depolarize1, depolarize2, Stim's channels), sampled independently in every shot by the stabilizer backend. sample returns the raw measurement records, measurement-major like Stim's FlipSimulator, and to_stim writes the same circuit for Stim:

from qevedo.simulator import Circuit, sample

c = Circuit(3)
for _ in range(10):                      # a small repetition code
    c.reset(1).x_error(1, 0.001)
    c.cx(0, 1).depolarize2(0, 1, 0.001).cx(2, 1).depolarize2(2, 1, 0.001)
    c.x_error(1, 0.001).measure(1, c.num_clbits)
bits = sample(c, 100_000, seed=1)        # NumPy bool array, (10, 100000)
print(c.to_stim().splitlines()[:3])      # ['R 1', 'X_ERROR(0.001) 1', 'CX 0 1']

Error-correction circuits written in Stim's format (text or a stim.Circuit, for example from stim.Circuit.generated) run directly. sample_detectors returns detection events and observable flips, shot-major as Stim's detector sampler returns them and as decoders take them; from_stim gives the Circuit with its detectors and observables as lists of measurement indices, and sample takes Stim text too:

import pymatching, stim
from qevedo.simulator import sample_detectors

circuit = stim.Circuit.generated("surface_code:rotated_memory_z", distance=5, rounds=5,
                                 after_clifford_depolarization=0.003)
detectors, observables = sample_detectors(circuit, 100_000, seed=1)  # (100000, 120), (100000, 1)
matching = pymatching.Matching.from_detector_error_model(circuit.detector_error_model(decompose_errors=True))
logical_error_rate = (matching.decode_batch(detectors) != observables).any(axis=1).mean()

bit_packed=True returns uint8 arrays with eight detectors per byte (detector d in bit d % 8 of byte d // 8), Stim's packing and an eighth of the memory, as decoders that take packed input expect; sample(..., bit_packed=True) packs eight shots per byte. All of these are written by Rust into the array's memory, without a copy in Python.

The reader takes Stim's Clifford gates, M/MX/MY/MR/MRX/MRY with measurement-flip probabilities (M(0.01)) and inverted targets (M !3), R/RX/RY, MPAD, the Pauli channels, DETECTOR, OBSERVABLE_INCLUDE and nested REPEAT blocks; anything else (MPP, correlated errors, classical control, ...) is an error naming the line.

run chooses the simulation method automatically:

Backend For Scale on one workstation
stabilizer Clifford circuits, with Pauli noise tens of thousands of qubits
near_clifford Clifford circuits with few non-Clifford gates hundreds of qubits, ~30 active
statevector anything that fits in memory (AVX2 kernels, gate fusion) ~32 qubits
mps low-entanglement circuits 100+ qubits, approximate beyond χ

Pass backend= to force one. The result reports the method that ran, its timings, and the MPS fidelity estimate or the near-Clifford peak active qubits. Simulations release the GIL.

expectation propagates the observable backwards through the circuit (Cliffords for free, small coefficients dropped), for up to 1024 qubits: <Z62> of IBM's 127-qubit, 20-step kicked Ising circuit takes 0.25–9.6 s at the thresholds in the main README's benchmark.

x86-64 wheels are built for AVX2 + FMA processors (2013–2015 or newer); other x86-64 machines can build from source with a Rust toolchain.

License: MIT.

Metadata

Release files for qevedo-simulator 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qevedo-simulator 0.1.4
File Size Uploaded Provenance Actions
qevedo_simulator-0.1.4.tar.gz 418.1 kB With provenance Details for qevedo_simulator-0.1.4.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for qevedo-simulator 0.1.4
File Actions
qevedo_simulator-0.1.4-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for qevedo_simulator-0.1.4-cp310-abi3-win_amd64.whl
qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
qevedo_simulator-0.1.4-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for qevedo_simulator-0.1.4-cp310-abi3-macosx_11_0_arm64.whl
qevedo_simulator-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for qevedo_simulator-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 8.1 MB

Release files / qevedo_simulator-0.1.4.tar.gz

Download URL qevedo_simulator-0.1.4.tar.gz
Size 418.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a5100f8cd1e230347c6d5a9e0c77e4cc9e20b7d12965fea3eebb5e4e8309cd8c
BLAKE2b-256 checksum
How to use checksums
c0e838c94857cc827a99b79a6a166d1aa7e4541ba4f2edc3180517687d938a40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / qevedo_simulator-0.1.4-cp310-abi3-win_amd64.whl

Download URL qevedo_simulator-0.1.4-cp310-abi3-win_amd64.whl
Size 1.6 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d5d506ed5508c28b4adcd12c6568ae9cd3f4c905a5d32ca3b42db418a2c15280
BLAKE2b-256 checksum
How to use checksums
591786df7c0dc6b499d4d2f8f1b67c784072d50553750fdda3e8a314c2551b68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.8 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
a1a1242cfa3a5898fa51ad17138e08a5aded0b607bde5e5775323b3917190457
BLAKE2b-256 checksum
How to use checksums
1bac7764cde80442926df26c84cb2fc0f590fa2f9ed8825ade879c7093366336
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL qevedo_simulator-0.1.4-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
48118d80bea7ea3277e2ae017698485a5c98a55fd4429f52e4e4eec3cea182aa
BLAKE2b-256 checksum
How to use checksums
c95911d4d97de1a4b98351dc936f4cd56493f8931ba4561315efda2204f6177a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / qevedo_simulator-0.1.4-cp310-abi3-macosx_11_0_arm64.whl

Download URL qevedo_simulator-0.1.4-cp310-abi3-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c4cccd058aae4f0ab74895799d992d62b9398a88317ae3cb7882c9abc0b83eca
BLAKE2b-256 checksum
How to use checksums
9d9df3248bf800ccb78155e9ca713b56e72953ae98353bdda393cde8d384e948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / qevedo_simulator-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl

Download URL qevedo_simulator-0.1.4-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.5 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
af57c4205efc5d29f218b904e42bde0c0708b60fc8f23fab776148f83a0fd28b
BLAKE2b-256 checksum
How to use checksums
995e704f1e9b360fd864418339b22b27252970fcc9fa5f3a4cb3c5bd3d8ebc84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for qevedo-simulator 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 6 files in this release have been uploaded with provenance metadata.

Select from 6 files

Attestation for qevedo_simulator-0.1.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page