Releases: munich-quantum-toolkit/core
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.
MQT Core 2.0.0 Release - Alpha 3
👀 What Changed
Just another PR for testing the publishing pipeline. The Python package does not contain any substantial functionality yet.
MQT Core 2.0.0 Release - Alpha 2
👀 What Changed
Another pre-release for testing the publishing pipeline.
MQT Core 2.0.0 Release - Alpha 1
👀 What Changed
This is just an alpha release to test the publishing pipeline.
Version 1.11.1 Release
This will be the last release as part of the MQT QFR project before moving forward with the transition towards MQT Core (#318).
This will also be the last release that includes the mqt.qfr
Python package. That package will not be updated any further beyond this point.
What's Changed
- Bump pypa/cibuildwheel from 2.12.0 to 2.12.1 by @dependabot in #282
- ⬆️ Update DD package submodule by @aaronleesander in #283
- ♻️ Refactor global phase handling by @burgholzer in #284
- ⏪ Add back a
opTypeFromString
method by @burgholzer in #285 - Add opaque teleportation gate by @hillmich in #286
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #287
- Bump extern/json from
8fa0d7b
to6af826d
by @dependabot in #291 - Bump extern/dd_package from
baa0df6
to753ef1d
by @dependabot in #290 - Bump extern/pybind11 from
3cc7e42
to4ce0517
by @dependabot in #289 - Bump extern/zx from
c9d8fe5
to653f767
by @dependabot in #288 - ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #292
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #293
- Bump codecov/codecov-action from 3.1.1 to 3.1.2 by @dependabot in #294
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #295
- Bump pypa/cibuildwheel from 2.12.1 to 2.12.2 by @dependabot in #296
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #297
- Bump pypa/cibuildwheel from 2.12.2 to 2.12.3 by @dependabot in #298
- Bump codecov/codecov-action from 3.1.2 to 3.1.3 by @dependabot in #299
- Bump extern/pybind11 from
4ce0517
to956390a
by @dependabot in #300 - Bump extern/dd_package from
753ef1d
tof0e933e
by @dependabot in #301 - Bump extern/zx from
653f767
to9bcc6ef
by @dependabot in #302 - ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #303
- 🚸 only add CMake targets if they do not exist by @burgholzer in #305
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #306
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #307
- Bump codecov/codecov-action from 3.1.3 to 3.1.4 by @dependabot in #308
- ⬆️🪝 update pre-commit hooks by @pre-commit-ci in #310
- Bump pypa/cibuildwheel from 2.12.3 to 2.13.0 by @dependabot in #311
- Bump extern/pybind11 from
956390a
tod0232b1
by @dependabot in #313
New Contributors
- @aaronleesander made their first contribution in #283
Full Changelog: v1.11.0...v1.11.1
Version 1.11.0 Release
The last release in this repository is quite old and a lot has happened since.
What's Changed
- 🐛 add some missing synonymous operation names by @burgholzer in #90
- ✨ add native support for
sx
andsxdg
gates to qasm parser by @burgholzer in #95 - ✨ Measurements from output permutation by @burgholzer in #96
- ✨ CNOT Cancellation Optimization Pass by @burgholzer in #101
- Make Usage of Single Header JSON Lib Explicit by @hillmich in #125
- 🚸 Extended Operation Recognition by @burgholzer in #127
- 🐛 Fix for Qiskit
Layout
import by @burgholzer in #133 - 🐛 Fix bug in
cancelCNOTs
optimization by @burgholzer in #134 - Qubit sanity check by @pehamTom in #135
- Update timezones for dependabot by @hillmich in #139
- ✨ Integrate MQT ZX Package by @pehamTom in #128
- ⬆️📦🐛 Update ZX package by @burgholzer in #140
- Integrate changes of noise aware simulation by @33Gjl1Xe in #126
- Global phase by @pehamTom in #166
- ✨ support
reset
operations in Qiskit circuit import by @burgholzer in #172 - 🐛 Fix dynamic circuit transformation by @burgholzer in #173
- 🚸 Check whether a logical qubit is contained in a circuit by @burgholzer in #201
- 🐛 Fix ancillary and garbage tracking when adding ancilla qubits by @burgholzer in #202
- Update version of publish action by @hillmich in #206
- Symbolic by @pehamTom in #199
- 🐛⚡ Enable
qiskit-terra>=0.22.0
compatibility by @burgholzer in #207 - ♻️📦 Modernize Python packaging by @burgholzer in #208
- Updated DD Package submodule by @hillmich in #217
- ✨ Add Method for Determining Number of Single-Qubit Gates by @burgholzer in #220
- 🐛 Fix unicode literals for C++20 by @burgholzer in #223
- ✨ Convenience features by @burgholzer in #226
- 🔥 Drop LGTM and set up CodeQL by @burgholzer in #231
- 🚨 Introduce pre-commit for consistent styling by @burgholzer in #232
- 🔧 CI Config Update by @burgholzer in #237
- ♻️ DD-independent QFR-Core by @burgholzer in #244
- 🚸 Better DD package templating by @burgholzer in #247
- ♻️ Refactor CMake Configuration and add Clang-Tidy by @burgholzer in #246
- ✨ ECC Framework by @pichristoph in #210
- Fixed a wrong property in CMake by @hillmich in #257
- 🚸 Add barrier before measurements by @burgholzer in #258
- ♻️ Simplify output permutation computation in circuit import by @burgholzer in #264
- 🐛 Fix controlled u-gate OpenQASM output by @JoachimMarin in #266
- 🩹 Fix strip idle qubits corner case by @burgholzer in #277
- 🩹 Allow removing logical qubits used in the output permutation by force by @burgholzer in #279
- ✨ Gate Extensions and ♻️ QASM Parser Refactor by @burgholzer in #280
New Contributors
- @pehamTom made their first contribution in #135
- @33Gjl1Xe made their first contribution in #126
- @pre-commit-ci made their first contribution in #243
- @pichristoph made their first contribution in #210
- @JoachimMarin made their first contribution in #266
Full Changelog: v1.10.0...v1.11.0
v1.10.0 Release: Templated DD Package and Separation of Concerns
This PR adapts the QFR to support the new DD package version. It also includes some convenience fixes such as #pragma once
for header includes and fixes for the webpage links in file headers.
What's Changed
- Separate DD package functionality by @burgholzer in #75
Full Changelog: v1.9.0...v1.10.0
v1.9.0 Release: Bugfix and Dependency Update
What's Changed
- Bump actions/checkout from 2 to 3 by @dependabot in #64
- Bump extern/pybind11 from
f495dfc
to465b2e0
by @dependabot in #63 - Bump extern/dd_package from
0333030
to2345841
by @dependabot in #67 - Bump extern/json from
e4643d1
to700b95f
by @dependabot in #65 - Bump extern/pybind11 from
465b2e0
to2dd5254
by @dependabot in #66 - Bump extern/pybind11 from
2dd5254
tof8a532a
by @dependabot in #69 - Bump extern/dd_package from
2345841
to03f72e2
by @dependabot in #70 - Bump extern/pybind11 from
f8a532a
tob22ee64
by @dependabot in #71 - Bump extern/dd_package from
03f72e2
to65f6287
by @dependabot in #72 - ✨Equality checks for Operations by @burgholzer in #73
- Bugfixes for QCEC by @burgholzer in #74
Full Changelog: v1.8.0...v1.9.0