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
✨ Key Features
- Random Clifford generator –
O(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
- Fork → feature branch → pull request against
main. - Run
pytestandmypylocally (mamba env update -f environment.yml -n stabilisersuite --prune). - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stabilisersuite-1.1.11.tar.gz.
File metadata
- Download URL: stabilisersuite-1.1.11.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
118a6d722747ee90b182b4c9db2d44c8a403edb2f8b697ee1af21730ffc08b61
|
|
| MD5 |
2ab83bb8206fc645d84c33307db33607
|
|
| BLAKE2b-256 |
aa0ce0d7e4a858a79954f07555c9c724d942ba17657a0dc186c07e4f739110b6
|
Provenance
The following attestation bundles were made for stabilisersuite-1.1.11.tar.gz:
Publisher:
release.yml on Achaad/StabiliserSuite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stabilisersuite-1.1.11.tar.gz -
Subject digest:
118a6d722747ee90b182b4c9db2d44c8a403edb2f8b697ee1af21730ffc08b61 - Sigstore transparency entry: 230164064
- Sigstore integration time:
-
Permalink:
Achaad/StabiliserSuite@dac6911c8c42d139f61069a15593d12c9a7ade67 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Achaad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dac6911c8c42d139f61069a15593d12c9a7ade67 -
Trigger Event:
push
-
Statement type:
File details
Details for the file stabilisersuite-1.1.11-py3-none-any.whl.
File metadata
- Download URL: stabilisersuite-1.1.11-py3-none-any.whl
- Upload date:
- Size: 16.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51c60a551f41f7b71378a8cdc06ffa8863784d19f9341c86bb3d422201f06168
|
|
| MD5 |
079260d3408344505dabf45b9e1eb0bb
|
|
| BLAKE2b-256 |
0adc08de066f06c5d8d8aa2cfdda719bb23002c9ed0a44540662339f11bbac32
|
Provenance
The following attestation bundles were made for stabilisersuite-1.1.11-py3-none-any.whl:
Publisher:
release.yml on Achaad/StabiliserSuite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stabilisersuite-1.1.11-py3-none-any.whl -
Subject digest:
51c60a551f41f7b71378a8cdc06ffa8863784d19f9341c86bb3d422201f06168 - Sigstore transparency entry: 230164065
- Sigstore integration time:
-
Permalink:
Achaad/StabiliserSuite@dac6911c8c42d139f61069a15593d12c9a7ade67 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/Achaad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dac6911c8c42d139f61069a15593d12c9a7ade67 -
Trigger Event:
push
-
Statement type: