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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: erado-1.0.0.tar.gz
  • Upload date:
  • Size: 127.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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.0.tar.gz
Algorithm Hash digest
SHA256 3644e80309dc0dace4b2d0148fbd3b1a749b3c3fb7bc0296748fab382732cd12
MD5 13bfd2ca4dc64efb0ea667b99cd1f0ee
BLAKE2b-256 285114ff5c72c3e4989f1bfed8fb1f473cd83eb361673c4c7675c1a8077578da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: erado-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 290e702eeee80162040b0ddf40a73fda5f797c0a3e08c2f4b414792e73f345fe
MD5 1d51a31f7776f54af02be1d5a7e110e6
BLAKE2b-256 795435ce2d9d89fe4deae5ef2771150836b1b2b1099b06dae78f3bf2f80230d5

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