A modular quantum error mitigation library (ZNE, PT, DD, REM)
Project description
qemlib
A modular Quantum Error Mitigation (QEM) library built on Qiskit.
qemlibprovides research-oriented implementations of major quantum error mitigation techniques, designed for experimentation, benchmarking, and research workflows in noisy quantum computation.
🚀 Features
- Dynamical Decoupling (DD)
- Zero Noise Extrapolation (ZNE)
- Pauli Twirling (PT)
- Readout Error Mitigation (REM)
- Modular, researcher-focused API
- Full compatibility with Qiskit circuits
📦 Installation
Install directly from GitHub:
pip install git+https://github.com/hmzbn/qemlib.git
⚡ Quick Start
See the examples/ directory for complete usage demonstrations of all implemented mitigation techniques.
📁 Examples
dd_exp.ipynb— Dynamical decoupling workflowszne_exp.ipynb,zne_exp2.ipynb— Zero noise extrapolation experimentspt_exp.ipynb,pt_exp2.ipynb— Pauli twirling testsrem_exp.ipynb— Readout error mitigation demo
🧠 Implemented Techniques
Dynamical Decoupling (DD)
- Location:
qemlib/dd/ - Modules:
dd.py— DD execution wrapperinsertion.py— Circuit-level DD insertionseq.py— Sequence definitions (xx,xp_xm,xy4)
Zero Noise Extrapolation (ZNE)
- Location:
qemlib/zne/ - Modules:
zne.py— Core logicfolding.py— Circuit folding methodsfunctional.py— Workflow helpersmodels.py— Extrapolation functionsexecutor.py— Execution abstractionplotting.py— Visualization utilities
Pauli Twirling (PT)
- Location:
qemlib/pt/ - Modules:
pt.py— Twirling logicpauli.py— Operator utilitiestwirl.py— Transformation routines
Readout Error Mitigation (REM)
- Location:
qemlib/rem/ - Modules:
rem.py— Calibration and mitigation tools
🏗️ Architecture & Design Principles
- Modular architecture with clear separation of concerns:
- Circuit transformation
- Noise scaling
- Execution
- Post‑processing
- Minimal abstraction overhead
- Research‑oriented flexibility and transparency
- Built on top of Qiskit for compatibility and extensibility
🤝 Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
📜 License
This project is released under the MIT License.
📖 Citation
If you use qemlib in academic work, please cite:
@software{qemlib,
author = {Hamza Benkadour},
title = {qemlib: A Modular Quantum Error Mitigation Library},
year = {2026},
url = {https://github.com/hmzbn/qemlib}
}
Happy mitigating! 😊
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 qemlib-0.1.0.tar.gz.
File metadata
- Download URL: qemlib-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79869d674c277fd50d38a750bf7f7947f2278918d1d8ba3b50137f18ca395f30
|
|
| MD5 |
77aa6a20b40771994158208db4302999
|
|
| BLAKE2b-256 |
754d3e00234676be2a60da94a360c17b6ecc4af5192cda15a6afa2ecac269014
|
File details
Details for the file qemlib-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qemlib-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feb7cc8631dc505599627b782b9b96fe87f9f617c7841f8927825fc580f3ed3c
|
|
| MD5 |
56e89f65d88a4db6ff3d425b66b5e74f
|
|
| BLAKE2b-256 |
e64253984b1eb8ac7d813f51ce9726e4a6fceb96944cd9c6429f641eb2b20a9d
|