erado
Simulation suite for erasure noise and postselection as quantum error mitigation.
ērādō
Latin verb; third conjugation
- to scrape away, pare
- to abolish, eradicate, remove
- to erase, delete
Overview
erado is OQC's Qiskit-based Python library for the simulation of circuit-level erasure noise and postselection, with arbitrary quantum circuits.
For a conceptual introduction, usage instructions and API reference, please see the library documentation.
For theoretical background and numerical details, see our corresponding paper: 'The limits of erasure-based postselection for quantum error mitigation,' 2026, arXiv:2606.31428 [quant-ph], by Sam J. Griffiths, Jamie Friel and Brian Vlastakis.
If using or referencing this work, please cite the paper as follows (BibLaTeX):
@online{griffithsLimitsErasurebasedPostselection2026,
title = {The Limits of Erasure-Based Postselection for Quantum Error Mitigation},
author = {Griffiths, Sam J. and Friel, Jamie and Vlastakis, Brian},
date = {2026-06-30},
eprint = {2606.31428},
eprinttype = {arXiv},
eprintclass = {quant-ph},
doi = {10.48550/arXiv.2606.31428},
url = {https://arxiv.org/abs/2606.31428},
pubstate = {prepublished}
}
Installation
Published package
The erado Python package is published to PyPI (https://pypi.org/project/erado), so you can install it easily via pip (or any similar package manager), e.g.:
pip install erado
or add it as a dependency in your pyproject.toml file (automatically or manually) if using a package manager such as uv or Poetry, e.g.:
uv add erado
⚠️ NOTE:
GPU capabilities are provided by the
qiskit-aer-gpu-cu11package, which is only available on x86_64 Linux. Therefore,qiskit-aer-gpu-cu11will be installed ifsys.platform() == "linux", otherwiseqiskit-aerwill be installed (i.e. if on Windows etc.).
From source (uv)
This package uses uv for Python project management. For more information on installation from source and development/testing utilities, please see our contribution guidelines.
Example usage
A motivating example for a simulation running a Qiskit circuit with erasure noise, imperfect erasure checks and postselection (including per-shot circuit fidelity) is as follows:
from erado import (
circuits,
models,
fidelity,
frontend,
)
import qiskit_aer
n_qubits = 5
circuit = circuits.qft_linear(n_qubits)
circuit.save_statevector(label=fidelity.STATE_LABEL, pershot=True)
circuit.measure_all()
erasure_model = models.ErasureCircuitSampler(
circuit=circuit,
erasure_rate=0.01,
)
backend = qiskit_aer.AerSimulator(method="statevector")
sim_frontend = frontend.ErasureSimFrontend(
model=erasure_model,
false_positive_rate=0.005,
false_negative_rate=0.010,
)
results = sim_frontend.run(
backend=backend,
shots=1000,
postselect=True,
get_fidelities=True,
)
For a more detailed introduction as to how and why to use this library, see our 'Getting Started' page.
Acknowledgements
This work was supported by the Innovate UK Quantum Missions pilot competition 10148061 DECIDE: Dimon error correction integrated into a data-centre environment.
Metadata
Release files for erado 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| erado-1.1.1.tar.gz | 175.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| erado-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 199.9 kB
Release files / erado-1.1.1.tar.gz
| Download URL | erado-1.1.1.tar.gz |
|---|---|
| Size | 175.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f4b82916244b27f335b1d3a223addc0a153fb1d73df667901c72a66e82c12054
|
|
BLAKE2b-256 checksum How to use checksums |
5cfecfdd8056a553bd6a2ae80ac614ec61533b0b90a5e24f2c974758d3e5189f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / erado-1.1.1-py3-none-any.whl
| Download URL | erado-1.1.1-py3-none-any.whl |
|---|---|
| Size | 24.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fcfe9e8aeba642c916a200ca93bf7b1276526dc163d0d39f66da94fcef3e2a52
|
|
BLAKE2b-256 checksum How to use checksums |
7720e0da88c48727831e7a48927768fe970197c6f414579af9144100ef4282a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.3 {"installer":{"name":"uv","version":"0.12.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for erado 1.1.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.