Changelog¶
All notable changes to this project will be documented in this file.
The format is based on a mixture of Keep a Changelog and Common Changelog. This project adheres to Semantic Versioning, with the exception that minor releases may include breaking changes.
Unreleased¶
Added¶
extended EquivalenceChecker output to include entropy and the resulting diff data structure (#364) (@yiranwang-phys)
OpenQASM2 and 3 files can now be read directly by the Simulator and EquivalenceChecker (#464) (@Marerido)
improved Qiskit gate compatibility with matrix fallback (#464) (@aaronleesander)
added MPO zip-up as default long-range gate application method (#449) (@aaronleesander)
parallelized MPO equivalence checker (#448) (@aaronleesander)
added tebd/hybrid/tdvp options for circuit simulation (#441) (@aaronleesander)
added Krylov tolerance as high-level parameter (#439) (@aaronleesander)
added accuracy presets to simulation parameters (#438) (@aaronleesander)
added
Simulatorclass that owns execution-side configuration and dispatches to all simulation backends, and aResultdataclass returned bySimulator.run(#430) (@aaronleesander)added linalg submodule to open a new path for optimizations and stop BLAS thread oversubscription for stability (#429) (@aaronleesander)
added high-level State and Hamiltonian classes at user-facing level (#426) (@aaronleesander)
added Fermionic and Jordan-Wigner MPO encodings of 1D Fermi-Hubbard model (#220) (@thilomueller)
added deterministic ensemble evolution with optional autocorrelator and two-time correlator outputs, including periodic-wrap two-site observable support on
(L-1, 0)(#409) (@Gauthameshwar)
Changed¶
simplified user-facing top-level imports (#467) (@aaronleesander)
updated documentation structure and content (#465) (@aaronleesander)
changed analog simulation default mode to 2TDVP (#458) (@aaronleesander)
overhauled TDVP backend (#457) (@aaronleesander)
changed default to TEBD in digital circuit simulation (#445) (@aaronleesander)
refactored public API to use Simulator, Result, and EquivalenceChecker classes (#430) (@aaronleesander)
sped up and stabilized test suite (#428) (@aaronleesander)
changed
simulator.runto acceptState | list[State]andHamiltonianfor analog simulations instead ofMPS/MPO(#422) (@aaronleesander)changed solver to representation and updated noise-free simulation paths (#422) (@aaronleesander)
Removed¶
removed the free
mqt.yaqs.simulator.runfunction; call sites must migrate toSimulator(...).run(...)(#430) (@aaronleesander)removed
show_progressand (unused)num_threadskeyword arguments fromAnalogSimParams,StrongSimParams, andWeakSimParams; passshow_progresstoSimulatorinstead (#430) (@aaronleesander)
Fixed¶
fixed NoiseModel factor order when two-site indices are normalized (#396) (@aleramos119)
refactored observable handling in simulator to preserve user order (#447) (@aaronleesander)
added tests to ensure qubit ordering matches Qiskit (#446) (@aaronleesander)
minor cleanup (#420) (@aaronleesander)
0.5.0 - 2026-05-12¶
Added¶
added
MPS(..., state="haar-random")initializer using Haar-random isometries with optional bond-dimension cap viapad(#400) (@Gauthameshwar)added process tomography for non-Markovian noise (#344) (@aaronleesander)
added ability to measure in X or Y basis (#339) (@aaronleesander)
added Arnoldi iteration as alternative to Lanczos method (#338) (@aaronleesander)
added Monte Carlo Wavefunction solver (#333) (@aaronleesander)
added Lindblad solver for small systems (#330) (@aaronleesander)
Noise model strengths can now be sampled from a normal distribution (#329) (@aaronleesander)
Changed¶
changed Lindblad and MCWF solvers to use sparse implementation (#338) (@aaronleesander)
Fixed¶
fixed numba attempting to parallelize in already parallelized processes (#337) (@aaronleesander)
fixed potential memory leak in parallelization (#336) (@aaronleesander)
0.4.0 - 2026-02-05¶
Added¶
added ability to schedule jumps (#319) (@aaronleesander)
added multi-threading setting for noise-free ones (#316) (@aaronleesander)
Minor improvements to TDVP performance (#311) (@aaronleesander)
⚡️ Improve Lanczos iteration and use numba for significant speedup (#310) (@aaronleesander)
Changed¶
♻️ Change Pauli summation to use finite state machine construction (#308) (@aaronleesander)
🔧 Replace
mypywithty(#304) (@denialhaag)
Removed¶
👷♂️ Stop testing on x86 macOS systems (#310) (@aaronleesander)
0.3.3 - 2026-01-12¶
Added¶
updated bib and readme with Nature Communications publication (#298) (@aaronleesander)
updates MPO class to allow construction of arbitrary Pauli Hamiltonians (#216) ([@aaronleesander, @thilomueller])
added faster paths for TDVP dense effective Hamiltonian (#280) (@aaronleesander)
added more stable and faster SVD and QR implementation (#278) (@aaronleesander)
TDVP now utilizes a dense Hamiltonian for small tensor sizes (adjusted by global variable DENSE_THRESHOLD) (#261) (@aaronleesander)
Updated readability of TDVP subfunctions and Lanczos method (#261) (@aaronleesander)
Fixed¶
Fixed bug where two-site dissipative processes were computed in loop (#290) (@aaronleesander)
Fixed a truncation bug in TDVP sometimes leading to over-truncation (#274) (@aaronleesander)
Updated Lanczos method’s vdot order to match mathematical expectations (#261) (@aaronleesander)
0.3.2 - 2025-10-16¶
If you are upgrading: please see UPGRADING.md.
Added¶
✨ Make it possible to return final state without setting dummy observables (#214) (@aaronleesander)
👷 Enable testing on Python 3.14 (#212) (@denialhaag)
Removed¶
🔥 Drop support for Python 3.9 (#180) (@denialhaag)
Fixed¶
🐛 Fix project bar of simulator (#213) (@aaronleesander)
0.3.1 - 2025-08-29¶
📚 Refer to the GitHub Release Notes for previous changelogs.