Releases: munich-quantum-toolkit/core
MQT Core 2.3.0 Release
👀 What Changed
This release marks mqt-core's support of Qiskit 1.0 and provides a couple of fixes and features for the ZX package.
⚛️ MQT Core
- 🐛 ensure typeinfo and vtable information is present for
CompoundOperation
@burgholzer (#548) - 🎨 Misc. code quality improvements @burgholzer (#547)
- 🚨 fix Qiskit 0.46.0 deprecation warnings @burgholzer (#544)
- ⏪ add
MQT::CorePython
target back @burgholzer (#541)
🕸️ MQT Core ZX Package
- ✨ Add
XX-plus-YY
andXX-minus-YY
gate support to ZX library @burgholzer (#482) - 🐛 Fix
PiExpression
division and multiplication arithmetic @pehamTom (#549)
🚀 Features and Enhancements
- ✨ Support for Qiskit 1.0 @burgholzer (#556)
- ✨ Add
XX-plus-YY
andXX-minus-YY
gate support to ZX library @burgholzer (#482) - 🧹 Noise-Aware Simulator Cleanup @33Gjl1Xe (#491)
🐛 Bug Fixes
- 🐛 Fix
PiExpression
division and multiplication arithmetic @pehamTom (#549) - 🐛 ensure typeinfo and vtable information is present for
CompoundOperation
@burgholzer (#548) - ⏪ add
MQT::CorePython
target back @burgholzer (#541)
📦 Packaging
- ⬆️ update scikit-build-core to 0.8.1 @burgholzer (#554)
🧹 Code Quality
- 🎨 Misc. code quality improvements @burgholzer (#547)
- 🚨 fix Qiskit 0.46.0 deprecation warnings @burgholzer (#544)
⬆️ Dependencies
8 changes
- ✨ Support for Qiskit 1.0 @burgholzer (#556)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#555)
- ⬆️ update scikit-build-core to 0.8.1 @burgholzer (#554)
- Bump the github-actions group with 1 update @dependabot (#552)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#550)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#546)
- Bump the github-actions group with 2 updates @dependabot (#545)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#542)
Full Changelog: v2.2.2...v2.3.0
MQT Core 2.2.2 Release
👀 What Changed
⚛️ MQT Core
- 🚸 Installation Improvements @burgholzer (#539)
⚖️ MQT Core DD Package
- ⚡ Added native construction of two-target controlled-gate DDs @BertiFlorea (#534)
- Zero-ancilla partial equivalence checking @reb-ddm (#532)
🚀 Features and Enhancements
- 🚸 Installation Improvements @burgholzer (#539)
- ⚡ Added native construction of two-target controlled-gate DDs @BertiFlorea (#534)
- Zero-ancilla partial equivalence checking @reb-ddm (#532)
📄 Documentation
- 📝 add configuration for offline doc formats @burgholzer (#535)
🤖 CI
- 🚨 ignore new pandas deprecation warning @burgholzer (#536)
⬆️ Dependencies
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#537)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#533)
Full Changelog: v2.2.1...v2.2.2
MQT Core 2.2.1 Release
👀 What Changed
This patch release fixes a small oversight that prevented consuming projects to include the package.
⚛️ MQT Core
- 🩹 guard install instruction @burgholzer (#531)
🐛 Bug Fixes
- 🩹 guard install instruction @burgholzer (#531)
Full Changelog: v2.2.0...v2.2.1
MQT Core 2.2.0 Release
👀 What Changed
⚛️ MQT Core
- ✨ Allow project installation @burgholzer (#529)
- 🚸 Usability improvements for symbolic computations @burgholzer (#528)
- 🐛 fix missing
mcx
gate support in OpenQASM3 parser @burgholzer (#526) - 🚸 OpenQASM string import and export @burgholzer (#521)
- For builtin gates, print
c
prefix instead ofctrl @
@martin-fink (#520) - 📝 update documentation with OpenQASM 3.0 support @burgholzer (#518)
- 🐛 avoid using system header includes for external dependencies @burgholzer (#517)
- ✨ New optimization pass: Backpropagate output permutation and better dynamic circuit support @burgholzer (#512)
- Fix handling of output permutation and initial layout @martin-fink (#509)
⚖️ MQT Core DD Package
- 🐛 Fix and optimize reduction of garbage @burgholzer (#525)
- 🐛 Fix and optimize reduction of ancillaries @burgholzer (#524)
- 🚸♻️ Improve the high-level DD package interfaces @burgholzer (#523)
🕸️ MQT Core ZX Package
- ⬆️ raise minimum required Boost version to 1.80 @burgholzer (#522)
🚀 Features and Enhancements
- ✨ Allow project installation @burgholzer (#529)
- 🚸 Usability improvements for symbolic computations @burgholzer (#528)
- 🚸 OpenQASM string import and export @burgholzer (#521)
- For builtin gates, print
c
prefix instead ofctrl @
@martin-fink (#520) - ✨ New optimization pass: Backpropagate output permutation and better dynamic circuit support @burgholzer (#512)
🐛 Bug Fixes
- 🐛 fix missing
mcx
gate support in OpenQASM3 parser @burgholzer (#526) - 🐛 Fix and optimize reduction of garbage @burgholzer (#525)
- 🐛 Fix and optimize reduction of ancillaries @burgholzer (#524)
- 🐛 avoid using system header includes for external dependencies @burgholzer (#517)
- Fix handling of output permutation and initial layout @martin-fink (#509)
📄 Documentation
- 📝 update documentation with OpenQASM 3.0 support @burgholzer (#518)
📦 Packaging
- ✨ Allow project installation @burgholzer (#529)
- ⬆️ update cibuildwheel version on Cirrus-CI @burgholzer (#514)
🧹 Code Quality
- 🚸♻️ Improve the high-level DD package interfaces @burgholzer (#523)
- 🚨 fix warnings about exceptions that privately inherit from
std::exeption
@burgholzer (#516)
⬆️ Dependencies
8 changes
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#527)
- ⬆️ raise minimum required Boost version to 1.80 @burgholzer (#522)
- ♻️ Refactor CMake structure and replace submodules with
FetchContent
@burgholzer (#515) - 🐛 avoid using system header includes for external dependencies @burgholzer (#517)
- 🚸 update maximum supported CMake version @burgholzer (#513)
- ⬆️ update cibuildwheel version on Cirrus-CI @burgholzer (#514)
- Bump the submodules group with 4 updates @dependabot (#511)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#510)
Full Changelog: v2.1.0...v2.2.0
MQT Core 2.1.0 Release
👀 What Changed
- 🎉 Initial OpenQASM 3.0 support . Thanks @tyi1025!
- 📈 Benchmark suite and utilities for the DD package. Thanks @martin-fink!
- ⚡ General performance improvements to the underlying DD package.
⚛️ MQT Core
- 🚨 proper use of
std::enable_if
for SFINAE @burgholzer (#500) - ✨ Add support for OpenQASM 3.0
else
@martin-fink (#498) - ✨ OpenQASM 3.0 support @martin-fink (#309)
⚖️ MQT Core DD Package
- ⚡ Improved accuracy in complex number arithmetic @burgholzer (#507)
- ♻️ Remove complex cache @burgholzer (#444)
- ♻️⚡ Refactor and fine-tune DD normalization @burgholzer (#501)
- 🩹 properly reset tolerance in test @burgholzer (#499)
- Benchmarking the DD package @tyi1025 (#452)
🕸️ MQT Core ZX Package
- 🎨 provide
operator<<
overloads for scoped enums in ZX package @burgholzer (#508)
🚀 Features and Enhancements
- 🎨 provide
operator<<
overloads for scoped enums in ZX package @burgholzer (#508) - ⚡ Improved accuracy in complex number arithmetic @burgholzer (#507)
- ♻️ Remove complex cache @burgholzer (#444)
- ♻️⚡ Refactor and fine-tune DD normalization @burgholzer (#501)
- ✨ Add support for OpenQASM 3.0
else
@martin-fink (#498) - ✨ OpenQASM 3.0 support @martin-fink (#309)
- Benchmarking the DD package @tyi1025 (#452)
🐛 Bug Fixes
- 🚨 proper use of
std::enable_if
for SFINAE @burgholzer (#500) - 🩹 properly reset tolerance in test @burgholzer (#499)
🧹 Code Quality
⬆️ Dependencies
- Bump the github-actions group with 2 updates @dependabot (#506)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#502)
- Bump the github-actions group with 2 updates @dependabot (#497)
- Bump the github-actions group with 1 update @dependabot (#496)
Full Changelog: v2.0.2...v2.1.0
MQT Core 2.0.2 Release
👀 What Changed
⚛️ MQT Core
- ♻️ Revised qubit register handling @burgholzer (#495)
🐛 Bug Fixes
- ♻️ Revised qubit register handling @burgholzer (#495)
⬆️ Dependencies
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#494)
Full Changelog: v2.0.1...v2.0.2
MQT Core 2.0.1 Release
👀 What Changed
⚛️ MQT Core
- 🩹 Improved qubit and register management @burgholzer (#493)
- ✨ added inverse gate for iSWAP @BertiFlorea (#460)
⚖️ MQT Core DD Package
- 🔥 remove irrelevant special casing for GRCS functionality construction @burgholzer (#488)
- ✨ added state preparation routines for GHZ and W state @BertiFlorea (#445)
🕸️ MQT Core ZX Package
- ✨ support ECR and DCX gate in ZX library @burgholzer (#481)
🚀 Features and Enhancements
- ✨ added inverse gate for iSWAP @BertiFlorea (#460)
- ✨ added state preparation routines for GHZ and W state @BertiFlorea (#445)
- 🚚 move
check-sdist
from pre-commit to CI @burgholzer (#480) - ✨ support ECR and DCX gate in ZX library @burgholzer (#481)
🐛 Bug Fixes
- 🩹 Improved qubit and register management @burgholzer (#493)
🤖 CI
- 🚚 move
check-sdist
from pre-commit to CI @burgholzer (#480)
🧹 Code Quality
- ✨ add Scientific Python's repo-review @burgholzer (#483)
- 🚚 move
check-sdist
from pre-commit to CI @burgholzer (#480)
⬆️ Dependencies
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#492)
- Bump the submodules group with 4 updates @dependabot (#490)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#485)
- ⬆️🪝 update pre-commit hooks @pre-commit-ci (#479)
Full Changelog: v2.0.0.post1...v2.0.1
MQT Core 2.0.0 Release
👀 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 tofind_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
andone
members with constexpr functions @burgholzer (#448) - ⚡ Skip
symmetry
computation and 🔥 removetranspose
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
anddd::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
🚀 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 🔥 removetranspose
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 usecpp-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
tomqt-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 usecpp-linter
action @burgholzer (#325) - 👨💻 introduce
mold
as default linker under Linux @burgholzer (#324) - 👨💻 introduce compiler cache @b...
MQT Core 2.0.0 Release - Beta 1
👀 What Changed
With #371 being in, we are getting closer to a full release.
This constitutes the first (pre-)release of MQT Core that ships with fully-fledged Python bindings for the QuantumComputation
class and class relevant to it.
Any top level projects may now start to switch to using MQT Core from Python and switch to the native Python integration with Qiskit.
MQT Core 2.0.0 Release - Alpha 4
👀 What Changed
Yet another publishing test release. Moved trusted publishing out of reusable workflow.