Skip to main content

Simulation suite for erasure noise and postselection as quantum error mitigation.

Project description

erado

Simulation suite for erasure noise and postselection as quantum error mitigation.

build pre-commit PyPI - Version docs GitHub License

ērādō
Latin verb; third conjugation

  1. to scrape away, pare
  2. to abolish, eradicate, remove
  3. 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-cu11 package, which is only available on x86_64 Linux. Therefore, qiskit-aer-gpu-cu11 will be installed if sys.platform() == "linux", otherwise qiskit-aer will 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

erado-1.1.0.tar.gz (175.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

erado-1.1.0-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file erado-1.1.0.tar.gz.

File metadata

  • Download URL: erado-1.1.0.tar.gz
  • Upload date:
  • Size: 175.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}

File hashes

Hashes for erado-1.1.0.tar.gz
Algorithm Hash digest
SHA256 67d1e83fec159c0dc59b5f86da51eeb729b0f887906f038f4b2f41c438335c61
MD5 b74dbfaaf398875a57624564b37f57cd
BLAKE2b-256 7351ff0911417e868bd4e86d7bca695098727d55e7a0145042e8a3b3258ae4d4

See more details on using hashes here.

File details

Details for the file erado-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: erado-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","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}

File hashes

Hashes for erado-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 269dea213f212eee277789c3abe59276f615d45ca8bc0060ed5ce8ef7aa110c2
MD5 020886425e0ec3ce21881606aa919ca8
BLAKE2b-256 9a586fbd222d3d73dcd420660f17614dff950d3c4bbbbce408fd31098a33a051

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page