mimiq-exaqt (python wrapper, rust core)
Python bindings for exaqt-rs — a SIMD-accelerated
state-vector quantum simulator. The distribution is mimiq-exaqt and the
import package is exaqt; the native module is exaqt._core, whose
public types are re-exported on the top-level package.
Install (release wheel)
Wheels are published to PyPI on each v* tag — one abi3 wheel per
platform (Linux x86_64, macOS arm64, Windows x86_64), covering Python 3.10
and every later version:
pip install mimiq-exaqt
The wheel bundles the documentation. Read it offline, without a network round trip, with:
exaqt docs # open the bundled site in a browser
exaqt docs --print-path # or just print where it lives
Install (development checkout)
From this repository, with maturin and uv available (the Nix devshell
provides both):
cd exaqt-python
uv venv && uv pip install "mimiqcircuits>=0.28.0" pytest numpy
.venv/bin/maturin develop --release
.venv/bin/python -m pytest -q tests/
A maturin develop build does not build the docs, so exaqt docs has nothing
to open. To produce the wheel exactly as CI publishes it — documentation
included — run python scripts/build_wheel.py instead.
Quick example
import numpy as np
from exaqt import ExaqtSV, Rng
sv = ExaqtSV.zero(3)
sv.apply_h(0)
sv.apply_cx(0, 1)
sv.apply_cx(0, 2)
print(sv.amplitudes()) # numpy complex128 array, length 2**3
# Multi-qubit Pauli expectation (no need to build a 2^k × 2^k matrix).
print(sv.expectation_pauli("XXX", [0, 1, 2])) # +1 for the GHZ state
# Sampling.
r = Rng(seed=42)
shots = sv.sample(r, nsamples=1000) # shape (1000, 3) uint8
mimiqcircuits integration
import mimiqcircuits as mc
from exaqt import ExaqtQCS
c = mc.Circuit()
c.push(mc.GateH(), 0)
c.push(mc.GateCX(), 0, 1)
sim = ExaqtQCS()
result = sim.execute(c, nsamples=1000) # returns a mimiqcircuits.QCSResults
print(result)
Conventions
- Qubit ordering. Qubit 0 is the least-significant bit of the basis-state index (matches Qiskit and MimiqCircuitsBase).
- 2-qubit gate basis. For
apply_gate_2q(M, q1, q2),q1is the most significant bit of the gate's local 2×2-bit basis. See the Rust crate's docs for the precise layout. - Cross-language reproducibility. The same
Rng(seed)produces the same Xoshiro256++ stream in the Rust core, the Python wrapper, and the Julia wrapper.
Errors
The wrapper raises Python exception subclasses of ExaqtError:
GateShapeError— gate matrix has the wrong shape or layout.QubitIndexError— qubit index out of bounds, or duplicate qubits.DegenerateStateError— sampling a state with zero / non-finite norm.NonUnitaryError— only raised when the Rust crate is built with theunitary-checksfeature; flags a non-unitary user matrix.
MemoryError is raised for state-vector allocations that won't fit
(e.g. ExaqtSV.zero(40)) — instead of aborting the process.
Metadata
Release files for mimiq-exaqt 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mimiq_exaqt-0.3.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| mimiq_exaqt-0.3.0-cp310-abi3-manylinux_2_34_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.34+ x86-64 | Details |
| mimiq_exaqt-0.3.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 4.5 MB
Release files / mimiq_exaqt-0.3.0-cp310-abi3-win_amd64.whl
| Download URL | mimiq_exaqt-0.3.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
836184089f424f041d095bf6099371623e07a722e261c37835a389c721d2163a
|
|
BLAKE2b-256 checksum How to use checksums |
6d42551e9b8f8f29702ed7bc99d306b9c9afe58a1befd77baeaa4de1c28db1ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|
Release files / mimiq_exaqt-0.3.0-cp310-abi3-manylinux_2_34_x86_64.whl
| Download URL | mimiq_exaqt-0.3.0-cp310-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.10 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
d173af891bd6c9820cb31b863e60304fe349be476795ebb42229bcb6bf154c34
|
|
BLAKE2b-256 checksum How to use checksums |
bc336168e61e51c4c2633c0ff274db7fc8729ffe0c7d767cacd432a2f41128d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / mimiq_exaqt-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | mimiq_exaqt-0.3.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
074f0f07cc3005f498850c61b72ad98b4bcf2ec1b182629fb7c95eea24cb1a93
|
|
BLAKE2b-256 checksum How to use checksums |
192024bb5aa076a13bad72e67df3fcb8a8d0feb5caebd701e4255eaf8bb48b6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.13
|