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: coming very soon!

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.0.1.tar.gz (144.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.0.1-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: erado-1.0.1.tar.gz
  • Upload date:
  • Size: 144.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.0.1.tar.gz
Algorithm Hash digest
SHA256 69504d2bf18f442459a0f65c0b9104d04381ae57ab99709ef88ab17cf11d3821
MD5 afcfb414c3f88b49c99f5ba0ccdc7196
BLAKE2b-256 34d6df3b89fd23278a96b2c941a1d2dcf1b9c4f54f3b0264efaba4838d8e48eb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: erado-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 59b01d5b795bfb4cf78bea26523d56255df64cec5fcd7e3aafe59fdce35e26fa
MD5 d5b19302a8cdf023235977ce408d553c
BLAKE2b-256 8ed1c879fbf2277b82f62f8070f31597b0d842e1029d8ca0c2ecf9b096b3d948

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