mqt-core 3.2.0__tar.gz → 3.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mqt-core might be problematic. Click here for more details.

Files changed (346) hide show
  1. {mqt_core-3.2.0 → mqt_core-3.3.0}/.clang-tidy +1 -0
  2. {mqt_core-3.2.0 → mqt_core-3.3.0}/.license-tools-config.json +3 -1
  3. {mqt_core-3.2.0 → mqt_core-3.3.0}/.pre-commit-config.yaml +14 -14
  4. {mqt_core-3.2.0 → mqt_core-3.3.0}/.readthedocs.yaml +8 -7
  5. {mqt_core-3.2.0 → mqt_core-3.3.0}/CHANGELOG.md +105 -2
  6. {mqt_core-3.2.0 → mqt_core-3.3.0}/CMakeLists.txt +23 -5
  7. {mqt_core-3.2.0 → mqt_core-3.3.0}/PKG-INFO +74 -33
  8. {mqt_core-3.2.0 → mqt_core-3.3.0}/README.md +70 -30
  9. {mqt_core-3.2.0 → mqt_core-3.3.0}/UPGRADING.md +34 -1
  10. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/CMakeLists.txt +6 -0
  11. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/dd/CMakeLists.txt +1 -1
  12. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/dd/register_dd_package.cpp +4 -6
  13. mqt_core-3.3.0/bindings/fomac/CMakeLists.txt +26 -0
  14. mqt_core-3.3.0/bindings/fomac/fomac.cpp +134 -0
  15. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/CMakeLists.txt +1 -1
  16. mqt_core-3.3.0/bindings/ir/operations/register_if_else_operation.cpp +116 -0
  17. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_operation.cpp +1 -2
  18. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_optype.cpp +1 -1
  19. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_operations.cpp +2 -2
  20. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_quantum_computation.cpp +63 -31
  21. mqt_core-3.3.0/bindings/na/CMakeLists.txt +18 -0
  22. mqt_core-3.3.0/bindings/na/fomac/CMakeLists.txt +26 -0
  23. mqt_core-3.3.0/bindings/na/fomac/fomac.cpp +112 -0
  24. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/AddMQTCoreLibrary.cmake +13 -0
  25. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/AddMQTPythonBinding.cmake +3 -0
  26. mqt_core-3.3.0/cmake/Cache.cmake +33 -0
  27. mqt_core-3.3.0/cmake/CleanMLIRDocs.cmake +27 -0
  28. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/ExternalDependencies.cmake +30 -0
  29. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/PackageAddTest.cmake +6 -0
  30. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/SetupMLIR.cmake +3 -1
  31. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/StandardProjectSettings.cmake +1 -1
  32. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/mqt-core-config.cmake.in +3 -0
  33. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +13 -0
  34. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/DirectedGraph.hpp +1 -1
  35. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/UndirectedGraph.hpp +1 -1
  36. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/CachedEdge.hpp +7 -0
  37. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Operations.hpp +12 -14
  38. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Package.hpp +1 -1
  39. mqt_core-3.3.0/include/mqt-core/fomac/FoMaC.hpp +568 -0
  40. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/QuantumComputation.hpp +29 -28
  41. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
  42. mqt_core-3.3.0/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
  43. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/OpType.hpp +3 -0
  44. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/OpType.inc +2 -2
  45. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/Operation.hpp +3 -1
  46. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/StandardOperation.hpp +2 -0
  47. mqt_core-3.3.0/include/mqt-core/na/device/Device.hpp +410 -0
  48. mqt_core-3.3.0/include/mqt-core/na/device/Generator.hpp +447 -0
  49. mqt_core-3.3.0/include/mqt-core/na/fomac/Device.hpp +169 -0
  50. mqt_core-3.3.0/include/mqt-core/qdmi/Driver.hpp +431 -0
  51. mqt_core-3.3.0/include/mqt-core/qir/runtime/QIR.h +174 -0
  52. mqt_core-3.3.0/include/mqt-core/qir/runtime/Runtime.hpp +360 -0
  53. mqt_core-3.3.0/json/na/device.json +148 -0
  54. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/CMakeLists.txt +4 -1
  55. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Conversion/CMakeLists.txt +4 -2
  56. mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTOptToMQTRef/CMakeLists.txt +13 -0
  57. mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTDynToMQTOpt/MQTDynToMQTOpt.h → mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTOptToMQTRef/MQTOptToMQTRef.h +2 -2
  58. mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTOptToMQTDyn/MQTOptToMQTDyn.td → mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTOptToMQTRef/MQTOptToMQTRef.td +8 -7
  59. {mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTDynToMQTOpt → mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToMQTOpt}/CMakeLists.txt +4 -4
  60. mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTOptToMQTDyn/MQTOptToMQTDyn.h → mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToMQTOpt/MQTRefToMQTOpt.h +2 -2
  61. mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTDynToMQTOpt/MQTDynToMQTOpt.td → mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToMQTOpt/MQTRefToMQTOpt.td +7 -6
  62. mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToQIR/CMakeLists.txt +13 -0
  63. mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToQIR/MQTRefToQIR.h +23 -0
  64. mqt_core-3.3.0/mlir/include/mlir/Conversion/MQTRefToQIR/MQTRefToQIR.td +66 -0
  65. mqt_core-3.3.0/mlir/include/mlir/Conversion/QIRToMQTRef/CMakeLists.txt +13 -0
  66. mqt_core-3.3.0/mlir/include/mlir/Conversion/QIRToMQTRef/QIRToMQTRef.h +23 -0
  67. mqt_core-3.3.0/mlir/include/mlir/Conversion/QIRToMQTRef/QIRToMQTRef.td +51 -0
  68. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/CMakeLists.txt +1 -1
  69. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/Common/IR/CommonTraits.h +1 -19
  70. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/Common/IR/CommonTraits.td +0 -4
  71. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/Common/IR/StdOps.td.inc +11 -9
  72. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/IR/CMakeLists.txt +3 -2
  73. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptDialect.h +24 -3
  74. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptInterfaces.td +18 -0
  75. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptOps.td +73 -95
  76. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/Transforms/CMakeLists.txt +1 -1
  77. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.h +6 -1
  78. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.td +122 -0
  79. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Architecture.h +93 -0
  80. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Common.h +39 -0
  81. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Layout.h +144 -0
  82. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Stack.h +87 -0
  83. {mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTOpt → mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef}/CMakeLists.txt +0 -1
  84. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef/IR/CMakeLists.txt +17 -0
  85. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynDialect.h → mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefDialect.h +29 -5
  86. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynInterfaces.td → mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefInterfaces.td +23 -5
  87. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefOps.td +200 -0
  88. mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTRef/Translation/ImportQuantumComputation.h +22 -0
  89. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/tools/quantum-opt/CMakeLists.txt +4 -3
  90. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/tools/quantum-opt/quantum-opt.cpp +20 -8
  91. mqt_core-3.3.0/mlir/unittests/CMakeLists.txt +9 -0
  92. mqt_core-3.3.0/mlir/unittests/translation/CMakeLists.txt +21 -0
  93. mqt_core-3.3.0/mlir/unittests/translation/test_translation.cpp +1010 -0
  94. {mqt_core-3.2.0 → mqt_core-3.3.0}/noxfile.py +30 -18
  95. {mqt_core-3.2.0 → mqt_core-3.3.0}/pyproject.toml +29 -32
  96. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/_commands.py +2 -2
  97. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/_version.py +16 -3
  98. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/dd.pyi +5 -7
  99. mqt_core-3.3.0/python/mqt/core/fomac.pyi +125 -0
  100. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/ir/__init__.pyi +83 -45
  101. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/ir/operations.pyi +40 -27
  102. mqt_core-3.3.0/python/mqt/core/na/__init__.py +12 -0
  103. mqt_core-3.3.0/python/mqt/core/na/fomac.pyi +117 -0
  104. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/plugins/qiskit/mqt_to_qiskit.py +75 -11
  105. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/plugins/qiskit/qiskit_to_mqt.py +108 -5
  106. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/CMakeLists.txt +9 -0
  107. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/CMakeLists.txt +1 -8
  108. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/QFT.cpp +4 -4
  109. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/QPE.cpp +3 -3
  110. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/circuit_optimizer/CMakeLists.txt +1 -11
  111. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/circuit_optimizer/CircuitOptimizer.cpp +355 -64
  112. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/datastructures/CMakeLists.txt +1 -11
  113. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/CMakeLists.txt +1 -11
  114. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/GateMatrixDefinitions.cpp +14 -13
  115. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Operations.cpp +19 -13
  116. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Simulation.cpp +6 -9
  117. mqt_core-3.3.0/src/fomac/CMakeLists.txt +32 -0
  118. mqt_core-3.3.0/src/fomac/FoMaC.cpp +423 -0
  119. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/CMakeLists.txt +0 -13
  120. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/QuantumComputation.cpp +66 -48
  121. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/CompoundOperation.cpp +5 -0
  122. mqt_core-3.3.0/src/ir/operations/IfElseOperation.cpp +317 -0
  123. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/OpType.cpp +3 -1
  124. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/Operation.cpp +4 -17
  125. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/StandardOperation.cpp +23 -0
  126. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/CMakeLists.txt +9 -13
  127. mqt_core-3.3.0/src/na/device/App.cpp +447 -0
  128. mqt_core-3.3.0/src/na/device/CMakeLists.txt +206 -0
  129. mqt_core-3.3.0/src/na/device/Device.cpp +726 -0
  130. mqt_core-3.3.0/src/na/device/DynDevice.cpp +155 -0
  131. mqt_core-3.3.0/src/na/device/Generator.cpp +511 -0
  132. mqt_core-3.3.0/src/na/fomac/CMakeLists.txt +35 -0
  133. mqt_core-3.3.0/src/na/fomac/Device.cpp +562 -0
  134. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/CMakeLists.txt +1 -11
  135. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Importer.cpp +23 -28
  136. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Scanner.cpp +21 -10
  137. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Statement.cpp +1 -1
  138. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Token.cpp +2 -6
  139. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/passes/ConstEvalPass.cpp +1 -2
  140. mqt_core-3.3.0/src/qdmi/CMakeLists.txt +32 -0
  141. mqt_core-3.3.0/src/qdmi/Driver.cpp +503 -0
  142. mqt_core-3.3.0/src/qir/CMakeLists.txt +13 -0
  143. mqt_core-3.3.0/src/qir/runner/CMakeLists.txt +36 -0
  144. mqt_core-3.3.0/src/qir/runner/Runner.cpp +414 -0
  145. mqt_core-3.3.0/src/qir/runtime/CMakeLists.txt +25 -0
  146. mqt_core-3.3.0/src/qir/runtime/QIR.cpp +381 -0
  147. mqt_core-3.3.0/src/qir/runtime/Runtime.cpp +165 -0
  148. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/CMakeLists.txt +1 -11
  149. mqt_core-3.3.0/uv.lock +3306 -0
  150. mqt_core-3.2.0/bindings/ir/operations/register_classic_controlled_operation.cpp +0 -95
  151. mqt_core-3.2.0/cmake/Cache.cmake +0 -32
  152. mqt_core-3.2.0/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -156
  153. mqt_core-3.2.0/mlir/include/mlir/Conversion/MQTOptToMQTDyn/CMakeLists.txt +0 -13
  154. mqt_core-3.2.0/mlir/include/mlir/Dialect/Common/Compat.h +0 -41
  155. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/IR/CMakeLists.txt +0 -16
  156. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynOps.td +0 -201
  157. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/CMakeLists.txt +0 -12
  158. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.h +0 -36
  159. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.td +0 -24
  160. mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.td +0 -56
  161. mqt_core-3.2.0/src/ir/operations/ClassicControlledOperation.cpp +0 -173
  162. mqt_core-3.2.0/uv.lock +0 -3740
  163. {mqt_core-3.2.0 → mqt_core-3.3.0}/.clang-format +0 -0
  164. {mqt_core-3.2.0 → mqt_core-3.3.0}/.cmake-format.yaml +0 -0
  165. {mqt_core-3.2.0 → mqt_core-3.3.0}/.editorconfig +0 -0
  166. {mqt_core-3.2.0 → mqt_core-3.3.0}/.git_archival.txt +0 -0
  167. {mqt_core-3.2.0 → mqt_core-3.3.0}/.gitattributes +0 -0
  168. {mqt_core-3.2.0 → mqt_core-3.3.0}/.gitignore +0 -0
  169. {mqt_core-3.2.0 → mqt_core-3.3.0}/.python_version +0 -0
  170. {mqt_core-3.2.0 → mqt_core-3.3.0}/CITATION.cff +0 -0
  171. {mqt_core-3.2.0 → mqt_core-3.3.0}/LICENSE.md +0 -0
  172. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/dd/register_dd.cpp +0 -0
  173. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/dd/register_matrix_dds.cpp +0 -0
  174. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/dd/register_vector_dds.cpp +0 -0
  175. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_compound_operation.cpp +0 -0
  176. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_control.cpp +0 -0
  177. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_non_unitary_operation.cpp +0 -0
  178. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_standard_operation.cpp +0 -0
  179. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/operations/register_symbolic_operation.cpp +0 -0
  180. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_ir.cpp +0 -0
  181. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_permutation.cpp +0 -0
  182. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_registers.cpp +0 -0
  183. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/register_symbolic.cpp +0 -0
  184. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/symbolic/register_expression.cpp +0 -0
  185. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/symbolic/register_term.cpp +0 -0
  186. {mqt_core-3.2.0 → mqt_core-3.3.0}/bindings/ir/symbolic/register_variable.cpp +0 -0
  187. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/CompilerOptions.cmake +0 -0
  188. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/CompilerWarnings.cmake +0 -0
  189. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/FindGMP.cmake +0 -0
  190. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/GetVersion.cmake +0 -0
  191. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/PreventInSourceBuilds.cmake +0 -0
  192. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/Sanitizers.cmake +0 -0
  193. {mqt_core-3.2.0 → mqt_core-3.3.0}/cmake/cmake_uninstall.cmake.in +0 -0
  194. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/BernsteinVazirani.hpp +0 -0
  195. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/GHZState.hpp +0 -0
  196. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/Grover.hpp +0 -0
  197. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/QFT.hpp +0 -0
  198. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/QPE.hpp +0 -0
  199. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +0 -0
  200. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/StatePreparation.hpp +0 -0
  201. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/algorithms/WState.hpp +0 -0
  202. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +0 -0
  203. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/DisjointSet.hpp +0 -0
  204. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/Layer.hpp +0 -0
  205. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/datastructures/SymmetricMatrix.hpp +0 -0
  206. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Approximation.hpp +0 -0
  207. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Complex.hpp +0 -0
  208. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/ComplexNumbers.hpp +0 -0
  209. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/ComplexValue.hpp +0 -0
  210. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/ComputeTable.hpp +0 -0
  211. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/DDDefinitions.hpp +0 -0
  212. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/DDpackageConfig.hpp +0 -0
  213. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/DensityNoiseTable.hpp +0 -0
  214. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Edge.hpp +0 -0
  215. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Export.hpp +0 -0
  216. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/FunctionalityConstruction.hpp +0 -0
  217. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/GateMatrixDefinitions.hpp +0 -0
  218. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/LinkedListBase.hpp +0 -0
  219. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/MemoryManager.hpp +0 -0
  220. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Node.hpp +0 -0
  221. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/NoiseFunctionality.hpp +0 -0
  222. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Package_fwd.hpp +0 -0
  223. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/RealNumber.hpp +0 -0
  224. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/RealNumberUniqueTable.hpp +0 -0
  225. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/Simulation.hpp +0 -0
  226. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/StateGeneration.hpp +0 -0
  227. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +0 -0
  228. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/UnaryComputeTable.hpp +0 -0
  229. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/UniqueTable.hpp +0 -0
  230. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +0 -0
  231. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/statistics/PackageStatistics.hpp +0 -0
  232. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/statistics/Statistics.hpp +0 -0
  233. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/statistics/TableStatistics.hpp +0 -0
  234. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +0 -0
  235. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/Definitions.hpp +0 -0
  236. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/Permutation.hpp +0 -0
  237. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/Register.hpp +0 -0
  238. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/AodOperation.hpp +0 -0
  239. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/Control.hpp +0 -0
  240. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/Expression.hpp +0 -0
  241. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +0 -0
  242. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/ir/operations/SymbolicOperation.hpp +0 -0
  243. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/NAComputation.hpp +0 -0
  244. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/entities/Atom.hpp +0 -0
  245. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/entities/Location.hpp +0 -0
  246. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/entities/Zone.hpp +0 -0
  247. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/GlobalCZOp.hpp +0 -0
  248. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/GlobalOp.hpp +0 -0
  249. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/GlobalRYOp.hpp +0 -0
  250. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/LoadOp.hpp +0 -0
  251. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/LocalOp.hpp +0 -0
  252. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/LocalRZOp.hpp +0 -0
  253. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/LocalUOp.hpp +0 -0
  254. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/MoveOp.hpp +0 -0
  255. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/Op.hpp +0 -0
  256. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/ShuttlingOp.hpp +0 -0
  257. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/na/operations/StoreOp.hpp +0 -0
  258. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Exception.hpp +0 -0
  259. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Gate.hpp +0 -0
  260. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Importer.hpp +0 -0
  261. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/InstVisitor.hpp +0 -0
  262. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/NestedEnvironment.hpp +0 -0
  263. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Parser.hpp +0 -0
  264. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Scanner.hpp +0 -0
  265. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Statement.hpp +0 -0
  266. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Statement_fwd.hpp +0 -0
  267. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/StdGates.hpp +0 -0
  268. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Token.hpp +0 -0
  269. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Types.hpp +0 -0
  270. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/Types_fwd.hpp +0 -0
  271. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/passes/CompilerPass.hpp +0 -0
  272. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +0 -0
  273. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +0 -0
  274. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/FunctionalityConstruction.hpp +0 -0
  275. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/Rational.hpp +0 -0
  276. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/Rules.hpp +0 -0
  277. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/Simplify.hpp +0 -0
  278. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/Utils.hpp +0 -0
  279. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/ZXDefinitions.hpp +0 -0
  280. {mqt_core-3.2.0 → mqt_core-3.3.0}/include/mqt-core/zx/ZXDiagram.hpp +0 -0
  281. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/.gitignore +0 -0
  282. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/CMakeLists.txt +0 -0
  283. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/include/mlir/CMakeLists.txt +0 -0
  284. {mqt_core-3.2.0/mlir/include/mlir/Dialect/MQTDyn → mqt_core-3.3.0/mlir/include/mlir/Dialect/MQTOpt}/CMakeLists.txt +0 -0
  285. {mqt_core-3.2.0 → mqt_core-3.3.0}/mlir/tools/CMakeLists.txt +0 -0
  286. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/__init__.py +0 -0
  287. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/__main__.py +0 -0
  288. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/_compat/__init__.py +0 -0
  289. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/_compat/typing.py +0 -0
  290. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/_version.pyi +0 -0
  291. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/dd_evaluation.py +0 -0
  292. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/ir/registers.pyi +0 -0
  293. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/ir/symbolic.pyi +0 -0
  294. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/plugins/__init__.py +0 -0
  295. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/plugins/qiskit/__init__.py +0 -0
  296. {mqt_core-3.2.0 → mqt_core-3.3.0}/python/mqt/core/py.typed +0 -0
  297. {mqt_core-3.2.0 → mqt_core-3.3.0}/sitecustomize.py +0 -0
  298. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/BernsteinVazirani.cpp +0 -0
  299. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/GHZState.cpp +0 -0
  300. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/Grover.cpp +0 -0
  301. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/RandomCliffordCircuit.cpp +0 -0
  302. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/StatePreparation.cpp +0 -0
  303. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/algorithms/WState.cpp +0 -0
  304. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/datastructures/Layer.cpp +0 -0
  305. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Approximation.cpp +0 -0
  306. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/CachedEdge.cpp +0 -0
  307. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Complex.cpp +0 -0
  308. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/ComplexNumbers.cpp +0 -0
  309. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/ComplexValue.cpp +0 -0
  310. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Edge.cpp +0 -0
  311. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Export.cpp +0 -0
  312. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/FunctionalityConstruction.cpp +0 -0
  313. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/MemoryManager.cpp +0 -0
  314. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Node.cpp +0 -0
  315. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/NoiseFunctionality.cpp +0 -0
  316. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/Package.cpp +0 -0
  317. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/RealNumber.cpp +0 -0
  318. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/RealNumberUniqueTable.cpp +0 -0
  319. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/StateGeneration.cpp +0 -0
  320. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/UniqueTable.cpp +0 -0
  321. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/statistics/MemoryManagerStatistics.cpp +0 -0
  322. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/statistics/PackageStatistics.cpp +0 -0
  323. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/statistics/Statistics.cpp +0 -0
  324. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/statistics/TableStatistics.cpp +0 -0
  325. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/dd/statistics/UniqueTableStatistics.cpp +0 -0
  326. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/Permutation.cpp +0 -0
  327. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/AodOperation.cpp +0 -0
  328. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/Expression.cpp +0 -0
  329. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/NonUnitaryOperation.cpp +0 -0
  330. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/ir/operations/SymbolicOperation.cpp +0 -0
  331. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/NAComputation.cpp +0 -0
  332. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/entities/Zone.cpp +0 -0
  333. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/operations/GlobalOp.cpp +0 -0
  334. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/operations/LoadOp.cpp +0 -0
  335. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/operations/LocalOp.cpp +0 -0
  336. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/operations/MoveOp.cpp +0 -0
  337. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/na/operations/StoreOp.cpp +0 -0
  338. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Parser.cpp +0 -0
  339. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/Types.cpp +0 -0
  340. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/qasm3/passes/TypeCheckPass.cpp +0 -0
  341. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/FunctionalityConstruction.cpp +0 -0
  342. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/Rational.cpp +0 -0
  343. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/Rules.cpp +0 -0
  344. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/Simplify.cpp +0 -0
  345. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/Utils.cpp +0 -0
  346. {mqt_core-3.2.0 → mqt_core-3.3.0}/src/zx/ZXDiagram.cpp +0 -0
@@ -14,6 +14,7 @@ Checks: |
14
14
  -cppcoreguidelines-macro-usage,
15
15
  -cppcoreguidelines-pro-type-reinterpret-cast,
16
16
  -cppcoreguidelines-pro-bounds-constant-array-index,
17
+ -cppcoreguidelines-avoid-do-while,
17
18
  google-*,
18
19
  -google-readability-todo,
19
20
  -google-build-using-namespace,
@@ -13,12 +13,14 @@
13
13
  ".mlir": "SLASH_STYLE",
14
14
  ".td": "SLASH_STYLE",
15
15
  ".yaml": "POUND_STYLE",
16
- ".toml": "POUND_STYLE"
16
+ ".toml": "POUND_STYLE",
17
+ ".proto": "SLASH_STYLE"
17
18
  },
18
19
  "exclude": [
19
20
  "^\\.[^/]+",
20
21
  "/\\.[^/]+",
21
22
  ".*\\.qasm",
23
+ ".*\\.ll",
22
24
  ".*\\.md",
23
25
  ".*\\.bib",
24
26
  ".*\\.cff",
@@ -16,7 +16,7 @@ ci:
16
16
  repos:
17
17
  # Check for merge conflicts
18
18
  - repo: https://github.com/pre-commit/pre-commit-hooks
19
- rev: v5.0.0
19
+ rev: v6.0.0
20
20
  hooks:
21
21
  - id: check-merge-conflict
22
22
  args: ["--assume-in-merge"]
@@ -24,7 +24,7 @@ repos:
24
24
 
25
25
  # Standard hooks
26
26
  - repo: https://github.com/pre-commit/pre-commit-hooks
27
- rev: v5.0.0
27
+ rev: v6.0.0
28
28
  hooks:
29
29
  - id: check-added-large-files
30
30
  - id: check-case-conflict
@@ -66,15 +66,15 @@ repos:
66
66
 
67
67
  # Python linting using ruff
68
68
  - repo: https://github.com/astral-sh/ruff-pre-commit
69
- rev: v0.12.5
69
+ rev: v0.14.0
70
70
  hooks:
71
- - id: ruff
71
+ - id: ruff-check
72
72
  args: ["--fix", "--show-fixes"]
73
73
  - id: ruff-format
74
74
 
75
75
  # Static type checking using mypy
76
76
  - repo: https://github.com/pre-commit/mirrors-mypy
77
- rev: v1.17.0
77
+ rev: v1.18.2
78
78
  hooks:
79
79
  - id: mypy
80
80
  files: ^(python/mqt|test/python|noxfile.py)
@@ -86,20 +86,20 @@ repos:
86
86
 
87
87
  # Also run Black on examples in the documentation
88
88
  - repo: https://github.com/adamchainz/blacken-docs
89
- rev: 1.19.1
89
+ rev: 1.20.0
90
90
  hooks:
91
91
  - id: blacken-docs
92
- additional_dependencies: [black==24.*]
92
+ additional_dependencies: [black==25.*]
93
93
 
94
94
  # Check for license headers
95
95
  - repo: https://github.com/emzeat/mz-lictools
96
- rev: v2.7.0
96
+ rev: v2.8.0
97
97
  hooks:
98
98
  - id: license-tools
99
99
 
100
100
  # Clang-format the C++ part of the code base automatically
101
101
  - repo: https://github.com/pre-commit/mirrors-clang-format
102
- rev: v20.1.8
102
+ rev: v21.1.2
103
103
  hooks:
104
104
  - id: clang-format
105
105
  types_or: [c++, c, cuda]
@@ -122,7 +122,7 @@ repos:
122
122
 
123
123
  # Check for spelling
124
124
  - repo: https://github.com/crate-ci/typos
125
- rev: v1.34.0
125
+ rev: v1.38.1
126
126
  hooks:
127
127
  - id: typos
128
128
 
@@ -132,19 +132,19 @@ repos:
132
132
  - id: disallow-caps
133
133
  name: Disallow improper capitalization
134
134
  language: pygrep
135
- entry: PyBind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum|MQTopt|MQTdyn
135
+ entry: PyBind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum|MQTopt|MQTref
136
136
  exclude: .pre-commit-config.yaml
137
137
 
138
138
  # Check best practices for scientific Python code
139
139
  - repo: https://github.com/scientific-python/cookie
140
- rev: 2025.05.02
140
+ rev: 2025.10.01
141
141
  hooks:
142
142
  - id: sp-repo-review
143
143
  additional_dependencies: ["repo-review[cli]"]
144
144
 
145
145
  # Check JSON schemata
146
146
  - repo: https://github.com/python-jsonschema/check-jsonschema
147
- rev: 0.33.2
147
+ rev: 0.34.1
148
148
  hooks:
149
149
  - id: check-dependabot
150
150
  - id: check-github-workflows
@@ -152,7 +152,7 @@ repos:
152
152
 
153
153
  # Check the pyproject.toml file
154
154
  - repo: https://github.com/henryiii/validate-pyproject-schema-store
155
- rev: 2025.06.23
155
+ rev: 2025.10.11
156
156
  hooks:
157
157
  - id: validate-pyproject
158
158
 
@@ -2,7 +2,6 @@ version: 2
2
2
 
3
3
  formats:
4
4
  - htmlzip
5
- # - pdf
6
5
 
7
6
  sphinx:
8
7
  configuration: docs/conf.py
@@ -12,6 +11,10 @@ build:
12
11
  tools:
13
12
  python: "3.12"
14
13
  apt_packages:
14
+ - libmlir-19-dev
15
+ - mlir-19-tools
16
+ - clang-19
17
+ - clang-tools-19
15
18
  - graphviz
16
19
  - inkscape
17
20
  jobs:
@@ -20,7 +23,7 @@ build:
20
23
  - (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viq "skip ci") || exit 183
21
24
  # Skip docs build if there are no changes related to docs
22
25
  - |
23
- if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- bindings/ include/ docs/ python/ .github/contributing* .github/support* .readthedocs.yaml;
26
+ if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- bindings/ docs/ include/ mlir/include/ python/ .github/contributing* .github/support* .readthedocs.yaml;
24
27
  then
25
28
  exit 183;
26
29
  fi
@@ -31,6 +34,9 @@ build:
31
34
  - asdf plugin add uv
32
35
  - asdf install uv latest
33
36
  - asdf global uv latest
37
+ # Build the MLIR documentation
38
+ - uvx cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_MQT_CORE_MLIR=ON -DMQT_MLIR_MIN_VERSION=19.0 -DMLIR_DIR=/usr/lib/llvm-19/lib/cmake/mlir -DLLVM_DIR=/usr/lib/llvm-19/lib/cmake/llvm
39
+ - uvx cmake --build build --target mlir-doc
34
40
  build:
35
41
  html:
36
42
  - uv run --frozen --no-dev --group docs -m sphinx -T -b html -d docs/_build/doctrees -D language=en docs $READTHEDOCS_OUTPUT/html
@@ -38,8 +44,3 @@ build:
38
44
  - uv run --frozen --no-dev --group docs -m sphinx -T -b dirhtml -d docs/_build/doctrees -D language=en docs docs/_build/dirhtml
39
45
  - mkdir -p $READTHEDOCS_OUTPUT/htmlzip
40
46
  - zip -r $READTHEDOCS_OUTPUT/htmlzip/html.zip docs/_build/dirhtml/*
41
- # pdf:
42
- # - uv run --frozen --no-dev --group docs -m sphinx -T -b latex -d docs/_build/doctrees -D language=en docs docs/_build/latex
43
- # - cd docs/_build/latex && latexmk -pdf -f -dvi- -ps- -interaction=nonstopmode -jobname=$READTHEDOCS_PROJECT
44
- # - mkdir -p $READTHEDOCS_OUTPUT/pdf
45
- # - cp docs/_build/latex/$READTHEDOCS_PROJECT.pdf $READTHEDOCS_OUTPUT/pdf/$READTHEDOCS_PROJECT.pdf
@@ -9,6 +9,69 @@ This project adheres to [Semantic Versioning], with the exception that minor rel
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [3.3.0] - 2025-10-13
13
+
14
+ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#330)._
15
+
16
+ ### Added
17
+
18
+ - 👷 Enable testing on Python 3.14 ([#1246]) ([**@denialhaag**])
19
+ - ✨ Add dedicated `PlacementPass` to MLIR transpilation routines ([#1232]) ([**@MatthiasReumann**])
20
+ - ✨ Add an NA-specific FoMaC implementation ([#1223], [#1236]) ([**@ystade**], [**@burgholzer**])
21
+ - ✨ Enable import of BarrierOp into MQTRef ([#1224]) ([**@denialhaag**])
22
+ - ✨ Add naive quantum program routing MLIR pass ([#1148]) ([**@MatthiasReumann**])
23
+ - ✨ Add QIR runtime using DD-based simulation ([#1210]) ([**@ystade**], [**@burgholzer**])
24
+ - ✨ Add SWAP reconstruction patterns to the newly-named `SwapReconstructionAndElision` MLIR pass ([#1207]) ([**@taminob**], [**@burgholzer**])
25
+ - ✨ Add two-way conversions between MQTRef and QIR ([#1091]) ([**@li-mingbao**])
26
+ - 🚸 Define custom assembly formats for MLIR operations ([#1209]) ([**@denialhaag**])
27
+ - ✨ Add support for translating `IfElseOperation`s to the `MQTRef` MLIR dialect ([#1164]) ([**@denialhaag**], [**@burgholzer**])
28
+ - ✨ Add MQT's implementation of a generic FoMaC with Python bindings ([#1150], [#1186], [#1223]) ([**@ystade**])
29
+ - ✨ Add new MLIR pass `ElidePermutations` for SWAP gate elimination ([#1151]) ([**@taminob**])
30
+ - ✨ Add new pattern to MLIR pass `GateElimination` for identity gate removal ([#1140]) ([**@taminob**])
31
+ - ✨ Add Clifford block collection pass to `CircuitOptimizer` module ([#885]) ([**jannikpflieger**], [**@burgholzer**])
32
+ - ✨ Add `isControlled()` method to the `UnitaryInterface` MLIR class ([#1157]) ([**@taminob**], [**@burgholzer**])
33
+ - 📝 Integrate generated MLIR documentation ([#1147]) ([**@denialhaag**], [**@burgholzer**])
34
+ - ✨ Add `IfElseOperation` to C++ library and Python package to support Qiskit's `IfElseOp` ([#1117]) ([**@denialhaag**], [**@burgholzer**], [**@lavanya-m-k**])
35
+ - ✨ Add `allocQubit` and `deallocQubit` operations for dynamically working with single qubits to the MLIR dialects ([#1139]) ([**@DRovara**], [**@burgholzer**])
36
+ - ✨ Add `qubit` operation for static qubit addressing to the MLIR dialects ([#1098], [#1116]) ([**@MatthiasReumann**])
37
+ - ✨ Add MQT's implementation of a QDMI Driver ([#1010]) ([**@ystade**])
38
+ - ✨ Add MQT's implementation of a QDMI Device for neutral atom-based quantum computing ([#996], [#1010], [#1100]) ([**@ystade**], [**@burgholzer**])
39
+ - ✨ Add translation from `QuantumComputation` to the `MQTRef` MLIR dialect ([#1099]) ([**@denialhaag**], [**@burgholzer**])
40
+ - ✨ Add `reset` operations to the MLIR dialects ([#1106]) ([**@DRovara**])
41
+
42
+ ### Changed
43
+
44
+ - ♻️ Replace custom `AllocOp`, `DeallocOp`, `ExtractOp`, and `InsertOp` with MLIR-native `memref` operations ([#1211]) ([**@denialhaag**])
45
+ - 🚚 Rename MLIR pass `ElidePermutations` to `SwapReconstructionAndElision` ([#1207]) ([**@taminob**])
46
+ - ⬆️ Require LLVM 21 for building the MLIR library ([#1180]) ([**@denialhaag**])
47
+ - ⬆️ Update to version 21 of `clang-tidy` ([#1180]) ([**@denialhaag**])
48
+ - 🚚 Rename MLIR pass `CancelConsecutiveInverses` to `GateElimination` ([#1140]) ([**@taminob**])
49
+ - 🚚 Rename `xxminusyy` to `xx_minus_yy` and `xxplusyy` to `xx_plus_yy` in MLIR dialects ([#1071]) ([**@BertiFlorea**], [**@denialhaag**])
50
+ - 🚸 Add custom assembly format for operations in the MLIR dialects ([#1139]) ([**@burgholzer**])
51
+ - 🚸 Enable `InferTypeOpInterface` in the MLIR dialects to reduce explicit type information ([#1139]) ([**@burgholzer**])
52
+ - 🚚 Rename `check-quantum-opt` test target to `mqt-core-mlir-lit-test` ([#1139]) ([**@burgholzer**])
53
+ - ♻️ Update the `measure` operations in the MLIR dialects to no longer support more than one qubit being measured at once ([#1106]) ([**@DRovara**])
54
+ - 🚚 Rename `XXminusYY` to `XXminusYYOp` and `XXplusYY` to `XXplusYYOp` in MLIR dialects ([#1099]) ([**@denialhaag**])
55
+ - 🚚 Rename `MQTDyn` MLIR dialect to `MQTRef` ([#1098]) ([**@MatthiasReumann**])
56
+
57
+ ### Removed
58
+
59
+ - 🔥 Drop support for Python 3.9 ([#1181]) ([**@denialhaag**])
60
+ - 🔥 Remove `ClassicControlledOperation` from C++ library and Python package ([#1117]) ([**@denialhaag**])
61
+
62
+ ### Fixed
63
+
64
+ - 🐛 Fix CMake installation to make `find_package(mqt-core CONFIG)` succeed ([#1247]) ([**@burgholzer**], [**@denialhaag**])
65
+ - 🏁 Fix stack overflows in OpenQASM layout parsing on Windows for large circuits ([#1235]) ([**@burgholzer**])
66
+ - ✨ Add missing `StandardOperation` conversions in MLIR roundtrip pass ([#1071]) ([**@BertiFlorea**], [**@denialhaag**])
67
+
68
+ ## [3.2.1] - 2025-08-01
69
+
70
+ ### Fixed
71
+
72
+ - 🐛 Fix usage of `std::accumulate` by changing accumulator parameter from reference to value ([#1089]) ([**@denialhaag**])
73
+ - 🐛 Fix erroneous `contains` check in DD package ([#1088]) ([**@denialhaag**])
74
+
12
75
  ## [3.2.0] - 2025-07-31
13
76
 
14
77
  ### Added
@@ -129,7 +192,9 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
129
192
 
130
193
  <!-- Version links -->
131
194
 
132
- [unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.2.0...HEAD
195
+ [unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.3.0...HEAD
196
+ [3.3.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.3.0
197
+ [3.2.1]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.2.1
133
198
  [3.2.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.2.0
134
199
  [3.1.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.1.0
135
200
  [3.0.2]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.0.2
@@ -139,13 +204,47 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
139
204
 
140
205
  <!-- PR links -->
141
206
 
142
- [#1075]: https://github.com/munich-quantum-toolkit/core/pull/1076
207
+ [#1247]: https://github.com/munich-quantum-toolkit/core/pull/1247
208
+ [#1246]: https://github.com/munich-quantum-toolkit/core/pull/1246
209
+ [#1236]: https://github.com/munich-quantum-toolkit/core/pull/1236
210
+ [#1235]: https://github.com/munich-quantum-toolkit/core/pull/1235
211
+ [#1232]: https://github.com/munich-quantum-toolkit/core/pull/1232
212
+ [#1224]: https://github.com/munich-quantum-toolkit/core/pull/1224
213
+ [#1223]: https://github.com/munich-quantum-toolkit/core/pull/1223
214
+ [#1211]: https://github.com/munich-quantum-toolkit/core/pull/1211
215
+ [#1210]: https://github.com/munich-quantum-toolkit/core/pull/1210
216
+ [#1207]: https://github.com/munich-quantum-toolkit/core/pull/1207
217
+ [#1209]: https://github.com/munich-quantum-toolkit/core/pull/1209
218
+ [#1186]: https://github.com/munich-quantum-toolkit/core/pull/1186
219
+ [#1181]: https://github.com/munich-quantum-toolkit/core/pull/1181
220
+ [#1180]: https://github.com/munich-quantum-toolkit/core/pull/1180
221
+ [#1165]: https://github.com/munich-quantum-toolkit/core/pull/1165
222
+ [#1164]: https://github.com/munich-quantum-toolkit/core/pull/1164
223
+ [#1157]: https://github.com/munich-quantum-toolkit/core/pull/1157
224
+ [#1151]: https://github.com/munich-quantum-toolkit/core/pull/1151
225
+ [#1148]: https://github.com/munich-quantum-toolkit/core/pull/1148
226
+ [#1147]: https://github.com/munich-quantum-toolkit/core/pull/1147
227
+ [#1140]: https://github.com/munich-quantum-toolkit/core/pull/1140
228
+ [#1139]: https://github.com/munich-quantum-toolkit/core/pull/1139
229
+ [#1117]: https://github.com/munich-quantum-toolkit/core/pull/1117
230
+ [#1116]: https://github.com/munich-quantum-toolkit/core/pull/1116
231
+ [#1106]: https://github.com/munich-quantum-toolkit/core/pull/1106
232
+ [#1100]: https://github.com/munich-quantum-toolkit/core/pull/1100
233
+ [#1099]: https://github.com/munich-quantum-toolkit/core/pull/1099
234
+ [#1098]: https://github.com/munich-quantum-toolkit/core/pull/1098
235
+ [#1091]: https://github.com/munich-quantum-toolkit/core/pull/1091
236
+ [#1089]: https://github.com/munich-quantum-toolkit/core/pull/1089
237
+ [#1088]: https://github.com/munich-quantum-toolkit/core/pull/1088
238
+ [#1076]: https://github.com/munich-quantum-toolkit/core/pull/1076
143
239
  [#1075]: https://github.com/munich-quantum-toolkit/core/pull/1075
240
+ [#1071]: https://github.com/munich-quantum-toolkit/core/pull/1071
144
241
  [#1047]: https://github.com/munich-quantum-toolkit/core/pull/1047
145
242
  [#1042]: https://github.com/munich-quantum-toolkit/core/pull/1042
146
243
  [#1020]: https://github.com/munich-quantum-toolkit/core/pull/1020
147
244
  [#1019]: https://github.com/munich-quantum-toolkit/core/pull/1019
245
+ [#1010]: https://github.com/munich-quantum-toolkit/core/pull/1010
148
246
  [#1001]: https://github.com/munich-quantum-toolkit/core/pull/1001
247
+ [#996]: https://github.com/munich-quantum-toolkit/core/pull/996
149
248
  [#984]: https://github.com/munich-quantum-toolkit/core/pull/984
150
249
  [#982]: https://github.com/munich-quantum-toolkit/core/pull/982
151
250
  [#975]: https://github.com/munich-quantum-toolkit/core/pull/975
@@ -169,6 +268,7 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
169
268
  [#893]: https://github.com/munich-quantum-toolkit/core/pull/893
170
269
  [#892]: https://github.com/munich-quantum-toolkit/core/pull/892
171
270
  [#886]: https://github.com/munich-quantum-toolkit/core/pull/886
271
+ [#885]: https://github.com/munich-quantum-toolkit/core/pull/885
172
272
  [#883]: https://github.com/munich-quantum-toolkit/core/pull/883
173
273
  [#882]: https://github.com/munich-quantum-toolkit/core/pull/882
174
274
  [#879]: https://github.com/munich-quantum-toolkit/core/pull/879
@@ -216,6 +316,9 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
216
316
  [**@denialhaag**]: https://github.com/denialhaag
217
317
  [**q-inho**]: https://github.com/q-inho
218
318
  [**@li-mingbao**]: https://github.com/li-mingbao
319
+ [**@lavanya-m-k**]: https://github.com/lavanya-m-k
320
+ [**@taminob**]: https://github.com/taminob
321
+ [**@jannikpflieger**]: https://github.com/jannikpflieger
219
322
 
220
323
  <!-- General links -->
221
324
 
@@ -47,7 +47,7 @@ if(BUILD_MQT_CORE_BINDINGS)
47
47
  endif()
48
48
 
49
49
  # top-level call to find Python
50
- find_package(Python 3.9 REQUIRED COMPONENTS Interpreter Development.Module)
50
+ find_package(Python 3.10 REQUIRED COMPONENTS Interpreter Development.Module)
51
51
  endif()
52
52
 
53
53
  # check if this is the master project or used via add_subdirectory
@@ -59,7 +59,7 @@ endif()
59
59
 
60
60
  option(MQT_CORE_INSTALL "Generate installation instructions for MQT Core"
61
61
  ${MQT_CORE_MASTER_PROJECT})
62
- option(BUILD_MQT_CORE_TESTS "Also build tests for the MQT Core project" ${MQT_CORE_MASTER_PROJECT})
62
+ option(BUILD_MQT_CORE_TESTS "Build tests for the MQT Core project" ${MQT_CORE_MASTER_PROJECT})
63
63
  option(BUILD_MQT_CORE_SHARED_LIBS "Build MQT Core libraries as shared libraries"
64
64
  ${BUILD_SHARED_LIBS})
65
65
 
@@ -84,13 +84,21 @@ if(MQT_CORE_INSTALL)
84
84
  else()
85
85
  set(BASEPOINT $ORIGIN)
86
86
  endif()
87
- set(CMAKE_INSTALL_RPATH ${BASEPOINT} ${BASEPOINT}/${CMAKE_INSTALL_LIBDIR})
87
+ set(CMAKE_INSTALL_RPATH ${BASEPOINT} ${BASEPOINT}/${CMAKE_INSTALL_LIBDIR}
88
+ ${BASEPOINT}/../${CMAKE_INSTALL_LIBDIR})
88
89
  set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
89
90
  set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
90
91
  endif()
91
92
 
92
93
  set(MQT_CORE_TARGET_NAME "mqt-core")
93
94
 
95
+ option(BUILD_MQT_CORE_MLIR "Build the MLIR submodule of the MQT Core project" OFF)
96
+ if(BUILD_MQT_CORE_MLIR)
97
+ include(SetupMLIR)
98
+ endif()
99
+ cmake_dependent_option(BUILD_MQT_CORE_QIR_RUNNER "Build the QIR runner of the MQT Core project" ON
100
+ "BUILD_MQT_CORE_MLIR" OFF)
101
+
94
102
  # add main library code
95
103
  add_subdirectory(src)
96
104
 
@@ -111,10 +119,20 @@ if(BUILD_MQT_CORE_BENCHMARKS)
111
119
  add_subdirectory(eval)
112
120
  endif()
113
121
 
114
- option(BUILD_MQT_CORE_MLIR "Build the MLIR submodule of the MQT Core project" OFF)
115
122
  if(BUILD_MQT_CORE_MLIR)
116
- include(SetupMLIR)
117
123
  add_subdirectory(mlir)
124
+
125
+ # copy generated MLIR documentation
126
+ add_custom_command(
127
+ TARGET mlir-doc
128
+ POST_BUILD
129
+ COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_BINARY_DIR}/docs/
130
+ ${CMAKE_CURRENT_SOURCE_DIR}/docs/mlir/
131
+ COMMAND ${CMAKE_COMMAND} -D DOCS_DIR:PATH=${CMAKE_CURRENT_SOURCE_DIR}/docs/mlir -P
132
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CleanMLIRDocs.cmake
133
+ COMMENT "Copying and cleaning up generated MLIR documentation"
134
+ VERBATIM)
135
+
118
136
  endif()
119
137
 
120
138
  if(MQT_CORE_MASTER_PROJECT)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mqt-core
3
- Version: 3.2.0
3
+ Version: 3.3.0
4
4
  Summary: The Backbone of the Munich Quantum Toolkit
5
5
  Keywords: MQT,quantum-computing,design-automation,decision-diagrams,zx-calculus
6
6
  Author-Email: Lukas Burgholzer <burgholzer@me.com>
@@ -15,7 +15,6 @@ Classifier: Operating System :: POSIX :: Linux
15
15
  Classifier: Programming Language :: C++
16
16
  Classifier: Programming Language :: Python
17
17
  Classifier: Programming Language :: Python :: 3 :: Only
18
- Classifier: Programming Language :: Python :: 3.9
19
18
  Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Classifier: Programming Language :: Python :: 3.12
@@ -29,9 +28,11 @@ Project-URL: Documentation, https://mqt.readthedocs.io/projects/core
29
28
  Project-URL: Issues, https://github.com/munich-quantum-toolkit/core/issues
30
29
  Project-URL: Discussions, https://github.com/munich-quantum-toolkit/core/discussions
31
30
  Project-URL: PyPI, https://pypi.org/project/mqt-core/
32
- Requires-Python: >=3.9
31
+ Requires-Python: >=3.10
33
32
  Provides-Extra: evaluation
34
33
  Requires-Dist: pandas[output-formatting]>=2.1.2; extra == "evaluation"
34
+ Requires-Dist: pandas[output-formatting]>=2.2.3; python_version >= "3.13" and extra == "evaluation"
35
+ Requires-Dist: pandas[output-formatting]>=2.3.3; python_version >= "3.14" and extra == "evaluation"
35
36
  Provides-Extra: qiskit
36
37
  Requires-Dist: qiskit[qasm3-import]>=1.0.0; extra == "qiskit"
37
38
  Description-Content-Type: text/markdown
@@ -47,10 +48,10 @@ Description-Content-Type: text/markdown
47
48
 
48
49
  <p align="center">
49
50
  <a href="https://mqt.readthedocs.io">
50
- <picture>
51
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-dark.svg" width="60%">
52
- <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-light.svg" width="60%" alt="MQT Logo">
53
- </picture>
51
+ <picture>
52
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-dark.svg" width="60%">
53
+ <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-light.svg" width="60%" alt="MQT Logo">
54
+ </picture>
54
55
  </a>
55
56
  </p>
56
57
 
@@ -69,6 +70,7 @@ MQT Core is an open-source C++20 and Python library for quantum computing that f
69
70
  - Fully fledged intermediate representation (IR) for quantum computations.
70
71
  - A state-of-the-art decision diagram (DD) package for quantum computing.
71
72
  - A dedicated ZX-diagram package for working with the ZX-calculus.
73
+ - A QIR runtime based on the decision diagram package.
72
74
 
73
75
  If you have any questions, feel free to create a [discussion](https://github.com/munich-quantum-toolkit/core/discussions) or an [issue](https://github.com/munich-quantum-toolkit/core/issues) on [GitHub](https://github.com/munich-quantum-toolkit/core).
74
76
 
@@ -79,22 +81,40 @@ Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://w
79
81
 
80
82
  <p align="center">
81
83
  <picture>
82
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-dark.svg" width="90%">
83
- <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-light.svg" width="90%" alt="MQT Partner Logos">
84
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-dark.svg" width="90%">
85
+ <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-logo-banner-light.svg" width="90%" alt="MQT Partner Logos">
84
86
  </picture>
85
87
  </p>
86
88
 
87
89
  Thank you to all the contributors who have helped make MQT Core a reality!
88
90
 
89
91
  <p align="center">
90
- <a href="https://github.com/munich-quantum-toolkit/core/graphs/contributors">
91
- <img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/core" />
92
- </a>
92
+ <a href="https://github.com/munich-quantum-toolkit/core/graphs/contributors">
93
+ <img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/core" alt="Contributors to munich-quantum-toolkit/core" />
94
+ </a>
95
+ </p>
96
+
97
+ The MQT will remain free, open-source, and permissively licensed—now and in the future.
98
+ We are firmly committed to keeping it open and actively maintained for the quantum computing community.
99
+
100
+ To support this endeavor, please consider:
101
+
102
+ - Starring and sharing our repositories: https://github.com/munich-quantum-toolkit
103
+ - Contributing code, documentation, tests, or examples via issues and pull requests
104
+ - Citing the MQT in your publications (see [Cite This](#cite-this))
105
+ - Citing our research in your publications (see [References](https://mqt.readthedocs.io/projects/core/en/latest/references.html))
106
+ - Using the MQT in research and teaching, and sharing feedback and use cases
107
+ - Sponsoring us on GitHub: https://github.com/sponsors/munich-quantum-toolkit
108
+
109
+ <p align="center">
110
+ <a href="https://github.com/sponsors/munich-quantum-toolkit">
111
+ <img width=20% src="https://img.shields.io/badge/Sponsor-white?style=for-the-badge&logo=githubsponsors&labelColor=black&color=blue" alt="Sponsor the MQT" />
112
+ </a>
93
113
  </p>
94
114
 
95
115
  ## Getting Started
96
116
 
97
- `mqt.core` is available via [PyPI](https://pypi.org/project/mqt.core/) for all major operating systems and supports Python 3.9 to 3.14.
117
+ `mqt.core` is available via [PyPI](https://pypi.org/project/mqt.core/).
98
118
 
99
119
  ```console
100
120
  (.venv) $ pip install mqt.core
@@ -117,15 +137,17 @@ print(qc)
117
137
 
118
138
  ## System Requirements
119
139
 
120
- Building (and running) is continuously tested under Linux, MacOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/runner-images).
121
- However, the implementation should be compatible with any current C++ compiler supporting C++20 and a minimum CMake version of 3.24.
140
+ Building the project requires a C++ compiler with support for C++20 and CMake 3.24 or newer.
141
+ For details on how to build the project, please refer to the [documentation](https://mqt.readthedocs.io/projects/core).
142
+ Building (and running) is continuously tested under Linux, macOS, and Windows using the [latest available system versions for GitHub Actions](https://github.com/actions/runner-images).
143
+ MQT Core is compatible with all [officially supported Python versions](https://devguide.python.org/versions/).
122
144
 
123
- MQT Core relies on some external dependencies:
145
+ The project relies on some external dependencies:
124
146
 
125
- - [nlohmann/json](https://github.com/nlohmann/json): A JSON library for modern C++.
126
147
  - [boost/multiprecision](https://github.com/boostorg/multiprecision): A library for multiprecision arithmetic (used in the ZX package).
148
+ - [nlohmann/json](https://github.com/nlohmann/json): A JSON library for modern C++.
149
+ - [pybind/pybind11_json](https://github.com/pybind/pybind11_json): A library for using `nlohmann::json` with `pybind11` (only used for creating the Python bindings).
127
150
  - [google/googletest](https://github.com/google/googletest): A testing framework for C++ (only used in tests).
128
- - [pybind/pybind11_json](https://github.com/pybind/pybind11_json): Using nlohmann::json with pybind11 (only used for creating the Python bindings).
129
151
 
130
152
  CMake will automatically look for installed versions of these libraries. If it does not find them, they will be fetched automatically at configure time via the [FetchContent](https://cmake.org/cmake/help/latest/module/FetchContent.html) module (check out the documentation for more information on how to customize this behavior).
131
153
 
@@ -135,20 +157,42 @@ If you want to use the ZX library, it is recommended (although not strictly nece
135
157
 
136
158
  ## Cite This
137
159
 
138
- If you want to cite MQT Core, please use the following BibTeX entry:
160
+ Please cite the work that best fits your use case.
161
+
162
+ ### MQT Core (the tool)
163
+
164
+ When citing the software itself or results produced with it, cite the MQT Core paper:
139
165
 
140
166
  ```bibtex
141
167
  @article{burgholzer2025MQTCore,
142
- title = {{{MQT Core}}: {{The}} Backbone of the {{Munich Quantum Toolkit (MQT)}}},
143
- author = {Lukas Burgholzer and Yannick Stade and Tom Peham and Robert Wille},
144
- year = {2025},
145
- journal = {Journal of Open Source Software},
146
- publisher = {The Open Journal},
147
- volume = {10},
148
- number = {108},
149
- pages = {7478},
150
- doi = {10.21105/joss.07478},
151
- url = {https://doi.org/10.21105/joss.07478},
168
+ title = {{{MQT Core}}: {{The}} Backbone of the {{Munich Quantum Toolkit (MQT)}}},
169
+ author = {Burgholzer, Lukas and Stade, Yannick and Peham, Tom and Wille, Robert},
170
+ year = 2025,
171
+ journal = {Journal of Open Source Software},
172
+ publisher = {The Open Journal},
173
+ volume = 10,
174
+ number = 108,
175
+ pages = 7478,
176
+ doi = {10.21105/joss.07478},
177
+ url = {https://doi.org/10.21105/joss.07478}
178
+ }
179
+ ```
180
+
181
+ ### The Munich Quantum Toolkit (the project)
182
+
183
+ When discussing the overall MQT project or its ecosystem, cite the MQT Handbook:
184
+
185
+ ```bibtex
186
+ @inproceedings{mqt,
187
+ title = {The {{MQT}} Handbook: {{A}} Summary of Design Automation Tools and Software for Quantum Computing},
188
+ shorttitle = {{The MQT Handbook}},
189
+ author = {Wille, Robert and Berent, Lucas and Forster, Tobias and Kunasaikaran, Jagatheesan and Mato, Kevin and Peham, Tom and Quetschlich, Nils and Rovara, Damian and Sander, Aaron and Schmid, Ludwig and Schoenberger, Daniel and Stade, Yannick and Burgholzer, Lukas},
190
+ year = 2024,
191
+ booktitle = {IEEE International Conference on Quantum Software (QSW)},
192
+ doi = {10.1109/QSW62656.2024.00013},
193
+ eprint = {2405.17543},
194
+ eprinttype = {arxiv},
195
+ addendum = {A live version of this document is available at \url{https://mqt.readthedocs.io}}
152
196
  }
153
197
  ```
154
198
 
@@ -156,10 +200,7 @@ If you want to cite MQT Core, please use the following BibTeX entry:
156
200
 
157
201
  ## Acknowledgements
158
202
 
159
- The Munich Quantum Toolkit has been supported by the European
160
- Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement
161
- No. 101001318), the Bavarian State Ministry for Science and Arts through the Distinguished Professorship Program, as well as the
162
- Munich Quantum Valley, which is supported by the Bavarian state government with funds from the Hightech Agenda Bayern Plus.
203
+ The Munich Quantum Toolkit has been supported by the European Research Council (ERC) under the European Union's Horizon 2020 research and innovation program (grant agreement No. 101001318), the Bavarian State Ministry for Science and Arts through the Distinguished Professorship Program, as well as the Munich Quantum Valley, which is supported by the Bavarian state government with funds from the Hightech Agenda Bayern Plus.
163
204
 
164
205
  <p align="center">
165
206
  <picture>