Skip to main content

isotropic

isotropic is a python library that contains tools for analysis of isotropic errors in QC algorithms. See Executive summary of concepts for a quick run down on isotropic errors and how they are generated and added to the quantum state.

Installation

We recommend installing isotropic within a virtual environment. The repository uses uv for package and project management.

Install from pip

pip install isotropic[all]

The all option installs the necessary libraries for using the qiskit simulator for algorithm analysis and running the example notebooks.

Install from source

Clone the repository

git clone https://github.com/lazyoracle/isotropic-error-analysis

Install library and dependencies

cd isotropic-error-analysis
uv sync
uv pip install -e .\[all\]

NOTE:

It is important to set your environment to enable 64-bit operations in JAX. You can do this:

  1. At the beginning of your script or notebook using jax.config.update('jax_enable_x64', True)
  2. While running your script using JAX_ENABLE_X64=1 python script.py
  3. Within your shell configuration file (e.g., ~/.zshrc) using export JAX_ENABLE_X64=True

Run examples

uv run jupyter notebook notebooks/

Run tests

uv run pytest --cov=src --cov-report=html --cov-report=term -n 4

Documentation

Documentation is available online at https://lazyoracle.github.io/isotropic-error-analysis/

Build local docs

If you want to build and view the documentation locally, follow the steps below:

  1. Clone the repository using git clone https://github.com/lazyoracle/isotropic-error-analysis
  2. Install dependencies for docs using uv pip install -e .\[docs,all\]
  3. Build and serve a live reloading version of the docs using mkdocs serve

Executive summary of concepts

Isotropic errors [Lacalle2019], are characterized by their rotational symmetry around quantum states in the high-dimensional Hilbert space representation. Unlike conventional error models that typically affect specific components of quantum states in predictable ways, isotropic errors maintain equal probability of occurrence in all directions around the original quantum state. Recent work [Lacalle2021] has demonstrated that quantum codes cannot effectively correct isotropic errors, regardless of the specific code construction or encoding strategy employed.

In order to model the effect of an isotropic error on a quantum state $\Phi$, we follow the steps outlined below:

  1. Construct an orthonormal basis of $\Pi$ with center at $\Phi$.
  2. Generate a vector $e_2$ in $S_{d−1}$ with uniform distribution.
  3. Generate an angle $\theta_0$ in $[0,\pi]$ with density function $f(\theta_0)$.
  4. Generate the final perturbed state $\Psi$ as a rotation of $e_1 = \Phi$ by angle $\theta_0$ in the subspace spanned by the orthonormal basis $[e_1,e_2]$ using the expression $\Psi = \Phi \cos(\theta_0) + e_2 \sin(\theta_0)$

Once we have a recipe for adding an isotropic error to a quantum state, we can study the effect of such an error on the complexity of algorithms such as Grover's or Shor's that involve repeated executions until success.

FAQs

  1. What system sizes can be analysed?

    Currently this is tested for systems with up to 7 qubits. There are some open issues with calculation of the error for higher system sizes.

  2. What algorithms can be analysed?

    As of now, only Grover's algorithm is implemented (using Qiskit) and analysed here. However, the library accepts an arbitrary quantum state and returns the perturbed quantum state, both as a standard complex array. Which means it can be integrated with any quantum programming library such as Pennylane or Qiskit or Cirq that has its own routines for statevector simulation of different quantum algorithms.

  3. Why does this not work on Python 3.13?

    You likely ran into an issue with the build from source of the qiskit-aer dependency. Try installing the library without the optional [all] or [algo] flags, and then separately install qiskit<2.0,>1.2 and qiskit-aer<0.18,>0.15.

Metadata

Release files for isotropic 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isotropic 0.8.0
File Size Uploaded Provenance Actions
isotropic-0.8.0.tar.gz 29.4 kB With provenance Details for isotropic-0.8.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for isotropic 0.8.0
File Interpreter ABI Platform Actions
isotropic-0.8.0-py3-none-any.whl Python 3 none any Details for isotropic-0.8.0-py3-none-any.whl

Total release size: 53.1 kB

Release files / isotropic-0.8.0.tar.gz

Download URL isotropic-0.8.0.tar.gz
Size 29.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bfefda2d97ab17840336fbd9a6f5f65432b543f78455e2c1c076a0829c37a80a
BLAKE2b-256 checksum
How to use checksums
64fe0b2d7d99954ce8ccdec98db1cab68634200567d2adff26932ae8de16197a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 22, 2026.

Transparency log

Release files / isotropic-0.8.0-py3-none-any.whl

Download URL isotropic-0.8.0-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
198cd422c4fbfc24fdd467c9b596795aa7b88494710e7f67f3f1d1f65ee09b8f
BLAKE2b-256 checksum
How to use checksums
8b03ee2e81a4f7d37d17bea05b897f5ae6c1e62a0b497d524d8e2c91545ced29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 22, 2026.

Transparency log

Security for isotropic 0.8.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for isotropic-0.8.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 22, 2026.

Transparency log

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page