π What Changed
This represents the first official release of the new MQT Core package. While some aspects are still in flux, the package should be stable enough that regular version updates should be completely sufficient.
The list below summarizes all the changes that happened since the last official release (where this package was still called QFR).
βοΈ MQT Core
- π fix compiler errors in GCC-10 due to abstract return type burgholzer (478)
- π Miscellaneous fixes for qubit and register handling burgholzer (476)
- β¨ Circuit optimisation for replacing Toffoli gates with MCZ gates and Hadamards burgholzer (473)
- π Fix recursive circuit flattening burgholzer (474)
- β¨ equality comparison and hashing for operations and symbolic burgholzer (465)
- π properly handle repeated cancellation in single-qubit gate fusion burgholzer (459)
- Fixing `QuantumComputation::dump` file name dot count check EliasLF (453)
- β¨β»οΈ Refactor `QuantumComputation` API and Expose to Python pehamTom (371)
- π Fix output permutation deduction burgholzer (437)
- β»οΈ switch back from nanobind to pybind burgholzer (432)
- π¨ fix compiler warnings for `getControls` override burgholzer (425)
- Add invert functionality for quantum operations martin-fink (416)
- Add `addControl`, `clearControls`, `removeControl` functions on Operation martin-fink (411)
- π Fix inexact QPE construction burgholzer (417)
- β»οΈ Switch `pybind11` from submodule to `find_package` burgholzer (405)
- π Fix `Barrier` handling in remove final measurements optimisation burgholzer (403)
- π©Ή Remove Barrier check from actsOn method burgholzer (402)
- β»οΈ Refactor `NonUnitaryOperation` class to simplify target handling burgholzer (399)
- π¦ Enable target support from scikit-build-core burgholzer (397)
- π§βπ» Extensive and Reusable CI/CD Setup burgholzer (396)
- β»οΈ Refactor handling of Barrier operations burgholzer (394)
- π₯ Remove Snapshot and ShowProbabilities instructions from MQT Core burgholzer (393)
- π§ Disable `NullDereference` clang-tidy check burgholzer (383)
- π¨β»οΈ Fix some warnings and improve code quality burgholzer (369)
- π Make MSVC work burgholzer (361)
- ππ Initial `mqt.core` Python Package Configuration burgholzer (359)
- π©Ή avoid header confusion burgholzer (355)
- β¨ MQT Core burgholzer (318)
- π MQT Core Rename burgholzer (328)
- π Move ZX Package into Source Tree burgholzer (327)
- π Move DD Package into Source Tree burgholzer (326)
- π¨ LLVM code format and Python binding restructure burgholzer (321)
- π Consolidate `googletest` submodule burgholzer (320)
- π₯ Remove MQT QFR Python package burgholzer (319)
- π Transfer ZX package from submodule to folder burgholzer (317)
- π Transfer DD package from submodule to folder burgholzer (316)
βοΈ MQT Core DD Package
- πβ‘ fix and speed up Kronecker product for DDs burgholzer (475)
- β‘ fix performance regression for `RealNumber` computations burgholzer (463)
- β‘ improved collision logic in `RealNumberUniqueTable` burgholzer (461)
- β‘ improve numerical accuracy of multiplication and division burgholzer (458)
- β‘ Completely eliminate temporary numbers borrowed from the cache burgholzer (457)
- π¨ Miscellaneous code style improvements in DD package burgholzer (455)
- β‘ Small performance improvements to `RealNumberUniqueTable` burgholzer (456)
- β‘ Small unique table lookup improvement burgholzer (451)
- β»οΈ simpler gate matrices burgholzer (449)
- β»οΈ Replace static `zero` and `one` members with constexpr functions burgholzer (448)
- β‘ Skip `symmetry` computation and π₯ remove `transpose` method burgholzer (442)
- β»οΈ Trim `dd/Package.hpp` burgholzer (434)
- π Fix identity handling in DD multiplication burgholzer (426)
- πΈ Small corrections for statistics tracking burgholzer (424)
- πΈ Follow-up for DD statistics burgholzer (419)
- πΈ Better statistics tracking in DD Package burgholzer (418)
- Fix makeDDFromMatrix Issue in Asymmetrical Matrices rahimiparham (415)
- π Fix Compute Table Performance burgholzer (386)
- π Fix DD node leak burgholzer (385)
- β»οΈ Eliminate DD terminal nodes burgholzer (381)
- π₯ Remove ToffoliTable from DD Package burgholzer (380)
- π₯β»οΈ Consolidate `qc::Control` and `dd::Control` burgholzer (379)
- β»οΈ Unified DD memory management and streamlined complex number handling burgholzer (373)
- β»οΈπ Un-template and document complex number handling in DD package burgholzer (372)
- π¨β»οΈ Fix some warnings and improve code quality burgholzer (369)
- π Make MSVC work burgholzer (361)
πΈοΈ MQT Core ZX Package
- Added RZZ, RXX, RZX, and RYY to ZX-diagrams pehamTom (466)
π Features and Enhancements
- πβ‘ fix and speed up Kronecker product for DDs burgholzer (475)
- β¨ Circuit optimisation for replacing Toffoli gates with MCZ gates and Hadamards burgholzer (473)
- Added RZZ, RXX, RZX, and RYY to ZX-diagrams pehamTom (466)
- β¨ equality comparison and hashing for operations and symbolic burgholzer (465)
- β¨ adopt ruff formatter burgholzer (464)
- β‘ improved collision logic in `RealNumberUniqueTable` burgholzer (461)
- β‘ improve numerical accuracy of multiplication and division burgholzer (458)
- β‘ Completely eliminate temporary numbers borrowed from the cache burgholzer (457)
- β‘ Small performance improvements to `RealNumberUniqueTable` burgholzer (456)
- β‘ Skip `symmetry` computation and π₯ remove `transpose` method burgholzer (442)
- β¨β»οΈ Refactor `QuantumComputation` API and Expose to Python pehamTom (371)
- Add invert functionality for quantum operations martin-fink (416)
- Add `addControl`, `clearControls`, `removeControl` functions on Operation martin-fink (411)
- πΈ Follow-up for DD statistics burgholzer (419)
- πΈ Better statistics tracking in DD Package burgholzer (418)
- πΈ Make reusable workflows more generic burgholzer (407)
- π§ Add policy max to CMake minimum required version burgholzer (401)
- π§βπ» Extensive and Reusable CI/CD Setup burgholzer (396)
- β‘ use 2x faster black mirror burgholzer (395)
- Add w state implementation tyi1025 (391)
- β»οΈ Eliminate DD terminal nodes burgholzer (381)
- β»οΈ Unified DD memory management and streamlined complex number handling burgholzer (373)
- βπͺ add new pre-commit hook for running ruff on Jupyter notebooks burgholzer (365)
- Cmake structure pehamTom (364)
- πΈ Automatic discovery of nanobind when running outside `pip install` burgholzer (363)
- ππ Initial `mqt.core` Python Package Configuration burgholzer (359)
- π§ Disable IPO per default burgholzer (353)
- β¨ add Issue and PR templates burgholzer (351)
- β¨ Add release drafter setup burgholzer (350)
- π¦ Support Versioning in Git Archives burgholzer (329)
- π·πΌπ¨β¬οΈ Update `clang-tidy` and use `cpp-linter` action burgholzer (325)
- π¨βπ» introduce `mold` as default linker under Linux burgholzer (324)
- π¨βπ» introduce compiler cache burgholzer (323)
- π·β‘ speed up CI with independent coverage job burgholzer (322)
π Bug Fixes
- π fix compiler errors in GCC-10 due to abstract return type burgholzer (478)
- π Miscellaneous fixes for qubit and register handling burgholzer (476)
- πβ‘ fix and speed up Kronecker product for DDs burgholzer (475)
- π Fix recursive circuit flattening burgholzer (474)
- π¨ Adapt to latest Qiskit version burgholzer (471)
- β‘ fix performance regression for `RealNumber` computations burgholzer (463)
- π properly handle repeated cancellation in single-qubit gate fusion burgholzer (459)
- Fixing `QuantumComputation::dump` file name dot count check EliasLF (453)
- π©Ή temporarily disable editable installs in nox jobs burgholzer (454)
- π Fix output permutation deduction burgholzer (437)
- π©Ή Reusable workflow corrections burgholzer (433)
- π Fix identity handling in DD multiplication burgholzer (426)
- πΈ Small corrections for statistics tracking burgholzer (424)
- π¨ fix compiler warnings for `getControls` override burgholzer (425)
- π Fix broken `manylinux` wheels burgholzer (422)
- π Fix inexact QPE construction burgholzer (417)
- Fix makeDDFromMatrix Issue in Asymmetrical Matrices rahimiparham (415)
- π Fix `Barrier` handling in remove final measurements optimisation burgholzer (403)
- π©Ή Remove Barrier check from actsOn method burgholzer (402)
- π Fix Compute Table Performance burgholzer (386)
- π Fix DD node leak burgholzer (385)
- π§ Disable `NullDereference` clang-tidy check burgholzer (383)
- π Make MSVC work burgholzer (361)
- π©Ή avoid header confusion burgholzer (355)
- Actually Populate the Params list from Qobjs hillmich (333)
π Documentation
- π added project acknowledgements burgholzer (469)
- β¨β»οΈ Refactor `QuantumComputation` API and Expose to Python pehamTom (371)
- β»οΈπ Un-template and document complex number handling in DD package burgholzer (372)
- π Initial RtD setup burgholzer (356)
- π add security policy burgholzer (354)
- β¨ add community health files burgholzer (352)
- π Fix links from `qfr` to `mqt-core` burgholzer (349)
π€ CI
- π§ Ruff config finetuning burgholzer (467)
- π©Ή temporarily disable editable installs in nox jobs burgholzer (454)
- π©Ή Reusable workflow corrections burgholzer (433)
- π Fix broken `manylinux` wheels burgholzer (422)
- πΈ Make reusable workflows more generic burgholzer (407)
- π§βπ» Extensive and Reusable CI/CD Setup burgholzer (396)
- ππ Initial `mqt.core` Python Package Configuration burgholzer (359)
- π§ Disable IPO per default burgholzer (353)
- β¨ add Issue and PR templates burgholzer (351)
- β¨ Add release drafter setup burgholzer (350)
- π·πΌπ¨β¬οΈ Update `clang-tidy` and use `cpp-linter` action burgholzer (325)
- π¨βπ» introduce `mold` as default linker under Linux burgholzer (324)
- π¨βπ» introduce compiler cache burgholzer (323)
- π·β‘ speed up CI with independent coverage job burgholzer (322)
π¦ Packaging
- β¬οΈ update `scikit-build-core` burgholzer (477)
- β»οΈ switch back from nanobind to pybind burgholzer (432)
- π Fix broken `manylinux` wheels burgholzer (422)
- π¦ Enable target support from scikit-build-core burgholzer (397)
π§Ή Code Quality
- π¨ small ruff updates burgholzer (472)
- π§ Ruff config finetuning burgholzer (467)
- β¨ adopt ruff formatter burgholzer (464)
- π¨ Miscellaneous code style improvements in DD package burgholzer (455)
- β‘ Small unique table lookup improvement burgholzer (451)
- β»οΈ simpler gate matrices burgholzer (449)
- β»οΈ Replace static `zero` and `one` members with constexpr functions burgholzer (448)
- β¨β»οΈ Refactor `QuantumComputation` API and Expose to Python pehamTom (371)
- β»οΈ Trim `dd/Package.hpp` burgholzer (434)
- β»οΈ Refactor handling of Barrier operations burgholzer (394)
- π₯ Remove Snapshot and ShowProbabilities instructions from MQT Core burgholzer (393)
- π₯β»οΈ Consolidate `qc::Control` and `dd::Control` burgholzer (379)
- β»οΈ Unified DD memory management and streamlined complex number handling burgholzer (373)
- β»οΈπ Un-template and document complex number handling in DD package burgholzer (372)
- π¨β»οΈ Fix some warnings and improve code quality burgholzer (369)
- π Make MSVC work burgholzer (361)
- π¨ CodeQL Fixes burgholzer (330)
β¬οΈ Dependencies
<details>
<summary>38 changes</summary>
- β¬οΈ update `scikit-build-core` burgholzer (477)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (470)
- π¨ Adapt to latest Qiskit version burgholzer (471)
- Bump the submodules group with 3 updates dependabot (468)
- β¨ adopt ruff formatter burgholzer (464)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (450)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (443)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (438)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (436)
- Bump the submodules group with 3 updates dependabot (435)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (431)
- Bump the github-actions group with 1 update dependabot (430)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (428)
- Bump the github-actions group with 1 update dependabot (421)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (420)
- Bump the github-actions group with 1 update dependabot (413)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (412)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (409)
- Bump the submodules group with 3 updates dependabot (408)
- πΈ Make reusable workflows more generic burgholzer (407)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (406)
- β»οΈ Switch `pybind11` from submodule to `find_package` burgholzer (405)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (398)
- π¦ Enable target support from scikit-build-core burgholzer (397)
- Bump pypa/cibuildwheel from 2.14 to 2.15 dependabot (392)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (390)
- Bump extern/pybind11 from `2fb3d7c` to `f3e0602` dependabot (388)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (387)
- Bump extern/googletest from `be03d00` to `6f6ab42` dependabot (389)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (382)
- Bump pypa/cibuildwheel from 2.13 to 2.14 dependabot (378)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (377)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (370)
- Bump extern/googletest from `06f44bc` to `be03d00` dependabot (368)
- Bump extern/json from `6af826d` to `5d27543` dependabot (366)
- Bump extern/pybind11 from `d0232b1` to `2fb3d7c` dependabot (367)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (362)
- β¬οΈπͺ update pre-commit hooks pre-commit-ci (357)
</details>
**Full Changelog**: https://github.com/cda-tum/mqt-core/compare/v1.11.1...v2.0.0