Quax
A high-performance quantum information science library built on top of JAX.
Documentation
Features
- Quantum Objects: States, gates and superoperators objects are defined to allow natural manipulations and operations.
- Clear typing: Standard objects such as Unitaries, Chois and Density matrices are all typed, clarifying the nature of various objects.
- Standard operators composition/application
@, tensor products|, scalar multiplication*and powers*are defined on all quantum objects. - Automatic promotion Pure states and operators are automatically promoted to mixed states and superoperators when appropriate.
- Quantum instruments Mid-circuit measurements are modeled with
QuantumInstrument, supporting confusion/transition matrices, composition, and tensor products. - Qudit support Operations on d-dimensional qudits are supported.
- Batch support Operating on batches or ensembles of states is supported for straightforward parallelization.
Installation
pip install rigetti-quax
Quick Example
import jax
import jax.numpy as jnp
import quax as qx
# Create a 2-qubit state
psi_0: qx.StateVector = qx.zero_state_vector(dims=(2, 2,))
# Apply gates to prepare a pure Bell state
psi = (qx.gates.H | qx.gates.I) @ psi_0
psi = qx.gates.CNOT @ psi
# Generate an ensemble of Lindbladians with varying strenght
L: qx.Lindbladian = qx.lindbladians.amplitude_damping(jnp.linspace(0.0, 0.1, 10))
# Combine the Lindbladians with the CNOT unitary to create an ensemble of quantum channels
# The unitary is automatically promoted to a superoperator to support the addition of the Lindbladian
noisy_cnot: qx.SuperOp = qx.gates.CNOT + (L | L)
# Apply the noise operation to create a noisy Bell states
rho: qx.DensityMatrix = noisy_cnot @ (qx.gates.H | qx.gates.I) @ psi_0
# Compute the fidelity between the noisy Bell state and the ideal Bell state
fidelity: jax.Array = qx.fidelity(rho, psi)
# Now let's apply a qutrit gate to the ensemble of noisy Bell states.
rho = (qx.gates.TRX12(jnp.pi) | qx.gates.I) @ rho
# We can estimate the 𝜆8 observable
obesrvables: jax.Array = qx.estimate(rho, observable=(qx.gates.GELLMANN8) | qx.gates.I)
Acknowledgements
Quax draws inspiration, educational material, and some code from forest-benchmarking, Rigetti's open-source library for quantum characterization, verification, and validation. We gratefully acknowledge the forest-benchmarking contributors for their foundational work on superoperator representations, quantum channel conventions, and distance metrics.
License
Copyright 2026 Rigetti & Co, LLC. Licensed under Apache License 2.0.
Metadata
Release files for rigetti-quax 0.7.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rigetti_quax-0.7.6.tar.gz | 104.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rigetti_quax-0.7.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 230.5 kB
Release files / rigetti_quax-0.7.6.tar.gz
| Download URL | rigetti_quax-0.7.6.tar.gz |
|---|---|
| Size | 104.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6bad9ce0bb4b3e520f60b233f40d7d0b1449165712ef69c4e627afc0a1b98929
|
|
BLAKE2b-256 checksum How to use checksums |
a69228e2403ae212a398a674154d5d2539ed9b3fbe82e576a1862e5bca37632b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.14 Linux/6.1.186-228.374.amzn2023.x86_64
|
Release files / rigetti_quax-0.7.6-py3-none-any.whl
| Download URL | rigetti_quax-0.7.6-py3-none-any.whl |
|---|---|
| Size | 126.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9a0b608a43af0128a51778d4fe4f56a80b5173e5201ec78310628bb41d32226b
|
|
BLAKE2b-256 checksum How to use checksums |
15cd2c08c15475b487b854d2543ed6d596232b382d07186c0e9b4b5f32f110c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.5.1 CPython/3.12.14 Linux/6.1.186-228.374.amzn2023.x86_64
|