Mitiq

Latest version: v0.43.0

Safety actively analyzes 714815 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 10

0.30.0

Released October 13, 2023

Summary

This release contains several documentation improvements and some new additions.
The classical shadows documentation has been improved (including a tutorial!) by Min-Li. The Pauli Twirling method is added to the user guide (thanks Aaron-Robertson and purva-thakre). There is a new tutorial applying both zero-noise extrapolation (ZNE) and Clifford Data Regression (CDR) to quantum simulation, for the 1D Ising chain, in Cirq, by farzadkianvash, a new contributor! The documentation has been further improved and unified by Misty-W and natestemen.

In terms of additions, a new type of benchmark quantum circuits, "rotated" randomized benchmarking (RB) quantum circuits have been added by Misty-W, for more general benchmarks.

py
import numpy as np
from mitiq.benchmarks import generate_rotated_rb_circuits

circuits = generate_rotated_rb_circuits(
n_qubits=2,
num_cliffords=10,
theta=2 * np.pi * np.random.Generator.random(),
trials=100,
)


All changes

- Add a tutorial for simulating Ising 1-D chain with Cirq with ZNE and CDR [farzadkianvash]
- Add section on quantum noise to user guide (2036) [Misty-W]
- New QEM benchmarking method: "rotated" RB circuits (2028) [Misty-W]
- Add Pauli Twirling (PT) User Guide (1848) [Aaron-Robertson,purva-thakre]
- Documentation cleanup (2008) [natestemen]
- Remove draft workflow from Github Actions (2019) [purva-thakre]
- Improve documentation of Classical Shadows (2026) [Min-Li]
- Classical Shadows: Add tutorial (1945) [Min-Li]

Dependency updates

- Update amazon-braket-sdk requirement from ~=1.54.1 to ~=1.55.1 (2016) [dependabot]
- Bump matplotlib from 3.7.2 to 3.7.3 (2011) [dependabot]

0.29.0

Summary

Update Pauli Twirling

Thanks to purva-thakre for updating Mitiq's PT functions, clarifying that PT is a noise tailoring technique and for consolidating utilities to be shared between PT and other techniques.
This release replaces the `execute_with_pt` function with `pauli_twirl_circuit`.

py
from mitiq.pt.pt import pauli_twirl_circuit

pauli_twirl_circuit(circuit)


Classical Shadows

Top-level functions and tests for classical shadows estimation are now available in Mitiq.
Congrats min-li on completing the main functionality for this technique!
Note that documentation for classical shadows estimation is not yet available but coming soon.

py
from mitiq.shadows.shadows import shadow_quantum_processing, classical_post_processing

shadow_outcomes = shadow_quantum_processing(circuit, executor, num_total_measurements_shadow)
results = classical_post_processing(shadow_outcomes)


Stim + Mitiq tutorial

Added a tutorial demonstrating a method of combining quantum error mitigation (QEM) and quantum error correction (QEC), reducing the effective logical error rate of the computation.
This tutorial also introduces the use of Mitiq’s ZNE functions with a new backend, the Stim stabilizer simulator.

Calibration, Testing, and Documentation

Streamlined formatting of calibration logs, removed redundant test cases, and fixed documentation issues.
Thanks natestemen for these improvements and for reviewing many of the PRs in this release!

Also, congrats to our new contributor bdg221 for closing their first Mitiq PR! :tada:

All changes

- Move functions to utils (1989) [purva-thakre]
- remove unused import (1999) [natestemen]
- Make robust `Calibrator` logging (1985) [natestemen]
- Speed up a few tests (1996) [natestemen]
- 1988 contributing doc note for zsh shell (1997) [bdg221]
- ZNE Stim tutorial (1967) [Misty-W]
- Fix typos in theory section of ddd guide (1993) [Misty-W]
- Broken link in docs (1991) [purva-thakre]
- Change the main function in Pauli Twirling (1977) [purva-thakre]
- remove binder badge and other links binder (1970) [andreamari]
- [Classical Shadows 4] Main function (1921) [min-li]
- Ensure BQSKit example runs (1962) [natestemen]

Dependency updates

- Bump stimcirq from 1.11.0 to 1.12.0 (2000) [dependabot]
- Bump stim from 1.11.0 to 1.12.0 (2001) [dependabot]
- Bump actions/checkout from 3 to 4 (1994) [dependabot]
- Update pennylane requirement from ~=0.31.1 to ~=0.32.0 (1978) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.6.3 to ~=0.7.0 (1982) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.53.4 to ~=1.54.1 (1972) [dependabot]
- Update qiskit requirement from ~=0.44.0 to ~=0.44.1 (1969) [dependabot]
- Bump scipy + pyscf versions (1968) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.53.3 to ~=1.53.4 (1965) [dependabot]

0.28.0

Summary

Quantum Subspace Expansion

With the main functionaly implemented, quantum subspace expansion is now available in Mitiq!
The technique requires a sequence of check operators, a Hamiltonian, and an observable in addition to the typical circuit and executor that Mitiq needs to operate.

py
from mitiq.qse import execute_with_qse

execute_with_qse(circuit, executor, check_operators, code_hamiltonian, observable)


This feature is still in flux, and would greatly benefit from further testing.
Do give a try, and [let us know if you have feedback](https://github.com/unitaryfund/mitiq/issues/new/)!
More details can be found in our [API-doc](https://mitiq.readthedocs.io/en/latest/apidoc.html#module-mitiq.qse.qse).
Congratulations to bubakazouba for the great work here.

PEC Calibration

Last release we added support to run PEC experiments within the `calibration` module.
This release we made two improvements:

1. Calibration experiments now represent all two-qubit gates by default (previously this was just $\mathrm{C}X$ and $\mathrm{C}Z$ gates.)
2. When running `calibrator.run(log=True)` you will now find results from your PEC pretty-printed alongside any ZNE experiments.

Installation

Our core dependencies (NumPy, Cirq, SciPy) are now less tightly specified which means easier installs for users!

Robust Shadow Estimation

Min-Li has been hard at work bringing shadows to Mitiq.
The `shadows` module is not quite ready for use, but you can get a sneak peak of what's to come in the Classical Shadows section of our [API-doc](https://mitiq.readthedocs.io/en/latest/apidoc.html#classical-shadows).

All changes

- Fix docstring in qse.py (1944) [Misty-W]
- Add QSE to API-doc (1938) [natestemen]
- fix asv benchmarks (1937) [natestemen]
- [Classical Shadows 1] classical postprocessing (1908) [min-li]
- Add Calibration logging for PEC (1873) [Misty-W]
- [Classical Shadows 1] utils for shadows and unit test (1907) [min-li]
- Clean up types (1825) [natestemen]
- Relax test condition for `test_execute_with_pauli_twirling` (1931) [Misty-W]
- loosen remaining core dependency versions (1917) [natestemen]
- [Classical Shadows] quantum processing and test (1906) [min-li]
- Make PEC calibration support all multi-qubit-gate (1881) [YuNariai]
- Implements high-level functions for QSE (1902) [bubakazouba]
- Temporary fix for documentation problem (1927) [andreamari]
- Adding layerwise folding as tutorial to mitiq. (1894) [vprusso]
- Fix docstring of initialized_depolarized_noise (1919) [andreamari]
- Update broken URLs (1912) [min-li]
- indicate under active development on master (1900) [natestemen]

Dependency updates

- Update pennylane requirement from ~=0.30.0 to ~=0.31.0 (1888) [dependabot]
- Update cirq requirement from ~=1.1.0 to ~=1.2.0 (1922) [dependabot]
- Update qiskit requirement from ~=0.43.3 to ~=0.44.0 (1935) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.51.0 to ~=1.52.0 (1933) [dependabot]
- Update qiskit-ibm-provider requirement from ~=0.6.1 to ~=0.6.2 (1932) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.50.0 to ~=1.51.0 (1928) [dependabot]
- Update qiskit requirement from ~=0.43.2 to ~=0.43.3 (1925) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.49.1 to ~=1.50.0 (1926) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.49.0 to ~=1.49.1 (1916) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.46.0 to ~=1.49.0 (1915) [dependabot]

0.27.0

Summary

Highlights from this release include adding new benchmark quantum circuits: Mirror Quantum Volume Circuits (purva-thakre) and adding PEC as technique supported by calibration (Misty-W). After approval of the related RFC on quantum subspace expansion technique, the first utils have been added (bubakazouba). Other improvements include a new tutorial on quantum many body scars (DHuybrechts); issues solved during unitaryHACK such as improvement to the cost estimation for Calibrator (YuNariai), Qiskit Upgrade and Deprecation Warnings (andre-a-alves), and a new function to register user defined Mitiq converters (Aaron-Robertson).

All changes

- Draft workflow to run change specific tests (1809) Aaron-Robertson
- Improve twirling test (1831) andreamari
- Add banner to docs (1834) natestemen
- Supports observable multiplication with observable and PauliString bubakazouba
- Add tutorial on Quantum Many Body Scars with ZNE DHuybrechts
- Use latest copyright notice (1892) natestemen
- Fix frozen modules (1879) purva-thakre
- Update links for accepted RFCs (1884) purva-thakre
- Ensure execute_with_rem works with Executor object (1877) natestemen Misty-W
- Remove unitaryHACK banner (1875)natestemen
- Braket example on mitigating the energy landscape of a variational CI deji725
- Improve cost estimation for Calibrator (1863) YuNariai
- Mirror Quantum Volume Circuits (1838) purva-thakre
- Update amazon-braket-sdk requirement from ~=1.41.0 to ~=1.42.1 (1870) dependabot committed last month
- Clean up global, isolate tests, and fix mock module (1864) Aaron-Robertson
- Adds subspace expansion utils. (1859) bubakazouba
- Qiskit Upgrade and Deprecation Warnings (1847) andre-a-alves
- Adding PEC as technique supported by calibration (1845) Misty-W andreamari
- Update wording now that event has started (1860) natestemen
- Add function to register user defined Mitiq converters (1850) Aaron-Robertson
- Removed Windows note (1857) andre-a-alves
- Update GitHub link (1854) andre-a-alves
- Include current year in copyright notice (1852) andre-a-alves
- Make sure PEC preserves measurement gates (1844) andreamari
- Add mypy to style guidelines (1841) purva-thakre
- Update calibration tutorial (1840) Misty-W
- **Dependabot updates:**
- Update pyquil requirement from ~=3.5.0 to ~=3.5.1 dependabot
- Update amazon-braket-sdk requirement from ~=1.38.0 to ~=1.38.1 (1829) dependabot
- Update amazon-braket-sdk requirement from ~=1.45.0 to ~=1.46.0 (1893) dependabot
- Update amazon-braket-sdk requirement from ~=1.44.0 to ~=1.45.0 (1889) dependabot
- Update qiskit requirement from ~=0.43.1 to ~=0.43.2 (1890) dependabot
- Update amazon-braket-sdk requirement from ~=1.43.0 to ~=1.44.0 (1887) dependabot
- Update pennylane-qiskit requirement from ~=0.30.1 to ~=0.31.0 (1886) dependabot
- Update amazon-braket-sdk requirement from ~=1.42.1 to ~=1.43.0 (1883) dependabot
- Update qiskit-ibm-provider requirement from ~=0.6.0 to ~=0.6.1 (1872) dependabot
- Update pyquil requirement from ~=3.5.2 to ~=3.5.4 (1867) dependabot
- Update qiskit requirement from ~=0.43.0 to ~=0.43.1 (1868) dependabot
- Update amazon-braket-sdk requirement from ~=1.40.0 to ~=1.41.0 (1865) dependabot
- Update pennylane-qiskit requirement from ~=0.29.0 to ~=0.30.1 (1824) dependabot
- Update amazon-braket-sdk requirement from ~=1.38.1 to ~=1.40.0 (1849) dependabot
- Update pyquil requirement from ~=3.5.1 to ~=3.5.2 (1856) dependabot

0.26.0

Summary

Highlights from this release include functions for applying Pauli Twirling of CNOT and CZ gates, support for noise scaling by circuit layer in ZNE, functions to generate Quantum Phase Estimation benchmarking circuits, and a new example composing two Mitiq techniques: REM and ZNE.
Special thanks to UF Ambassadors **Purva Thakre** and **Aaron Robertson** for their contributions to this release!

The use of the Pauli Twirling module is demonstrated in the following code cell<sup>\*</sup>.

py
from mitiq import pt
twirled_value = pt.execute_with_pauli_twirling(circuit, expval_executor)


<sup>\*</sup>Thorough testing and documentation of Pauli Twirling to follow in future releases.
If any bugs or inconsistencies are encountered, please [open an issue](https://github.com/unitaryfund/mitiq/issues/new).

All changes

- CNOT twirling (1802) [natestemen]
- Compose REM + ZNE in Mitiq (1745) [Misty-W]
- bump nbsphinx (1821) [natestemen]
- Update pennylane requirement from ~=0.29.1 to ~=0.30.0 (1819) [dependabot[bot]]
- Update amazon-braket-sdk requirement from ~=1.37.1 to ~=1.38.0 (1817) [dependabot[bot]]
- Update amazon-braket-sdk requirement from ~=1.37.0 to ~=1.37.1 (1804) [dependabot[bot]]
- Support noise scaling by layer (1767) [vprusso]
- Remove version specificity from codecov/codecov-action (1801) [dependabot[bot]]
- Update pyquil requirement from ~=3.4.1 to ~=3.5.0 (1793) [dependabot[bot]]
- use 1.7.0 link for grove (1803) [natestemen]
- Remove allcontributors (1791) [natestemen]
- Update qiskit tutorial with ddd functions (1762) [Misty-W]
- Add calibration workflow to README (1778) [natestemen]
- Make W-state circuits available to use in `Calibration` (1792) [Misty-W]
- W State and QPE Benchmarking circuits in API Doc (1785) [purva-thakre]
- Update pyquil requirement from ~=3.4.0 to ~=3.4.1 (1786) [dependabot[bot]]
- Uprade python support to 3.11 (1663) [natestemen]
- Update pyquil requirement from ~=3.3.5 to ~=3.4.0 (1784) [dependabot[bot]]
- Bump codecov/codecov-action from 3.1.1 to 3.1.2 (1781) [dependabot[bot]]
- Quantum Phase Estimation Benchmarking Circuit (1775) [purva-thakre]

0.25.0

Summary

Highlights from this release include a bug fixed in DDD, extended documentation for identity insertion as a noise scaling technique, new results from testing DDD on IBMQ hardware, a new function `mitiq.benchmarks.w_state_circuits.generate_w_circuit` to generate W-state circuits, and a finalized calibration API.

**Breaking Changes**: The `force_run_all` option for the [`evaluate`](https://mitiq.readthedocs.io/en/stable/apidoc.html#mitiq.executor.executor.Executor.evaluate) method defined on `Executor` objects now defaults to True.

All changes

- Calibration API simplifications (1763) [natestemen]
- W state Benchmarking Circuit (1723) [purva-thakre]
- Consider id as slack in ddd circuit mask (1744) [Aaron-Robertson]
- Remaining Stuff related to Identity Insertion Scaling in Docs (1759) [purva-thakre]
- Add calibration tutorial (1756) [nathanshammah]
- Set default force_run_all as True in PEC (1755) [andreamari]
- Update amazon-braket-sdk requirement from ~=1.36.3 to ~=1.36.4 (1765) [dependabot]
- Make the Calibrator multi-platform (1748) [andreamari]
- Update amazon-braket-sdk requirement from ~=1.36.2 to ~=1.36.3 (1761) [dependabot]
- Update DDD Qiskit tutorial with hardware experiments (1751) [Misty-W]
- Bump pyscf from 2.1.1 to 2.2.0 (1753) [dependabot]
- Update pyquil requirement from ~=3.3.3 to ~=3.3.4 (1750) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.36.1 to ~=1.36.2 (1749) [dependabot]
- Update amazon-braket-sdk requirement from ~=1.35.5 to ~=1.36.1 (1742) [dependabot]
- Fix DDD typo in README (1743) [natestemen]
- Update pennylane requirement from ~=0.29.0 to ~=0.29.1 (1741) [dependabot]
- Set `master` in dev mode (1736) [Misty-W]

Page 4 of 10

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.