Skip to main content

Toolbox for Quantum Computer testing.

Project description

StabiliserSuite

Toolbox for benchmarking and stress‑testing NISQ quantum processors
Clifford circuits • topology‑aware routing • gate‑transformation search

CI PyPI conda-forge MIT


✨ Key Features

  • Random Clifford generatorO(n²) tableau routine for uniformly random stabiliser circuits
  • Topology‑aware routing – 4‑CNOT “bridge’’ pattern for non‑adjacent CNOTs on heavy‑hex and ion‑trap layouts
  • Gate‑transformation search – meet‑in‑the‑middle engine (canonical‑phase hashing, memoisation) finds depth‑bounded Clifford / non‑Clifford substitutions
  • Unified workflow – circuit synthesis → classical stabiliser simulation → Qiskit hardware run → fidelity report
  • Open‑source & extensible – MIT licence, clean Python API, minimal external deps

🚀 Quick Start

Conda (recommended)

mamba create -n stabilisersuite -c conda-forge stabiliser_suite
mamba activate stabilisersuite

Pure‑pip (light‑weight alternative)

python -m venv .venv
source .venv/bin/activate
pip install stabiliser_suite

Example usage

import stabiliser_suite as ss
from qiskit.circuit.library import CXGate

# 1. random 6‑qubit Clifford circuit
circ = ss.clifford.sample_clifford_group(3)
print(circ.draw())

# 2. non‑Clifford substitute for CX at depth ≤3
subs = ss.gate_utils.find_non_clifford_transformations(CXGate(), max_depth=3)
print("First match:", subs[0][0])

🗂 Project Layout

stabiliser_suite/
├── benchmark     # simple benchmarking scripts
├── clifford      # Clifford-circuit generation
├── circuit       # 4-CNOT construction
├── gate_utils    # gate transformation search
└── tests/        # pytest suite

📖 Documentation

Full API reference and tutorials will be later put in docs/.
Rendered docs will be hosted at https://achaad.github.io/StabiliserSuite/.


🤝 Contributing

  1. Fork → feature branch → pull request against main.
  2. Run pytest and mypy locally (mamba env update -f environment.yml -n stabilisersuite --prune).
  3. Code is auto‑formatted with Black.

The project uses semantic versioning 2.0, i.e. v${MAJOR}.${MINOR}.${PATCH} (e.g. v0.1.123)

The project is configured with automatic releases on any commits to the master branch. All the merge commits should be prepended with a tag from the list below (e.g. "feat: Add ESR support"):

Tag Description
feat New feature
fix Bug fix
docs Documentation only changes
style Only code style changes
refactor Code refactoring
perf Performance improvements
test Adding new or correcting existing tests
build Changes which modify the application build or dependencies
ci Changes to the CI/CD configuration
revert Previous commit reverts

📄 License

StabiliserSuite is released under the MIT License (see LICENSE).


📑 Citation

@misc{stabilisersuite2025,
  author       = {Anton Perepelenko},
  title        = {StabiliserSuite: Toolbox for Quantum Computer Testing},
  year         = {2025},
  howpublished = {\url{https://github.com/Achaad/StabiliserSuite}},
  note         = {MIT License}
}

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

stabilisersuite-1.1.10.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

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

stabilisersuite-1.1.10-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file stabilisersuite-1.1.10.tar.gz.

File metadata

  • Download URL: stabilisersuite-1.1.10.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for stabilisersuite-1.1.10.tar.gz
Algorithm Hash digest
SHA256 201ecb70fdd2039af1fe71c06a1d1573d41387eeeddbb0a9ee1860112dca6f5d
MD5 cf8b60c2e759ea6083ecc334583ba28f
BLAKE2b-256 142f786bdf1df713a5c255b88ae2d0fc4c253ba756f88eb2d1d829f41bd7245a

See more details on using hashes here.

Provenance

The following attestation bundles were made for stabilisersuite-1.1.10.tar.gz:

Publisher: release.yml on Achaad/StabiliserSuite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stabilisersuite-1.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for stabilisersuite-1.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 205cd0871b94830136ce248df8387b6fdbf651fa55552c377c31ce9eb1de7974
MD5 cc7de29d414f2fc7610e61f512e022cd
BLAKE2b-256 eed74b22af3b3fe089c294876d17d656b5745c142ee82bf65dad991c540ab6cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for stabilisersuite-1.1.10-py3-none-any.whl:

Publisher: release.yml on Achaad/StabiliserSuite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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