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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rigetti_quax-0.7.1.tar.gz.
File metadata
- Download URL: rigetti_quax-0.7.1.tar.gz
- Upload date:
- Size: 95.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/2.4.1 CPython/3.12.13 Linux/6.1.176-221.367.amzn2023.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95a7d3e0a59cfd0212184bf226f48b7a9438facb585255604ff258eda2c7a020
|
|
| MD5 |
9ff5a419291376aa7aa689497e87b078
|
|
| BLAKE2b-256 |
e0ae6fa1785fb75a968bd525b9351354da25ee7d2f8a7522ef9a69ed2a70d2d5
|
File details
Details for the file rigetti_quax-0.7.1-py3-none-any.whl.
File metadata
- Download URL: rigetti_quax-0.7.1-py3-none-any.whl
- Upload date:
- Size: 113.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
poetry/2.4.1 CPython/3.12.13 Linux/6.1.176-221.367.amzn2023.x86_64
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2712d5c4b215eb0f66963a86cb91cc418fa077ba4b9f7c41d679dc2dbfe2957
|
|
| MD5 |
b4a47e616b708e04682e3f29c9a3a794
|
|
| BLAKE2b-256 |
7903ba2d25b32916fedc7330b575138f8b0e3d4941a52ed38da1e1d242574641
|