Skip to content

MQT Core 3.0.0 Release

Compare
Choose a tag to compare
@github-actions github-actions released this 06 Apr 21:45
· 62 commits to refs/heads/main since this release
0e53794

👀 What Changed

Please refer to the changelog and the upgrade guide for a structured overview of the changes.

⚛️ MQT Core IR

  • 🔥 Remove Teleportation gate (#882) (@burgholzer)
  • 🚨 Run clang-tidy on MLIR subproject, switch to LLVM@20, and update to CMake >= 3.24 (#879) (@burgholzer)
  • 🩹 Add insert_or_assign method to Permutation class (#870) (@burgholzer)
  • ✨Add continuous testing workflow for Qiskit main branch (#860) (@burgholzer)
  • ✨ Add Python interface improvements and Qiskit export support (#859) (@burgholzer)
  • ♻️🐛 Refactor qc::Permutation and fix corner case in Qiskit layout import (#858) (@burgholzer)
  • 📝 Slightly improve code documentation and QuantumComputation.__repr__ (#851) (@burgholzer)
  • 🐛 Fix and enhance Qiskit layout and permutation handling (#850) (@burgholzer)
  • 🔧 Handle empty quantum and classical registers in qiskit to MQT translation (#849) (@burgholzer)
  • ⬆️ scikit-build-core 0.11, PEP 639 license expressions, sphinx fixes, more automerge (#847) (@burgholzer)
  • ⬆️ Update googletest and Boost Multiprecision dependencies (#840) (@burgholzer)
  • 🚸 Allow indexed registers as operation arguments (#839) (@burgholzer)
  • 🚸 Add support for indexed identifiers and improve OpenQASM handling (#832) (@burgholzer)
  • ✨ Add State Preparation Algorithm (#543) (@M-J-Hochreiter)
  • ♻️ Refactor QASM import functionality and remove deprecated formats (#822) (@burgholzer)
  • ✨ Ancillary and garbage support (#635) (@TooMuchDakka)
  • ♻️ Refactor handling of gate matrices and inverses (#752) (@rotmanjanez)
  • 🔧 update Python coverage configuration (#811) (@burgholzer)
  • 🐛 fix permutation handling in QASM dump (#810) (@burgholzer)
  • 🐛 use fuzzy comparison for floating point in const evaluation equality check (#809) (@burgholzer)
  • 🐛 do not invalidate iterator in block collection (#808) (@burgholzer)
  • 🐛 Fix stripping of idle qubits (#763) (@burgholzer)
  • ♻️ Refactor and improve register handling (#807) (@burgholzer)
  • 🔒 update to latest uv version that properly supports dynamically versioned packages (#802) (@burgholzer)
  • ✨ ship shared C++ libraries with mqt-core Python package (#662) (@burgholzer)
  • ♻️🎨 Code cleanup and refactors (#798) (@burgholzer)
  • 🚸 slightly tweak how optional qiskit dependency is handled (#797) (@burgholzer)
  • 📝 Rework existing project documentation (#789) (@burgholzer)
  • ➖ simplify dependencies after uv update (#786) (@burgholzer)
  • 📄 add license headers (#770) (@burgholzer)
  • 🚨 adapt to warnings related to Qiskit 1.3 (#771) (@burgholzer)
  • ✨ Adopt PEP 735 dependency groups (#762) (@burgholzer)
  • 🐛 Fix out-of-bounds error in ZX EdgeIterator and needless dummy register in empty circuit construction (#758) (@burgholzer)
  • 🐛 properly handle timing literals in QASM parser (#724) (@burgholzer)
  • 🔧 use separate build directories per Python version (#721) (@burgholzer)

⚖️ MQT Core DD Package

  • 🎨 slightly touch up template instantiations and use more trailing return types (#902) (@burgholzer)
  • ♻️ Eliminate templates from dd::Package class (#886) (@burgholzer)
  • 🔥 Remove extract_probability_vector functionality (#883) (@burgholzer)
  • ♻️ Remove template parameter from MemoryManager and adjacent classes (#866) (@rotmanjanez)
  • ⚗️ Fix potential division by zero error and tweak DD evaluation settings (#873) (@burgholzer)
  • 📝 Add documentation for DD package (#831) (@burgholzer)
  • ✨🐍 DD Package Python bindings (#838) (@burgholzer)
  • ♻️🎨 Code cleanup and refactors (#798) (@burgholzer)
  • 🎨 further DD usability improvements (#764) (@burgholzer)
  • 🚸♻️ convenience methods and updates for DD functionality (#674) (@burgholzer)
  • 🐛 fix endianness in DCX and XX_minus_YY gate matrix definition (#741) (@burgholzer)

🕸️ MQT Core ZX Package

  • 🐛 restore installation of Boost multiprecision headers (#901) (@burgholzer)
  • 📝 Add documentation for ZX-calculus package and C++ API docs setup (#817) (@pehamTom)
  • 🐛 Fix out-of-bounds error in ZX EdgeIterator and needless dummy register in empty circuit construction (#758) (@burgholzer)

🏼 MQT Core NA Package

  • 🎨 Add U operation and allow for Multiple Zones (#877) (@ystade)
  • 🎨 Refactor NAComputation with concrete base classes for every operation and ouput new .naviz format (#846) (@ystade)

🐉 MQT Core MLIR

  • Add first optimization passes to MQTOpt (#892) (@DRovara)
  • 🏗️ Enforce LLVM-20 when building MLIR subdirectory (#895) (@DRovara)
  • Clean Up mqt-core round-trip pass (#893) (@DRovara)
  • 🚨 Run clang-tidy on MLIR subproject, switch to LLVM@20, and update to CMake >= 3.24 (#879) (@burgholzer)
  • ✨ Initial Infrastructure for MLIR within the MQT (#878) (@burgholzer)

🚀 Features and Enhancements

  • Add first optimization passes to MQTOpt (#892) (@DRovara)
  • ♻️ Eliminate templates from dd::Package class (#886) (@burgholzer)
  • 🔥 Remove extract_probability_vector functionality (#883) (@burgholzer)
  • 🔥 Remove Teleportation gate (#882) (@burgholzer)
  • 🎨 Add U operation and allow for Multiple Zones (#877) (@ystade)
  • ✨ Initial Infrastructure for MLIR within the MQT (#878) (@burgholzer)
  • ♻️ Remove template parameter from MemoryManager and adjacent classes (#866) (@rotmanjanez)
  • ⚗️ Fix potential division by zero error and tweak DD evaluation settings (#873) (@burgholzer)
  • ✨ Add Python interface improvements and Qiskit export support (#859) (@burgholzer)
  • 🎨 Refactor NAComputation with concrete base classes for every operation and ouput new .naviz format (#846) (@ystade)
  • 🔧 Only enable IPO per default for Release builds outside of deployment (#841) (@burgholzer)
  • 🚸 Allow indexed registers as operation arguments (#839) (@burgholzer)
  • ✨🐍 DD Package Python bindings (#838) (@burgholzer)
  • 🚸 Add support for indexed identifiers and improve OpenQASM handling (#832) (@burgholzer)
  • ✨ Add State Preparation Algorithm (#543) (@M-J-Hochreiter)
  • ♻️ Refactor QASM import functionality and remove deprecated formats (#822) (@burgholzer)
  • ✨ Ancillary and garbage support (#635) (@TooMuchDakka)
  • ♻️ Refactor handling of gate matrices and inverses (#752) (@rotmanjanez)
  • 🐛 Fix stripping of idle qubits (#763) (@burgholzer)
  • ♻️ Refactor and improve register handling (#807) (@burgholzer)
  • ✨ ship shared C++ libraries with mqt-core Python package (#662) (@burgholzer)
  • ♻️🎨 Code cleanup and refactors (#798) (@burgholzer)
  • 🚸 slightly tweak how optional qiskit dependency is handled (#797) (@burgholzer)
  • 🎨 further DD usability improvements (#764) (@burgholzer)
  • 🚸♻️ convenience methods and updates for DD functionality (#674) (@burgholzer)

🐛 Bug Fixes

  • 🐛 restore installation of Boost multiprecision headers (#901) (@burgholzer)
  • 🩹 Fix workflow references and permissions (#894) (@burgholzer)
  • 🩹 Add insert_or_assign method to Permutation class (#870) (@burgholzer)
  • ✨ Add Python interface improvements and Qiskit export support (#859) (@burgholzer)
  • ♻️🐛 Refactor qc::Permutation and fix corner case in Qiskit layout import (#858) (@burgholzer)
  • 🐛 Fix and enhance Qiskit layout and permutation handling (#850) (@burgholzer)
  • 🔧 Handle empty quantum and classical registers in qiskit to MQT translation (#849) (@burgholzer)
  • 🐛 fix permutation handling in QASM dump (#810) (@burgholzer)
  • 🐛 use fuzzy comparison for floating point in const evaluation equality check (#809) (@burgholzer)
  • 🐛 do not invalidate iterator in block collection (#808) (@burgholzer)
  • 🐛 Fix stripping of idle qubits (#763) (@burgholzer)
  • 🐛 Fix out-of-bounds error in ZX EdgeIterator and needless dummy register in empty circuit construction (#758) (@burgholzer)
  • 🐛 fix endianness in DCX and XX_minus_YY gate matrix definition (#741) (@burgholzer)
  • 🐛 properly handle timing literals in QASM parser (#724) (@burgholzer)
  • 🔧📝 unshallow git clone for RtD (#722) (@burgholzer)

📄 Documentation

📦 Packaging

  • 🔒 update to latest uv version that properly supports dynamically versioned packages (#802) (@burgholzer)
  • ✨ ship shared C++ libraries with mqt-core Python package (#662) (@burgholzer)
  • ✨ Adopt PEP 735 dependency groups (#762) (@burgholzer)

🧹 Code Quality

🤖 CI

⬆️ Dependencies

104 changes

Full Changelog: v2.7.0...v3.0.0