mqt-core 3.2.1__tar.gz → 3.3.1__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.1 → mqt_core-3.3.1}/.clang-tidy +1 -0
  2. {mqt_core-3.2.1 → mqt_core-3.3.1}/.license-tools-config.json +3 -1
  3. {mqt_core-3.2.1 → mqt_core-3.3.1}/.pre-commit-config.yaml +14 -14
  4. {mqt_core-3.2.1 → mqt_core-3.3.1}/.readthedocs.yaml +8 -7
  5. {mqt_core-3.2.1 → mqt_core-3.3.1}/CHANGELOG.md +104 -5
  6. {mqt_core-3.2.1 → mqt_core-3.3.1}/CMakeLists.txt +23 -5
  7. {mqt_core-3.2.1 → mqt_core-3.3.1}/PKG-INFO +74 -33
  8. {mqt_core-3.2.1 → mqt_core-3.3.1}/README.md +70 -30
  9. {mqt_core-3.2.1 → mqt_core-3.3.1}/UPGRADING.md +34 -1
  10. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/CMakeLists.txt +6 -0
  11. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/dd/CMakeLists.txt +1 -1
  12. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/dd/register_dd_package.cpp +4 -6
  13. mqt_core-3.3.1/bindings/fomac/CMakeLists.txt +26 -0
  14. mqt_core-3.3.1/bindings/fomac/fomac.cpp +134 -0
  15. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/CMakeLists.txt +1 -1
  16. mqt_core-3.3.1/bindings/ir/operations/register_if_else_operation.cpp +116 -0
  17. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_operation.cpp +1 -2
  18. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_optype.cpp +1 -1
  19. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_operations.cpp +2 -2
  20. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_quantum_computation.cpp +63 -31
  21. mqt_core-3.3.1/bindings/na/CMakeLists.txt +18 -0
  22. mqt_core-3.3.1/bindings/na/fomac/CMakeLists.txt +26 -0
  23. mqt_core-3.3.1/bindings/na/fomac/fomac.cpp +112 -0
  24. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/AddMQTCoreLibrary.cmake +13 -0
  25. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/AddMQTPythonBinding.cmake +3 -0
  26. mqt_core-3.3.1/cmake/Cache.cmake +33 -0
  27. mqt_core-3.3.1/cmake/CleanMLIRDocs.cmake +27 -0
  28. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/ExternalDependencies.cmake +49 -0
  29. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/PackageAddTest.cmake +6 -0
  30. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/SetupMLIR.cmake +3 -1
  31. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/StandardProjectSettings.cmake +1 -1
  32. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/mqt-core-config.cmake.in +3 -0
  33. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +13 -0
  34. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/CachedEdge.hpp +7 -0
  35. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Operations.hpp +12 -14
  36. mqt_core-3.3.1/include/mqt-core/fomac/FoMaC.hpp +568 -0
  37. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/QuantumComputation.hpp +29 -28
  38. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
  39. mqt_core-3.3.1/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
  40. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/OpType.hpp +3 -0
  41. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/OpType.inc +2 -2
  42. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/Operation.hpp +3 -1
  43. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/StandardOperation.hpp +2 -0
  44. mqt_core-3.3.1/include/mqt-core/na/device/Device.hpp +410 -0
  45. mqt_core-3.3.1/include/mqt-core/na/device/Generator.hpp +447 -0
  46. mqt_core-3.3.1/include/mqt-core/na/fomac/Device.hpp +169 -0
  47. mqt_core-3.3.1/include/mqt-core/qdmi/Driver.hpp +431 -0
  48. mqt_core-3.3.1/include/mqt-core/qir/runtime/QIR.h +174 -0
  49. mqt_core-3.3.1/include/mqt-core/qir/runtime/Runtime.hpp +360 -0
  50. mqt_core-3.3.1/json/na/device.json +148 -0
  51. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/CMakeLists.txt +4 -1
  52. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Conversion/CMakeLists.txt +4 -2
  53. mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTOptToMQTRef/CMakeLists.txt +13 -0
  54. mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTDynToMQTOpt/MQTDynToMQTOpt.h → mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTOptToMQTRef/MQTOptToMQTRef.h +2 -2
  55. mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTOptToMQTDyn/MQTOptToMQTDyn.td → mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTOptToMQTRef/MQTOptToMQTRef.td +8 -7
  56. {mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTDynToMQTOpt → mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToMQTOpt}/CMakeLists.txt +4 -4
  57. mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTOptToMQTDyn/MQTOptToMQTDyn.h → mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToMQTOpt/MQTRefToMQTOpt.h +2 -2
  58. mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTDynToMQTOpt/MQTDynToMQTOpt.td → mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToMQTOpt/MQTRefToMQTOpt.td +7 -6
  59. mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToQIR/CMakeLists.txt +13 -0
  60. mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToQIR/MQTRefToQIR.h +23 -0
  61. mqt_core-3.3.1/mlir/include/mlir/Conversion/MQTRefToQIR/MQTRefToQIR.td +66 -0
  62. mqt_core-3.3.1/mlir/include/mlir/Conversion/QIRToMQTRef/CMakeLists.txt +13 -0
  63. mqt_core-3.3.1/mlir/include/mlir/Conversion/QIRToMQTRef/QIRToMQTRef.h +23 -0
  64. mqt_core-3.3.1/mlir/include/mlir/Conversion/QIRToMQTRef/QIRToMQTRef.td +51 -0
  65. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/CMakeLists.txt +1 -1
  66. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/Common/IR/CommonTraits.h +1 -19
  67. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/Common/IR/CommonTraits.td +0 -4
  68. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/Common/IR/StdOps.td.inc +11 -9
  69. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/IR/CMakeLists.txt +3 -2
  70. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptDialect.h +24 -3
  71. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptInterfaces.td +18 -0
  72. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptOps.td +73 -95
  73. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/Transforms/CMakeLists.txt +1 -1
  74. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.h +6 -1
  75. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.td +122 -0
  76. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Architecture.h +93 -0
  77. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Common.h +39 -0
  78. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Layout.h +144 -0
  79. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Transpilation/Stack.h +87 -0
  80. {mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTOpt → mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef}/CMakeLists.txt +0 -1
  81. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef/IR/CMakeLists.txt +17 -0
  82. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynDialect.h → mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefDialect.h +29 -5
  83. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynInterfaces.td → mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefInterfaces.td +23 -5
  84. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef/IR/MQTRefOps.td +200 -0
  85. mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTRef/Translation/ImportQuantumComputation.h +22 -0
  86. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/tools/quantum-opt/CMakeLists.txt +4 -3
  87. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/tools/quantum-opt/quantum-opt.cpp +20 -8
  88. mqt_core-3.3.1/mlir/unittests/CMakeLists.txt +9 -0
  89. mqt_core-3.3.1/mlir/unittests/translation/CMakeLists.txt +21 -0
  90. mqt_core-3.3.1/mlir/unittests/translation/test_translation.cpp +1010 -0
  91. {mqt_core-3.2.1 → mqt_core-3.3.1}/noxfile.py +30 -18
  92. {mqt_core-3.2.1 → mqt_core-3.3.1}/pyproject.toml +28 -31
  93. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/_commands.py +2 -2
  94. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/_version.py +16 -3
  95. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/dd.pyi +5 -7
  96. mqt_core-3.3.1/python/mqt/core/fomac.pyi +125 -0
  97. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/ir/__init__.pyi +83 -45
  98. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/ir/operations.pyi +40 -27
  99. mqt_core-3.3.1/python/mqt/core/na/__init__.py +12 -0
  100. mqt_core-3.3.1/python/mqt/core/na/fomac.pyi +117 -0
  101. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/plugins/qiskit/mqt_to_qiskit.py +75 -11
  102. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/plugins/qiskit/qiskit_to_mqt.py +108 -5
  103. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/CMakeLists.txt +9 -0
  104. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/CMakeLists.txt +1 -8
  105. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/QFT.cpp +4 -4
  106. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/QPE.cpp +3 -3
  107. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/circuit_optimizer/CMakeLists.txt +1 -11
  108. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/circuit_optimizer/CircuitOptimizer.cpp +355 -64
  109. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/datastructures/CMakeLists.txt +1 -11
  110. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/CMakeLists.txt +1 -11
  111. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/GateMatrixDefinitions.cpp +14 -13
  112. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Operations.cpp +19 -13
  113. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Simulation.cpp +6 -9
  114. mqt_core-3.3.1/src/fomac/CMakeLists.txt +32 -0
  115. mqt_core-3.3.1/src/fomac/FoMaC.cpp +423 -0
  116. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/CMakeLists.txt +0 -13
  117. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/QuantumComputation.cpp +66 -48
  118. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/CompoundOperation.cpp +5 -0
  119. mqt_core-3.3.1/src/ir/operations/IfElseOperation.cpp +317 -0
  120. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/OpType.cpp +3 -1
  121. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/Operation.cpp +4 -17
  122. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/StandardOperation.cpp +23 -0
  123. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/CMakeLists.txt +9 -13
  124. mqt_core-3.3.1/src/na/device/App.cpp +447 -0
  125. mqt_core-3.3.1/src/na/device/CMakeLists.txt +206 -0
  126. mqt_core-3.3.1/src/na/device/Device.cpp +726 -0
  127. mqt_core-3.3.1/src/na/device/DynDevice.cpp +155 -0
  128. mqt_core-3.3.1/src/na/device/Generator.cpp +511 -0
  129. mqt_core-3.3.1/src/na/fomac/CMakeLists.txt +35 -0
  130. mqt_core-3.3.1/src/na/fomac/Device.cpp +562 -0
  131. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/CMakeLists.txt +1 -11
  132. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Importer.cpp +23 -28
  133. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Scanner.cpp +21 -10
  134. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Statement.cpp +1 -1
  135. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Token.cpp +2 -6
  136. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/passes/ConstEvalPass.cpp +1 -2
  137. mqt_core-3.3.1/src/qdmi/CMakeLists.txt +32 -0
  138. mqt_core-3.3.1/src/qdmi/Driver.cpp +503 -0
  139. mqt_core-3.3.1/src/qir/CMakeLists.txt +13 -0
  140. mqt_core-3.3.1/src/qir/runner/CMakeLists.txt +36 -0
  141. mqt_core-3.3.1/src/qir/runner/Runner.cpp +414 -0
  142. mqt_core-3.3.1/src/qir/runtime/CMakeLists.txt +25 -0
  143. mqt_core-3.3.1/src/qir/runtime/QIR.cpp +381 -0
  144. mqt_core-3.3.1/src/qir/runtime/Runtime.cpp +165 -0
  145. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/CMakeLists.txt +1 -11
  146. mqt_core-3.3.1/uv.lock +3306 -0
  147. mqt_core-3.2.1/bindings/ir/operations/register_classic_controlled_operation.cpp +0 -95
  148. mqt_core-3.2.1/cmake/Cache.cmake +0 -32
  149. mqt_core-3.2.1/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -156
  150. mqt_core-3.2.1/mlir/include/mlir/Conversion/MQTOptToMQTDyn/CMakeLists.txt +0 -13
  151. mqt_core-3.2.1/mlir/include/mlir/Dialect/Common/Compat.h +0 -41
  152. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/IR/CMakeLists.txt +0 -16
  153. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynOps.td +0 -201
  154. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/Transforms/CMakeLists.txt +0 -12
  155. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.h +0 -36
  156. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.td +0 -24
  157. mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.td +0 -56
  158. mqt_core-3.2.1/src/ir/operations/ClassicControlledOperation.cpp +0 -173
  159. mqt_core-3.2.1/uv.lock +0 -3740
  160. {mqt_core-3.2.1 → mqt_core-3.3.1}/.clang-format +0 -0
  161. {mqt_core-3.2.1 → mqt_core-3.3.1}/.cmake-format.yaml +0 -0
  162. {mqt_core-3.2.1 → mqt_core-3.3.1}/.editorconfig +0 -0
  163. {mqt_core-3.2.1 → mqt_core-3.3.1}/.git_archival.txt +0 -0
  164. {mqt_core-3.2.1 → mqt_core-3.3.1}/.gitattributes +0 -0
  165. {mqt_core-3.2.1 → mqt_core-3.3.1}/.gitignore +0 -0
  166. {mqt_core-3.2.1 → mqt_core-3.3.1}/.python_version +0 -0
  167. {mqt_core-3.2.1 → mqt_core-3.3.1}/CITATION.cff +0 -0
  168. {mqt_core-3.2.1 → mqt_core-3.3.1}/LICENSE.md +0 -0
  169. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/dd/register_dd.cpp +0 -0
  170. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/dd/register_matrix_dds.cpp +0 -0
  171. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/dd/register_vector_dds.cpp +0 -0
  172. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_compound_operation.cpp +0 -0
  173. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_control.cpp +0 -0
  174. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_non_unitary_operation.cpp +0 -0
  175. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_standard_operation.cpp +0 -0
  176. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/operations/register_symbolic_operation.cpp +0 -0
  177. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_ir.cpp +0 -0
  178. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_permutation.cpp +0 -0
  179. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_registers.cpp +0 -0
  180. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/register_symbolic.cpp +0 -0
  181. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/symbolic/register_expression.cpp +0 -0
  182. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/symbolic/register_term.cpp +0 -0
  183. {mqt_core-3.2.1 → mqt_core-3.3.1}/bindings/ir/symbolic/register_variable.cpp +0 -0
  184. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/CompilerOptions.cmake +0 -0
  185. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/CompilerWarnings.cmake +0 -0
  186. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/FindGMP.cmake +0 -0
  187. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/GetVersion.cmake +0 -0
  188. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/PreventInSourceBuilds.cmake +0 -0
  189. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/Sanitizers.cmake +0 -0
  190. {mqt_core-3.2.1 → mqt_core-3.3.1}/cmake/cmake_uninstall.cmake.in +0 -0
  191. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/BernsteinVazirani.hpp +0 -0
  192. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/GHZState.hpp +0 -0
  193. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/Grover.hpp +0 -0
  194. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/QFT.hpp +0 -0
  195. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/QPE.hpp +0 -0
  196. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +0 -0
  197. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/StatePreparation.hpp +0 -0
  198. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/algorithms/WState.hpp +0 -0
  199. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +0 -0
  200. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/DirectedGraph.hpp +0 -0
  201. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/DisjointSet.hpp +0 -0
  202. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/Layer.hpp +0 -0
  203. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/SymmetricMatrix.hpp +0 -0
  204. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/datastructures/UndirectedGraph.hpp +0 -0
  205. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Approximation.hpp +0 -0
  206. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Complex.hpp +0 -0
  207. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/ComplexNumbers.hpp +0 -0
  208. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/ComplexValue.hpp +0 -0
  209. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/ComputeTable.hpp +0 -0
  210. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/DDDefinitions.hpp +0 -0
  211. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/DDpackageConfig.hpp +0 -0
  212. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/DensityNoiseTable.hpp +0 -0
  213. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Edge.hpp +0 -0
  214. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Export.hpp +0 -0
  215. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/FunctionalityConstruction.hpp +0 -0
  216. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/GateMatrixDefinitions.hpp +0 -0
  217. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/LinkedListBase.hpp +0 -0
  218. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/MemoryManager.hpp +0 -0
  219. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Node.hpp +0 -0
  220. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/NoiseFunctionality.hpp +0 -0
  221. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Package.hpp +0 -0
  222. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Package_fwd.hpp +0 -0
  223. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/RealNumber.hpp +0 -0
  224. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/RealNumberUniqueTable.hpp +0 -0
  225. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/Simulation.hpp +0 -0
  226. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/StateGeneration.hpp +0 -0
  227. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +0 -0
  228. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/UnaryComputeTable.hpp +0 -0
  229. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/UniqueTable.hpp +0 -0
  230. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +0 -0
  231. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/statistics/PackageStatistics.hpp +0 -0
  232. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/statistics/Statistics.hpp +0 -0
  233. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/statistics/TableStatistics.hpp +0 -0
  234. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +0 -0
  235. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/Definitions.hpp +0 -0
  236. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/Permutation.hpp +0 -0
  237. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/Register.hpp +0 -0
  238. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/AodOperation.hpp +0 -0
  239. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/Control.hpp +0 -0
  240. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/Expression.hpp +0 -0
  241. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +0 -0
  242. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/ir/operations/SymbolicOperation.hpp +0 -0
  243. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/NAComputation.hpp +0 -0
  244. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/entities/Atom.hpp +0 -0
  245. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/entities/Location.hpp +0 -0
  246. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/entities/Zone.hpp +0 -0
  247. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/GlobalCZOp.hpp +0 -0
  248. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/GlobalOp.hpp +0 -0
  249. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/GlobalRYOp.hpp +0 -0
  250. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/LoadOp.hpp +0 -0
  251. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/LocalOp.hpp +0 -0
  252. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/LocalRZOp.hpp +0 -0
  253. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/LocalUOp.hpp +0 -0
  254. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/MoveOp.hpp +0 -0
  255. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/Op.hpp +0 -0
  256. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/ShuttlingOp.hpp +0 -0
  257. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/na/operations/StoreOp.hpp +0 -0
  258. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Exception.hpp +0 -0
  259. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Gate.hpp +0 -0
  260. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Importer.hpp +0 -0
  261. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/InstVisitor.hpp +0 -0
  262. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/NestedEnvironment.hpp +0 -0
  263. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Parser.hpp +0 -0
  264. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Scanner.hpp +0 -0
  265. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Statement.hpp +0 -0
  266. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Statement_fwd.hpp +0 -0
  267. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/StdGates.hpp +0 -0
  268. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Token.hpp +0 -0
  269. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Types.hpp +0 -0
  270. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/Types_fwd.hpp +0 -0
  271. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/passes/CompilerPass.hpp +0 -0
  272. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +0 -0
  273. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +0 -0
  274. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/FunctionalityConstruction.hpp +0 -0
  275. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/Rational.hpp +0 -0
  276. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/Rules.hpp +0 -0
  277. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/Simplify.hpp +0 -0
  278. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/Utils.hpp +0 -0
  279. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/ZXDefinitions.hpp +0 -0
  280. {mqt_core-3.2.1 → mqt_core-3.3.1}/include/mqt-core/zx/ZXDiagram.hpp +0 -0
  281. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/.gitignore +0 -0
  282. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/CMakeLists.txt +0 -0
  283. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/include/mlir/CMakeLists.txt +0 -0
  284. {mqt_core-3.2.1/mlir/include/mlir/Dialect/MQTDyn → mqt_core-3.3.1/mlir/include/mlir/Dialect/MQTOpt}/CMakeLists.txt +0 -0
  285. {mqt_core-3.2.1 → mqt_core-3.3.1}/mlir/tools/CMakeLists.txt +0 -0
  286. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/__init__.py +0 -0
  287. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/__main__.py +0 -0
  288. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/_compat/__init__.py +0 -0
  289. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/_compat/typing.py +0 -0
  290. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/_version.pyi +0 -0
  291. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/dd_evaluation.py +0 -0
  292. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/ir/registers.pyi +0 -0
  293. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/ir/symbolic.pyi +0 -0
  294. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/plugins/__init__.py +0 -0
  295. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/plugins/qiskit/__init__.py +0 -0
  296. {mqt_core-3.2.1 → mqt_core-3.3.1}/python/mqt/core/py.typed +0 -0
  297. {mqt_core-3.2.1 → mqt_core-3.3.1}/sitecustomize.py +0 -0
  298. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/BernsteinVazirani.cpp +0 -0
  299. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/GHZState.cpp +0 -0
  300. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/Grover.cpp +0 -0
  301. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/RandomCliffordCircuit.cpp +0 -0
  302. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/StatePreparation.cpp +0 -0
  303. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/algorithms/WState.cpp +0 -0
  304. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/datastructures/Layer.cpp +0 -0
  305. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Approximation.cpp +0 -0
  306. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/CachedEdge.cpp +0 -0
  307. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Complex.cpp +0 -0
  308. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/ComplexNumbers.cpp +0 -0
  309. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/ComplexValue.cpp +0 -0
  310. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Edge.cpp +0 -0
  311. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Export.cpp +0 -0
  312. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/FunctionalityConstruction.cpp +0 -0
  313. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/MemoryManager.cpp +0 -0
  314. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Node.cpp +0 -0
  315. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/NoiseFunctionality.cpp +0 -0
  316. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/Package.cpp +0 -0
  317. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/RealNumber.cpp +0 -0
  318. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/RealNumberUniqueTable.cpp +0 -0
  319. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/StateGeneration.cpp +0 -0
  320. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/UniqueTable.cpp +0 -0
  321. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/statistics/MemoryManagerStatistics.cpp +0 -0
  322. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/statistics/PackageStatistics.cpp +0 -0
  323. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/statistics/Statistics.cpp +0 -0
  324. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/statistics/TableStatistics.cpp +0 -0
  325. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/dd/statistics/UniqueTableStatistics.cpp +0 -0
  326. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/Permutation.cpp +0 -0
  327. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/AodOperation.cpp +0 -0
  328. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/Expression.cpp +0 -0
  329. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/NonUnitaryOperation.cpp +0 -0
  330. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/ir/operations/SymbolicOperation.cpp +0 -0
  331. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/NAComputation.cpp +0 -0
  332. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/entities/Zone.cpp +0 -0
  333. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/operations/GlobalOp.cpp +0 -0
  334. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/operations/LoadOp.cpp +0 -0
  335. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/operations/LocalOp.cpp +0 -0
  336. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/operations/MoveOp.cpp +0 -0
  337. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/na/operations/StoreOp.cpp +0 -0
  338. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Parser.cpp +0 -0
  339. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/Types.cpp +0 -0
  340. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/qasm3/passes/TypeCheckPass.cpp +0 -0
  341. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/FunctionalityConstruction.cpp +0 -0
  342. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/Rational.cpp +0 -0
  343. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/Rules.cpp +0 -0
  344. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/Simplify.cpp +0 -0
  345. {mqt_core-3.2.1 → mqt_core-3.3.1}/src/zx/Utils.cpp +0 -0
  346. {mqt_core-3.2.1 → mqt_core-3.3.1}/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,14 +9,74 @@ This project adheres to [Semantic Versioning], with the exception that minor rel
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
- ## [3.2.1] - 2025-08-01
12
+ ## [3.3.1] - 2025-10-14
13
13
 
14
14
  ### Fixed
15
15
 
16
- - 🐛 Fix bug where lambda passed to `std::accumulate` incorrectly took the accumulator by reference instead of by value ([#1089]) ([**@denialhaag**])
17
- - 🐛 Fix bug in DD package ([#1088]) ([**@denialhaag**])
16
+ - 🐛 Ensure `spdlog` dependency can be found from `mqt-core` install ([#1263]) ([**@burgholzer**])
17
+
18
+ ## [3.3.0] - 2025-10-13
19
+
20
+ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#330)._
21
+
22
+ ### Added
23
+
24
+ - 👷 Enable testing on Python 3.14 ([#1246]) ([**@denialhaag**])
25
+ - ✨ Add dedicated `PlacementPass` to MLIR transpilation routines ([#1232]) ([**@MatthiasReumann**])
26
+ - ✨ Add an NA-specific FoMaC implementation ([#1223], [#1236]) ([**@ystade**], [**@burgholzer**])
27
+ - ✨ Enable import of BarrierOp into MQTRef ([#1224]) ([**@denialhaag**])
28
+ - ✨ Add naive quantum program routing MLIR pass ([#1148]) ([**@MatthiasReumann**])
29
+ - ✨ Add QIR runtime using DD-based simulation ([#1210]) ([**@ystade**], [**@burgholzer**])
30
+ - ✨ Add SWAP reconstruction patterns to the newly-named `SwapReconstructionAndElision` MLIR pass ([#1207]) ([**@taminob**], [**@burgholzer**])
31
+ - ✨ Add two-way conversions between MQTRef and QIR ([#1091]) ([**@li-mingbao**])
32
+ - 🚸 Define custom assembly formats for MLIR operations ([#1209]) ([**@denialhaag**])
33
+ - ✨ Add support for translating `IfElseOperation`s to the `MQTRef` MLIR dialect ([#1164]) ([**@denialhaag**], [**@burgholzer**])
34
+ - ✨ Add MQT's implementation of a generic FoMaC with Python bindings ([#1150], [#1186], [#1223]) ([**@ystade**])
35
+ - ✨ Add new MLIR pass `ElidePermutations` for SWAP gate elimination ([#1151]) ([**@taminob**])
36
+ - ✨ Add new pattern to MLIR pass `GateElimination` for identity gate removal ([#1140]) ([**@taminob**])
37
+ - ✨ Add Clifford block collection pass to `CircuitOptimizer` module ([#885]) ([**jannikpflieger**], [**@burgholzer**])
38
+ - ✨ Add `isControlled()` method to the `UnitaryInterface` MLIR class ([#1157]) ([**@taminob**], [**@burgholzer**])
39
+ - 📝 Integrate generated MLIR documentation ([#1147]) ([**@denialhaag**], [**@burgholzer**])
40
+ - ✨ Add `IfElseOperation` to C++ library and Python package to support Qiskit's `IfElseOp` ([#1117]) ([**@denialhaag**], [**@burgholzer**], [**@lavanya-m-k**])
41
+ - ✨ Add `allocQubit` and `deallocQubit` operations for dynamically working with single qubits to the MLIR dialects ([#1139]) ([**@DRovara**], [**@burgholzer**])
42
+ - ✨ Add `qubit` operation for static qubit addressing to the MLIR dialects ([#1098], [#1116]) ([**@MatthiasReumann**])
43
+ - ✨ Add MQT's implementation of a QDMI Driver ([#1010]) ([**@ystade**])
44
+ - ✨ Add MQT's implementation of a QDMI Device for neutral atom-based quantum computing ([#996], [#1010], [#1100]) ([**@ystade**], [**@burgholzer**])
45
+ - ✨ Add translation from `QuantumComputation` to the `MQTRef` MLIR dialect ([#1099]) ([**@denialhaag**], [**@burgholzer**])
46
+ - ✨ Add `reset` operations to the MLIR dialects ([#1106]) ([**@DRovara**])
47
+
48
+ ### Changed
49
+
50
+ - ♻️ Replace custom `AllocOp`, `DeallocOp`, `ExtractOp`, and `InsertOp` with MLIR-native `memref` operations ([#1211]) ([**@denialhaag**])
51
+ - 🚚 Rename MLIR pass `ElidePermutations` to `SwapReconstructionAndElision` ([#1207]) ([**@taminob**])
52
+ - ⬆️ Require LLVM 21 for building the MLIR library ([#1180]) ([**@denialhaag**])
53
+ - ⬆️ Update to version 21 of `clang-tidy` ([#1180]) ([**@denialhaag**])
54
+ - 🚚 Rename MLIR pass `CancelConsecutiveInverses` to `GateElimination` ([#1140]) ([**@taminob**])
55
+ - 🚚 Rename `xxminusyy` to `xx_minus_yy` and `xxplusyy` to `xx_plus_yy` in MLIR dialects ([#1071]) ([**@BertiFlorea**], [**@denialhaag**])
56
+ - 🚸 Add custom assembly format for operations in the MLIR dialects ([#1139]) ([**@burgholzer**])
57
+ - 🚸 Enable `InferTypeOpInterface` in the MLIR dialects to reduce explicit type information ([#1139]) ([**@burgholzer**])
58
+ - 🚚 Rename `check-quantum-opt` test target to `mqt-core-mlir-lit-test` ([#1139]) ([**@burgholzer**])
59
+ - ♻️ Update the `measure` operations in the MLIR dialects to no longer support more than one qubit being measured at once ([#1106]) ([**@DRovara**])
60
+ - 🚚 Rename `XXminusYY` to `XXminusYYOp` and `XXplusYY` to `XXplusYYOp` in MLIR dialects ([#1099]) ([**@denialhaag**])
61
+ - 🚚 Rename `MQTDyn` MLIR dialect to `MQTRef` ([#1098]) ([**@MatthiasReumann**])
62
+
63
+ ### Removed
64
+
65
+ - 🔥 Drop support for Python 3.9 ([#1181]) ([**@denialhaag**])
66
+ - 🔥 Remove `ClassicControlledOperation` from C++ library and Python package ([#1117]) ([**@denialhaag**])
67
+
68
+ ### Fixed
69
+
70
+ - 🐛 Fix CMake installation to make `find_package(mqt-core CONFIG)` succeed ([#1247]) ([**@burgholzer**], [**@denialhaag**])
71
+ - 🏁 Fix stack overflows in OpenQASM layout parsing on Windows for large circuits ([#1235]) ([**@burgholzer**])
72
+ - ✨ Add missing `StandardOperation` conversions in MLIR roundtrip pass ([#1071]) ([**@BertiFlorea**], [**@denialhaag**])
73
+
74
+ ## [3.2.1] - 2025-08-01
75
+
76
+ ### Fixed
18
77
 
19
- you need to .
78
+ - 🐛 Fix usage of `std::accumulate` by changing accumulator parameter from reference to value ([#1089]) ([**@denialhaag**])
79
+ - 🐛 Fix erroneous `contains` check in DD package ([#1088]) ([**@denialhaag**])
20
80
 
21
81
  ## [3.2.0] - 2025-07-31
22
82
 
@@ -138,7 +198,9 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
138
198
 
139
199
  <!-- Version links -->
140
200
 
141
- [unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.2.1...HEAD
201
+ [unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.3.1...HEAD
202
+ [3.3.1]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.3.1
203
+ [3.3.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.3.0
142
204
  [3.2.1]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.2.1
143
205
  [3.2.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.2.0
144
206
  [3.1.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v3.1.0
@@ -149,15 +211,48 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
149
211
 
150
212
  <!-- PR links -->
151
213
 
214
+ [#1263]: https://github.com/munich-quantum-toolkit/core/pull/1263
215
+ [#1247]: https://github.com/munich-quantum-toolkit/core/pull/1247
216
+ [#1246]: https://github.com/munich-quantum-toolkit/core/pull/1246
217
+ [#1236]: https://github.com/munich-quantum-toolkit/core/pull/1236
218
+ [#1235]: https://github.com/munich-quantum-toolkit/core/pull/1235
219
+ [#1232]: https://github.com/munich-quantum-toolkit/core/pull/1232
220
+ [#1224]: https://github.com/munich-quantum-toolkit/core/pull/1224
221
+ [#1223]: https://github.com/munich-quantum-toolkit/core/pull/1223
222
+ [#1211]: https://github.com/munich-quantum-toolkit/core/pull/1211
223
+ [#1210]: https://github.com/munich-quantum-toolkit/core/pull/1210
224
+ [#1207]: https://github.com/munich-quantum-toolkit/core/pull/1207
225
+ [#1209]: https://github.com/munich-quantum-toolkit/core/pull/1209
226
+ [#1186]: https://github.com/munich-quantum-toolkit/core/pull/1186
227
+ [#1181]: https://github.com/munich-quantum-toolkit/core/pull/1181
228
+ [#1180]: https://github.com/munich-quantum-toolkit/core/pull/1180
229
+ [#1165]: https://github.com/munich-quantum-toolkit/core/pull/1165
230
+ [#1164]: https://github.com/munich-quantum-toolkit/core/pull/1164
231
+ [#1157]: https://github.com/munich-quantum-toolkit/core/pull/1157
232
+ [#1151]: https://github.com/munich-quantum-toolkit/core/pull/1151
233
+ [#1148]: https://github.com/munich-quantum-toolkit/core/pull/1148
234
+ [#1147]: https://github.com/munich-quantum-toolkit/core/pull/1147
235
+ [#1140]: https://github.com/munich-quantum-toolkit/core/pull/1140
236
+ [#1139]: https://github.com/munich-quantum-toolkit/core/pull/1139
237
+ [#1117]: https://github.com/munich-quantum-toolkit/core/pull/1117
238
+ [#1116]: https://github.com/munich-quantum-toolkit/core/pull/1116
239
+ [#1106]: https://github.com/munich-quantum-toolkit/core/pull/1106
240
+ [#1100]: https://github.com/munich-quantum-toolkit/core/pull/1100
241
+ [#1099]: https://github.com/munich-quantum-toolkit/core/pull/1099
242
+ [#1098]: https://github.com/munich-quantum-toolkit/core/pull/1098
243
+ [#1091]: https://github.com/munich-quantum-toolkit/core/pull/1091
152
244
  [#1089]: https://github.com/munich-quantum-toolkit/core/pull/1089
153
245
  [#1088]: https://github.com/munich-quantum-toolkit/core/pull/1088
154
246
  [#1076]: https://github.com/munich-quantum-toolkit/core/pull/1076
155
247
  [#1075]: https://github.com/munich-quantum-toolkit/core/pull/1075
248
+ [#1071]: https://github.com/munich-quantum-toolkit/core/pull/1071
156
249
  [#1047]: https://github.com/munich-quantum-toolkit/core/pull/1047
157
250
  [#1042]: https://github.com/munich-quantum-toolkit/core/pull/1042
158
251
  [#1020]: https://github.com/munich-quantum-toolkit/core/pull/1020
159
252
  [#1019]: https://github.com/munich-quantum-toolkit/core/pull/1019
253
+ [#1010]: https://github.com/munich-quantum-toolkit/core/pull/1010
160
254
  [#1001]: https://github.com/munich-quantum-toolkit/core/pull/1001
255
+ [#996]: https://github.com/munich-quantum-toolkit/core/pull/996
161
256
  [#984]: https://github.com/munich-quantum-toolkit/core/pull/984
162
257
  [#982]: https://github.com/munich-quantum-toolkit/core/pull/982
163
258
  [#975]: https://github.com/munich-quantum-toolkit/core/pull/975
@@ -181,6 +276,7 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
181
276
  [#893]: https://github.com/munich-quantum-toolkit/core/pull/893
182
277
  [#892]: https://github.com/munich-quantum-toolkit/core/pull/892
183
278
  [#886]: https://github.com/munich-quantum-toolkit/core/pull/886
279
+ [#885]: https://github.com/munich-quantum-toolkit/core/pull/885
184
280
  [#883]: https://github.com/munich-quantum-toolkit/core/pull/883
185
281
  [#882]: https://github.com/munich-quantum-toolkit/core/pull/882
186
282
  [#879]: https://github.com/munich-quantum-toolkit/core/pull/879
@@ -228,6 +324,9 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
228
324
  [**@denialhaag**]: https://github.com/denialhaag
229
325
  [**q-inho**]: https://github.com/q-inho
230
326
  [**@li-mingbao**]: https://github.com/li-mingbao
327
+ [**@lavanya-m-k**]: https://github.com/lavanya-m-k
328
+ [**@taminob**]: https://github.com/taminob
329
+ [**@jannikpflieger**]: https://github.com/jannikpflieger
231
330
 
232
331
  <!-- General links -->
233
332
 
@@ -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.1
3
+ Version: 3.3.1
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>