mqt-core 3.0.2__tar.gz → 3.1.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 (289) hide show
  1. {mqt_core-3.0.2 → mqt_core-3.1.0}/.gitignore +5 -2
  2. {mqt_core-3.0.2 → mqt_core-3.1.0}/.license-tools-config.json +3 -3
  3. {mqt_core-3.0.2 → mqt_core-3.1.0}/.pre-commit-config.yaml +18 -11
  4. {mqt_core-3.0.2 → mqt_core-3.1.0}/.readthedocs.yaml +10 -7
  5. mqt_core-3.1.0/CHANGELOG.md +207 -0
  6. {mqt_core-3.0.2 → mqt_core-3.1.0}/CMakeLists.txt +29 -9
  7. {mqt_core-3.0.2 → mqt_core-3.1.0}/PKG-INFO +46 -21
  8. {mqt_core-3.0.2 → mqt_core-3.1.0}/README.md +45 -20
  9. {mqt_core-3.0.2 → mqt_core-3.1.0}/UPGRADING.md +20 -2
  10. mqt_core-3.1.0/bindings/dd/CMakeLists.txt +32 -0
  11. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/dd/register_dd.cpp +12 -5
  12. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/dd/register_dd_package.cpp +35 -12
  13. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/dd/register_matrix_dds.cpp +13 -2
  14. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/dd/register_vector_dds.cpp +13 -2
  15. mqt_core-3.1.0/bindings/ir/CMakeLists.txt +34 -0
  16. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_classic_controlled_operation.cpp +13 -1
  17. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_compound_operation.cpp +17 -3
  18. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_control.cpp +14 -3
  19. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_non_unitary_operation.cpp +12 -1
  20. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_operation.cpp +12 -1
  21. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_optype.cpp +12 -1
  22. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_standard_operation.cpp +12 -1
  23. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/operations/register_symbolic_operation.cpp +12 -1
  24. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_ir.cpp +7 -3
  25. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_operations.cpp +9 -1
  26. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_permutation.cpp +17 -3
  27. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_quantum_computation.cpp +14 -3
  28. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_registers.cpp +17 -6
  29. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/register_symbolic.cpp +9 -1
  30. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/symbolic/register_expression.cpp +17 -5
  31. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/symbolic/register_term.cpp +14 -3
  32. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/ir/symbolic/register_variable.cpp +16 -5
  33. mqt_core-3.1.0/cmake/AddMQTCoreLibrary.cmake +37 -0
  34. mqt_core-3.1.0/cmake/AddMQTPythonBinding.cmake +52 -0
  35. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/CompilerOptions.cmake +6 -1
  36. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/ExternalDependencies.cmake +2 -2
  37. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/PackageAddTest.cmake +4 -4
  38. mqt_core-3.0.2/mlir/CMakeLists.txt → mqt_core-3.1.0/cmake/SetupMLIR.cmake +10 -16
  39. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/mqt-core-config.cmake.in +1 -0
  40. mqt_core-3.1.0/include/mqt-core/dd/Approximation.hpp +45 -0
  41. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Complex.hpp +6 -0
  42. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/ComplexNumbers.hpp +0 -18
  43. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/ComputeTable.hpp +4 -1
  44. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/DDDefinitions.hpp +0 -7
  45. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Edge.hpp +16 -0
  46. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Export.hpp +1 -2
  47. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Node.hpp +26 -49
  48. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Operations.hpp +27 -0
  49. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Package.hpp +138 -120
  50. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/RealNumber.hpp +49 -66
  51. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/RealNumberUniqueTable.hpp +14 -25
  52. mqt_core-3.1.0/include/mqt-core/dd/StateGeneration.hpp +143 -0
  53. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/UnaryComputeTable.hpp +6 -4
  54. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/UniqueTable.hpp +13 -39
  55. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/statistics/PackageStatistics.hpp +8 -7
  56. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +0 -10
  57. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/QuantumComputation.hpp +3 -0
  58. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/CompoundOperation.hpp +2 -0
  59. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/Operation.hpp +2 -2
  60. mqt_core-3.0.2/src/mqt/core/plugins/__init__.py → mqt_core-3.1.0/mlir/CMakeLists.txt +9 -7
  61. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/CMakeLists.txt +1 -0
  62. mqt_core-3.1.0/mlir/include/mlir/Dialect/Common/Compat.h +41 -0
  63. mqt_core-3.1.0/mlir/include/mlir/Dialect/Common/IR/CommonTraits.h +157 -0
  64. mqt_core-3.1.0/mlir/include/mlir/Dialect/Common/IR/CommonTraits.td +52 -0
  65. mqt_core-3.1.0/mlir/include/mlir/Dialect/Common/IR/StdOps.td.inc +332 -0
  66. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/IR/CMakeLists.txt +16 -0
  67. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynDialect.h +45 -0
  68. mqt_core-3.0.2/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptInterfaces.td → mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynInterfaces.td +23 -41
  69. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/IR/MQTDynOps.td +201 -0
  70. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/CMakeLists.txt +12 -0
  71. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.h +36 -0
  72. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn/Transforms/Passes.td +24 -0
  73. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTOpt/CMakeLists.txt +10 -0
  74. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/MQTOpt/IR/CMakeLists.txt +4 -0
  75. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptDialect.h +1 -1
  76. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptInterfaces.td +176 -0
  77. mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptOps.td +247 -0
  78. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.h +1 -0
  79. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/MQTOpt/Transforms/Passes.td +10 -0
  80. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/tools/quantum-opt/CMakeLists.txt +2 -1
  81. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/tools/quantum-opt/quantum-opt.cpp +4 -0
  82. {mqt_core-3.0.2 → mqt_core-3.1.0}/noxfile.py +3 -4
  83. {mqt_core-3.0.2 → mqt_core-3.1.0}/pyproject.toml +47 -27
  84. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/_version.py +2 -2
  85. mqt_core-3.1.0/python/mqt/core/plugins/__init__.py +9 -0
  86. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/plugins/qiskit/qiskit_to_mqt.py +6 -0
  87. mqt_core-3.1.0/sitecustomize.py +23 -0
  88. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/CMakeLists.txt +14 -20
  89. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/CMakeLists.txt +2 -5
  90. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/circuit_optimizer/CMakeLists.txt +2 -5
  91. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/datastructures/CMakeLists.txt +2 -5
  92. mqt_core-3.1.0/src/dd/Approximation.cpp +245 -0
  93. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/CMakeLists.txt +2 -5
  94. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Complex.cpp +10 -0
  95. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/ComplexNumbers.cpp +0 -10
  96. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Edge.cpp +22 -0
  97. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Operations.cpp +29 -0
  98. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Package.cpp +31 -214
  99. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/RealNumber.cpp +45 -45
  100. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/RealNumberUniqueTable.cpp +37 -37
  101. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Simulation.cpp +19 -30
  102. mqt_core-3.1.0/src/dd/StateGeneration.cpp +363 -0
  103. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/UniqueTable.cpp +15 -34
  104. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/statistics/PackageStatistics.cpp +33 -16
  105. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/statistics/UniqueTableStatistics.cpp +1 -12
  106. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/CMakeLists.txt +2 -5
  107. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/CompoundOperation.cpp +4 -0
  108. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/StandardOperation.cpp +4 -4
  109. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/SymbolicOperation.cpp +4 -4
  110. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/CMakeLists.txt +2 -5
  111. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/CMakeLists.txt +2 -5
  112. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/CMakeLists.txt +2 -5
  113. mqt_core-3.1.0/uv.lock +3580 -0
  114. mqt_core-3.0.2/CHANGELOG.md +0 -88
  115. mqt_core-3.0.2/include/mqt-core/python/pybind11.hpp +0 -22
  116. mqt_core-3.0.2/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptOps.td +0 -686
  117. mqt_core-3.0.2/mlir/include/mlir/Dialect/MQTOpt/IR/MQTOptTraits.h +0 -80
  118. mqt_core-3.0.2/src/python/dd/CMakeLists.txt +0 -39
  119. mqt_core-3.0.2/src/python/ir/CMakeLists.txt +0 -41
  120. mqt_core-3.0.2/uv.lock +0 -3370
  121. {mqt_core-3.0.2 → mqt_core-3.1.0}/.clang-format +0 -0
  122. {mqt_core-3.0.2 → mqt_core-3.1.0}/.clang-tidy +0 -0
  123. {mqt_core-3.0.2 → mqt_core-3.1.0}/.cmake-format.yaml +0 -0
  124. {mqt_core-3.0.2 → mqt_core-3.1.0}/.editorconfig +0 -0
  125. {mqt_core-3.0.2 → mqt_core-3.1.0}/.git_archival.txt +0 -0
  126. {mqt_core-3.0.2 → mqt_core-3.1.0}/.gitattributes +0 -0
  127. {mqt_core-3.0.2 → mqt_core-3.1.0}/.python_version +0 -0
  128. {mqt_core-3.0.2 → mqt_core-3.1.0}/CITATION.cff +0 -0
  129. {mqt_core-3.0.2 → mqt_core-3.1.0}/LICENSE.md +0 -0
  130. {mqt_core-3.0.2/src/python → mqt_core-3.1.0/bindings}/CMakeLists.txt +0 -0
  131. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/Cache.cmake +0 -0
  132. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/CompilerWarnings.cmake +0 -0
  133. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/FindGMP.cmake +0 -0
  134. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/GetVersion.cmake +0 -0
  135. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/PreventInSourceBuilds.cmake +0 -0
  136. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/Sanitizers.cmake +0 -0
  137. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/StandardProjectSettings.cmake +0 -0
  138. {mqt_core-3.0.2 → mqt_core-3.1.0}/cmake/cmake_uninstall.cmake.in +0 -0
  139. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/BernsteinVazirani.hpp +0 -0
  140. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/GHZState.hpp +0 -0
  141. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/Grover.hpp +0 -0
  142. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/QFT.hpp +0 -0
  143. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/QPE.hpp +0 -0
  144. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +0 -0
  145. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/StatePreparation.hpp +0 -0
  146. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/algorithms/WState.hpp +0 -0
  147. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +0 -0
  148. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +0 -0
  149. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/DirectedGraph.hpp +0 -0
  150. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/DisjointSet.hpp +0 -0
  151. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/Layer.hpp +0 -0
  152. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/SymmetricMatrix.hpp +0 -0
  153. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/datastructures/UndirectedGraph.hpp +0 -0
  154. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/CachedEdge.hpp +0 -0
  155. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/ComplexValue.hpp +0 -0
  156. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/DDpackageConfig.hpp +0 -0
  157. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/DensityNoiseTable.hpp +0 -0
  158. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/FunctionalityConstruction.hpp +0 -0
  159. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/GateMatrixDefinitions.hpp +0 -0
  160. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/LinkedListBase.hpp +0 -0
  161. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/MemoryManager.hpp +0 -0
  162. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/NoiseFunctionality.hpp +0 -0
  163. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Package_fwd.hpp +0 -0
  164. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/Simulation.hpp +0 -0
  165. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +0 -0
  166. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +0 -0
  167. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/statistics/Statistics.hpp +0 -0
  168. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/dd/statistics/TableStatistics.hpp +0 -0
  169. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/Definitions.hpp +0 -0
  170. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/Permutation.hpp +0 -0
  171. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/Register.hpp +0 -0
  172. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/AodOperation.hpp +0 -0
  173. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/ClassicControlledOperation.hpp +0 -0
  174. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/Control.hpp +0 -0
  175. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/Expression.hpp +0 -0
  176. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +0 -0
  177. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/OpType.hpp +0 -0
  178. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/OpType.inc +0 -0
  179. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/StandardOperation.hpp +0 -0
  180. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/ir/operations/SymbolicOperation.hpp +0 -0
  181. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/NAComputation.hpp +0 -0
  182. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/entities/Atom.hpp +0 -0
  183. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/entities/Location.hpp +0 -0
  184. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/entities/Zone.hpp +0 -0
  185. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/GlobalCZOp.hpp +0 -0
  186. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/GlobalOp.hpp +0 -0
  187. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/GlobalRYOp.hpp +0 -0
  188. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/LoadOp.hpp +0 -0
  189. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/LocalOp.hpp +0 -0
  190. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/LocalRZOp.hpp +0 -0
  191. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/LocalUOp.hpp +0 -0
  192. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/MoveOp.hpp +0 -0
  193. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/Op.hpp +0 -0
  194. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/ShuttlingOp.hpp +0 -0
  195. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/na/operations/StoreOp.hpp +0 -0
  196. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Exception.hpp +0 -0
  197. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Gate.hpp +0 -0
  198. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Importer.hpp +0 -0
  199. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/InstVisitor.hpp +0 -0
  200. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/NestedEnvironment.hpp +0 -0
  201. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Parser.hpp +0 -0
  202. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Scanner.hpp +0 -0
  203. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Statement.hpp +0 -0
  204. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Statement_fwd.hpp +0 -0
  205. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/StdGates.hpp +0 -0
  206. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Token.hpp +0 -0
  207. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Types.hpp +0 -0
  208. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/Types_fwd.hpp +0 -0
  209. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/passes/CompilerPass.hpp +0 -0
  210. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +0 -0
  211. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +0 -0
  212. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/FunctionalityConstruction.hpp +0 -0
  213. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/Rational.hpp +0 -0
  214. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/Rules.hpp +0 -0
  215. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/Simplify.hpp +0 -0
  216. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/Utils.hpp +0 -0
  217. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/ZXDefinitions.hpp +0 -0
  218. {mqt_core-3.0.2 → mqt_core-3.1.0}/include/mqt-core/zx/ZXDiagram.hpp +0 -0
  219. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/.gitignore +0 -0
  220. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/CMakeLists.txt +0 -0
  221. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/CMakeLists.txt +0 -0
  222. {mqt_core-3.0.2/mlir/include/mlir/Dialect/MQTOpt → mqt_core-3.1.0/mlir/include/mlir/Dialect/MQTDyn}/CMakeLists.txt +0 -0
  223. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/include/mlir/Dialect/MQTOpt/Transforms/CMakeLists.txt +0 -0
  224. {mqt_core-3.0.2 → mqt_core-3.1.0}/mlir/tools/CMakeLists.txt +0 -0
  225. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/__init__.py +0 -0
  226. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/__main__.py +0 -0
  227. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/_commands.py +0 -0
  228. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/_compat/__init__.py +0 -0
  229. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/_compat/typing.py +0 -0
  230. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/_version.pyi +0 -0
  231. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/dd.pyi +0 -0
  232. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/dd_evaluation.py +0 -0
  233. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/ir/__init__.pyi +0 -0
  234. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/ir/operations.pyi +0 -0
  235. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/ir/registers.pyi +0 -0
  236. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/ir/symbolic.pyi +0 -0
  237. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/plugins/qiskit/__init__.py +0 -0
  238. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/plugins/qiskit/mqt_to_qiskit.py +0 -0
  239. {mqt_core-3.0.2/src → mqt_core-3.1.0/python}/mqt/core/py.typed +0 -0
  240. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/BernsteinVazirani.cpp +0 -0
  241. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/GHZState.cpp +0 -0
  242. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/Grover.cpp +0 -0
  243. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/QFT.cpp +0 -0
  244. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/QPE.cpp +0 -0
  245. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/RandomCliffordCircuit.cpp +0 -0
  246. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/StatePreparation.cpp +0 -0
  247. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/algorithms/WState.cpp +0 -0
  248. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/circuit_optimizer/CircuitOptimizer.cpp +0 -0
  249. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/datastructures/Layer.cpp +0 -0
  250. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/CachedEdge.cpp +0 -0
  251. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/ComplexValue.cpp +0 -0
  252. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Export.cpp +0 -0
  253. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/FunctionalityConstruction.cpp +0 -0
  254. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/GateMatrixDefinitions.cpp +0 -0
  255. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/MemoryManager.cpp +0 -0
  256. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/Node.cpp +0 -0
  257. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/NoiseFunctionality.cpp +0 -0
  258. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/statistics/MemoryManagerStatistics.cpp +0 -0
  259. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/statistics/Statistics.cpp +0 -0
  260. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/dd/statistics/TableStatistics.cpp +0 -0
  261. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/Permutation.cpp +0 -0
  262. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/QuantumComputation.cpp +0 -0
  263. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/AodOperation.cpp +0 -0
  264. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/ClassicControlledOperation.cpp +0 -0
  265. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/Expression.cpp +0 -0
  266. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/NonUnitaryOperation.cpp +0 -0
  267. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/OpType.cpp +0 -0
  268. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/ir/operations/Operation.cpp +0 -0
  269. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/NAComputation.cpp +0 -0
  270. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/entities/Zone.cpp +0 -0
  271. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/operations/GlobalOp.cpp +0 -0
  272. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/operations/LoadOp.cpp +0 -0
  273. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/operations/LocalOp.cpp +0 -0
  274. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/operations/MoveOp.cpp +0 -0
  275. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/na/operations/StoreOp.cpp +0 -0
  276. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Importer.cpp +0 -0
  277. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Parser.cpp +0 -0
  278. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Scanner.cpp +0 -0
  279. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Statement.cpp +0 -0
  280. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Token.cpp +0 -0
  281. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/Types.cpp +0 -0
  282. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/passes/ConstEvalPass.cpp +0 -0
  283. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/qasm3/passes/TypeCheckPass.cpp +0 -0
  284. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/FunctionalityConstruction.cpp +0 -0
  285. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/Rational.cpp +0 -0
  286. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/Rules.cpp +0 -0
  287. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/Simplify.cpp +0 -0
  288. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/Utils.cpp +0 -0
  289. {mqt_core-3.0.2 → mqt_core-3.1.0}/src/zx/ZXDiagram.cpp +0 -0
@@ -131,14 +131,13 @@ dmypy.json
131
131
  cython_debug/
132
132
 
133
133
  # setuptools_scm
134
- src/*/_version.py
134
+ python/**/_version.py
135
135
 
136
136
  # SKBuild cache dir
137
137
  _skbuild/
138
138
 
139
139
  # Any build dirs in the tests
140
140
  test/**/build/
141
- /src/mqt/core/_version.py
142
141
 
143
142
  # Common editor files
144
143
  *~
@@ -174,3 +173,7 @@ out/build
174
173
 
175
174
  node_modules/
176
175
  wheelhouse/
176
+
177
+ # mlir
178
+
179
+ **/.lit
@@ -11,7 +11,9 @@
11
11
  ".pyi": "DOCSTRING_STYLE",
12
12
  ".in": "POUND_STYLE",
13
13
  ".mlir": "SLASH_STYLE",
14
- ".td": "SLASH_STYLE"
14
+ ".td": "SLASH_STYLE",
15
+ ".yaml": "POUND_STYLE",
16
+ ".toml": "POUND_STYLE"
15
17
  },
16
18
  "exclude": [
17
19
  "^\\.[^/]+",
@@ -27,8 +29,6 @@
27
29
  ".*\\.qc",
28
30
  ".*\\.real",
29
31
  ".*\\.tex",
30
- ".*\\.toml",
31
- ".*\\.yaml",
32
32
  "uv\\.lock",
33
33
  "py\\.typed",
34
34
  ".*build.*"
@@ -14,6 +14,14 @@ ci:
14
14
  skip: [mypy]
15
15
 
16
16
  repos:
17
+ # Check for merge conflicts
18
+ - repo: https://github.com/pre-commit/pre-commit-hooks
19
+ rev: v5.0.0
20
+ hooks:
21
+ - id: check-merge-conflict
22
+ args: ["--assume-in-merge"]
23
+ fail_fast: true
24
+
17
25
  # Standard hooks
18
26
  - repo: https://github.com/pre-commit/pre-commit-hooks
19
27
  rev: v5.0.0
@@ -21,7 +29,6 @@ repos:
21
29
  - id: check-added-large-files
22
30
  - id: check-case-conflict
23
31
  - id: check-docstring-first
24
- - id: check-merge-conflict
25
32
  - id: check-symlinks
26
33
  - id: check-toml
27
34
  - id: check-yaml
@@ -59,7 +66,7 @@ repos:
59
66
 
60
67
  # Python linting using ruff
61
68
  - repo: https://github.com/astral-sh/ruff-pre-commit
62
- rev: v0.11.4
69
+ rev: v0.12.2
63
70
  hooks:
64
71
  - id: ruff
65
72
  args: ["--fix", "--show-fixes"]
@@ -67,10 +74,10 @@ repos:
67
74
 
68
75
  # Static type checking using mypy
69
76
  - repo: https://github.com/pre-commit/mirrors-mypy
70
- rev: v1.15.0
77
+ rev: v1.16.1
71
78
  hooks:
72
79
  - id: mypy
73
- files: ^(src/mqt|test/python|noxfile.py)
80
+ files: ^(python/mqt|test/python|noxfile.py)
74
81
  args: []
75
82
  additional_dependencies:
76
83
  - nox
@@ -92,7 +99,7 @@ repos:
92
99
 
93
100
  # Clang-format the C++ part of the code base automatically
94
101
  - repo: https://github.com/pre-commit/mirrors-clang-format
95
- rev: v20.1.0
102
+ rev: v20.1.7
96
103
  hooks:
97
104
  - id: clang-format
98
105
  types_or: [c++, c, cuda]
@@ -108,14 +115,14 @@ repos:
108
115
 
109
116
  # Format configuration files with prettier
110
117
  - repo: https://github.com/rbubley/mirrors-prettier
111
- rev: v3.5.3
118
+ rev: v3.6.2
112
119
  hooks:
113
120
  - id: prettier
114
121
  types_or: [yaml, markdown, html, css, scss, javascript, json]
115
122
 
116
123
  # Check for spelling
117
124
  - repo: https://github.com/crate-ci/typos
118
- rev: v1.31.1
125
+ rev: v1.34.0
119
126
  hooks:
120
127
  - id: typos
121
128
 
@@ -125,19 +132,19 @@ repos:
125
132
  - id: disallow-caps
126
133
  name: Disallow improper capitalization
127
134
  language: pygrep
128
- entry: PyBind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum
135
+ entry: PyBind|Numpy|Cmake|CCache|Github|PyTest|Mqt|Tum|MQTopt|MQTdyn
129
136
  exclude: .pre-commit-config.yaml
130
137
 
131
138
  # Check best practices for scientific Python code
132
139
  - repo: https://github.com/scientific-python/cookie
133
- rev: 2025.01.22
140
+ rev: 2025.05.02
134
141
  hooks:
135
142
  - id: sp-repo-review
136
143
  additional_dependencies: ["repo-review[cli]"]
137
144
 
138
145
  # Check JSON schemata
139
146
  - repo: https://github.com/python-jsonschema/check-jsonschema
140
- rev: 0.32.1
147
+ rev: 0.33.2
141
148
  hooks:
142
149
  - id: check-dependabot
143
150
  - id: check-github-workflows
@@ -145,7 +152,7 @@ repos:
145
152
 
146
153
  # Check the pyproject.toml file
147
154
  - repo: https://github.com/henryiii/validate-pyproject-schema-store
148
- rev: 2025.03.10
155
+ rev: 2025.06.23
149
156
  hooks:
150
157
  - id: validate-pyproject
151
158
 
@@ -1,8 +1,11 @@
1
1
  version: 2
2
2
 
3
3
  formats:
4
- - pdf
5
4
  - htmlzip
5
+ # - pdf
6
+
7
+ sphinx:
8
+ configuration: docs/conf.py
6
9
 
7
10
  build:
8
11
  os: ubuntu-24.04
@@ -17,7 +20,7 @@ build:
17
20
  - (git --no-pager log --pretty="tformat:%s -- %b" -1 | grep -viq "skip ci") || exit 183
18
21
  # Skip docs build if there are no changes related to docs
19
22
  - |
20
- if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- docs/ .readthedocs.yaml src/mqt/ src/python include/*/python .github/contributing* .github/support*;
23
+ if [ "$READTHEDOCS_VERSION_TYPE" = "external" ] && git diff --quiet origin/main -- bindings/ include/ docs/ python/ .github/contributing* .github/support* .readthedocs.yaml;
21
24
  then
22
25
  exit 183;
23
26
  fi
@@ -35,8 +38,8 @@ build:
35
38
  - uv run --frozen --no-dev --group docs -m sphinx -T -b dirhtml -d docs/_build/doctrees -D language=en docs docs/_build/dirhtml
36
39
  - mkdir -p $READTHEDOCS_OUTPUT/htmlzip
37
40
  - zip -r $READTHEDOCS_OUTPUT/htmlzip/html.zip docs/_build/dirhtml/*
38
- pdf:
39
- - uv run --frozen --no-dev --group docs -m sphinx -T -b latex -d docs/_build/doctrees -D language=en docs docs/_build/latex
40
- - cd docs/_build/latex && latexmk -pdf -f -dvi- -ps- -interaction=nonstopmode -jobname=$READTHEDOCS_PROJECT
41
- - mkdir -p $READTHEDOCS_OUTPUT/pdf
42
- - cp docs/_build/latex/$READTHEDOCS_PROJECT.pdf $READTHEDOCS_OUTPUT/pdf/$READTHEDOCS_PROJECT.pdf
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
@@ -0,0 +1,207 @@
1
+ <!-- Entries in each category are sorted by merge time, with the latest PRs appearing first. -->
2
+
3
+ # Changelog
4
+
5
+ All notable changes to this project will be documented in this file.
6
+
7
+ The format is based on a mixture of [Keep a Changelog] and [Common Changelog].
8
+ This project adheres to [Semantic Versioning], with the exception that minor releases may include breaking changes.
9
+
10
+ ## [Unreleased]
11
+
12
+ ## [3.1.0]
13
+
14
+ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#310)._
15
+
16
+ ### Added
17
+
18
+ - ✨ Add MLIR pass for merging rotation gates ([#1019]) ([**@denialhaag**])
19
+ - ✨ Add functions to generate random vector DDs ([#975]) ([**@MatthiasReumann**])
20
+ - ✨ Add function to approximate decision diagrams ([#908]) ([**@MatthiasReumann**])
21
+ - 📦 Add Windows ARM64 wheels ([#926]) ([**@burgholzer**])
22
+ - 📝 Add documentation page for MLIR ([#931]) ([**@ystade**])
23
+ - ✨ Initial implementation of the mqtdyn Dialect ([#900]) ([**@DRovara**], [**@ystade**])
24
+
25
+ ### Fixed
26
+
27
+ - 🐛 Fix bug in MLIR roundtrip passes caused by accessing an invalidated iterator after erasure in a loop ([#932]) ([**@flowerthrower**])
28
+ - 🐛 Add missing support for `sxdg` gates in Qiskit circuit import ([#930]) ([**@burgholzer**])
29
+ - 🐛 Fix bug related to initialization of operations with duplicate operands ([#964]) ([**@ystade**])
30
+ - 🐛 Open issue for Qiskit upstream test only when the test is actually failing not when it was cancelled ([#973]) ([**@ystade**])
31
+
32
+ ### Changed
33
+
34
+ - ⬆️ Bump shared library ABI version from `3.0` to `3.1`.
35
+ - ♻️ Switch from reference counting to mark-and-sweep garbage collection in decision diagram package ([#1020]) ([**@MatthiasReumann**], [**burgholzer**], [**q-inho**])
36
+ - ♻️ Move the C++ code for the Python bindings to the top-level `bindings` directory ([#982]) ([**@denialhaag**])
37
+ - ♻️ Move all Python code (no tests) to the top-level `python` directory ([#982]) ([**@denialhaag**])
38
+ - ⚡ Improve performance of getNqubits for StandardOperations ([#959]) ([**@ystade**])
39
+ - ♻️ Move Make-State Functionality To StateGeneration ([#984]) ([**@MatthiasReumann**])
40
+ - ♻️ Outsource definition of standard operations from MLIR dialects to reduce redundancy ([#933]) ([**@ystade**])
41
+ - ♻️ Unify operands and results in MLIR dialects ([#931]) ([**@ystade**])
42
+ - ⏪️ Restore support for (MLIR and) LLVM v19 ([#934]) ([**@flowerthrower**], [**@ystade**])
43
+ - ⬆️ Update nlohmann_json to `v3.12.0` ([#921]) ([**@burgholzer**])
44
+
45
+ ## [3.0.2] - 2025-04-07
46
+
47
+ ### Added
48
+
49
+ - 📝 Add JOSS journal reference and citation information ([#913]) ([**@burgholzer**])
50
+ - 📝 Add new links to Python package metadata ([#911]) ([**@burgholzer**])
51
+
52
+ ### Fixed
53
+
54
+ - 📝 Fix old links in Python package metadata ([#911]) ([**@burgholzer**])
55
+
56
+ ## [3.0.1] - 2025-04-07
57
+
58
+ ### Fixed
59
+
60
+ - 🐛 Fix doxygen build on RtD to include C++ API docs ([#912]) ([**@burgholzer**])
61
+
62
+ ## [3.0.0] - 2025-04-06
63
+
64
+ _If you are upgrading: please see [`UPGRADING.md`](UPGRADING.md#300)._
65
+
66
+ ### Added
67
+
68
+ - ✨ Ship shared C++ libraries with `mqt-core` Python package ([#662]) ([**@burgholzer**])
69
+ - ✨ Add Python bindings for the DD package ([#838]) ([**@burgholzer**])
70
+ - ✨ Add direct MQT `QuantumComputation` to Qiskit `QuantumCircuit` export ([#859]) ([**@burgholzer**])
71
+ - ✨ Support for Qiskit 2.0+ ([#860]) ([**@burgholzer**])
72
+ - ✨ Add initial infrastructure for MLIR within the MQT ([#878], [#879], [#892], [#893], [#895]) ([**@burgholzer**], [**@ystade**], [**@DRovara**], [**@flowerthrower**], [**@BertiFlorea**])
73
+ - ✨ Add State Preparation Algorithm ([#543]) ([**@M-J-Hochreiter**])
74
+ - 🚸 Add support for indexed identifiers to OpenQASM 3 parser ([#832]) ([**@burgholzer**])
75
+ - 🚸 Allow indexed registers as operation arguments ([#839]) ([**@burgholzer**])
76
+ - 📝 Add documentation for the DD package ([#831]) ([**@burgholzer**])
77
+ - 📝 Add documentation for the ZX package ([#817]) ([**@pehamTom**])
78
+ - 📝 Add C++ API docs setup ([#817]) ([**@pehamTom**], [**@burgholzer**])
79
+
80
+ ### Changed
81
+
82
+ - **Breaking**: 🚚 MQT Core has moved to the [munich-quantum-toolkit] GitHub organization
83
+ - **Breaking**: ✨ Adopt [PEP 735] dependency groups ([#762]) ([**@burgholzer**])
84
+ - **Breaking**: ♻️ Encapsulate the OpenQASM parser in its own library ([#822]) ([**@burgholzer**])
85
+ - **Breaking**: ♻️ Replace `Config` template from DD package with constructor argument ([#886]) ([**@burgholzer**])
86
+ - **Breaking**: ♻️ Remove template parameters from `MemoryManager` and adjacent classes ([#866]) ([**@rotmanjanez**])
87
+ - **Breaking**: ♻️ Refactor algorithms to use factory functions instead of inheritance ([**@a9b7e70**]) ([**@burgholzer**])
88
+ - **Breaking**: ♻️ Change pointer parameters to references in DD package ([#798]) ([**@burgholzer**])
89
+ - **Breaking**: ♻️ Change registers from typedef to actual type ([#807]) ([**@burgholzer**])
90
+ - **Breaking**: ♻️ Refactor `NAComputation` class hierarchy ([#846], [#877]) ([**@ystade**])
91
+ - **Breaking**: ⬆️ Bump minimum required CMake version to `3.24.0` ([#879]) ([**@burgholzer**])
92
+ - **Breaking**: ⬆️ Bump minimum required `uv` version to `0.5.20` ([#802]) ([**@burgholzer**])
93
+ - 📝 Rework existing project documentation ([#789], [#842]) ([**@burgholzer**])
94
+ - 📄 Use [PEP 639] license expressions ([#847]) ([**@burgholzer**])
95
+
96
+ ### Removed
97
+
98
+ - **Breaking**: 🔥 Remove the `Teleportation` gate from the IR ([#882]) ([**@burgholzer**])
99
+ - **Breaking**: 🔥 Remove parsers for `.real`, `.qc`, `.tfc`, and `GRCS` files ([#822]) ([**@burgholzer**])
100
+ - **Breaking**: 🔥 Remove tensor dump functionality ([#798]) ([**@burgholzer**])
101
+ - **Breaking**: 🔥 Remove `extract_probability_vector` functionality ([#883]) ([**@burgholzer**])
102
+
103
+ ### Fixed
104
+
105
+ - 🐛 Fix Qiskit layout import and handling ([#849], [#858]) ([**@burgholzer**])
106
+ - 🐛 Properly handle timing literals in QASM parser ([#724]) ([**@burgholzer**])
107
+ - 🐛 Fix stripping of idle qubits ([#763]) ([**@burgholzer**])
108
+ - 🐛 Fix permutation handling in OpenQASM dump ([#810]) ([**@burgholzer**])
109
+ - 🐛 Fix out-of-bounds error in ZX `EdgeIterator` ([#758]) ([**@burgholzer**])
110
+ - 🐛 Fix endianness in DCX and XX_minus_YY gate matrix definition ([#741]) ([**@burgholzer**])
111
+ - 🐛 Fix needless dummy register in empty circuit construction ([#758]) ([**@burgholzer**])
112
+
113
+ ## [2.7.0] - 2024-10-08
114
+
115
+ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-toolkit/core/releases) for previous changelogs._
116
+
117
+ <!-- Version links -->
118
+
119
+ [unreleased]: https://github.com/munich-quantum-toolkit/core/compare/v3.1.0...HEAD
120
+ [3.1.0]: https://github.com/munich-quantum-toolkit/core/compare/v3.0.2...v3.1.0
121
+ [3.0.2]: https://github.com/munich-quantum-toolkit/core/compare/v3.0.1...v3.0.2
122
+ [3.0.1]: https://github.com/munich-quantum-toolkit/core/compare/v3.0.0...v3.0.1
123
+ [3.0.0]: https://github.com/munich-quantum-toolkit/core/compare/v2.7.0...v3.0.0
124
+ [2.7.0]: https://github.com/munich-quantum-toolkit/core/releases/tag/v2.7.0
125
+
126
+ <!-- PR links -->
127
+
128
+ [#1020]: https://github.com/munich-quantum-toolkit/core/pull/1020
129
+ [#1019]: https://github.com/munich-quantum-toolkit/core/pull/1019
130
+ [#984]: https://github.com/munich-quantum-toolkit/core/pull/984
131
+ [#982]: https://github.com/munich-quantum-toolkit/core/pull/982
132
+ [#975]: https://github.com/munich-quantum-toolkit/core/pull/975
133
+ [#973]: https://github.com/munich-quantum-toolkit/core/pull/973
134
+ [#964]: https://github.com/munich-quantum-toolkit/core/pull/964
135
+ [#959]: https://github.com/munich-quantum-toolkit/core/pull/959
136
+ [#934]: https://github.com/munich-quantum-toolkit/core/pull/934
137
+ [#933]: https://github.com/munich-quantum-toolkit/core/pull/933
138
+ [#932]: https://github.com/munich-quantum-toolkit/core/pull/932
139
+ [#931]: https://github.com/munich-quantum-toolkit/core/pull/931
140
+ [#930]: https://github.com/munich-quantum-toolkit/core/pull/930
141
+ [#926]: https://github.com/munich-quantum-toolkit/core/pull/926
142
+ [#921]: https://github.com/munich-quantum-toolkit/core/pull/921
143
+ [#913]: https://github.com/munich-quantum-toolkit/core/pull/913
144
+ [#912]: https://github.com/munich-quantum-toolkit/core/pull/912
145
+ [#911]: https://github.com/munich-quantum-toolkit/core/pull/911
146
+ [#908]: https://github.com/munich-quantum-toolkit/core/pull/908
147
+ [#900]: https://github.com/munich-quantum-toolkit/core/pull/900
148
+ [#895]: https://github.com/munich-quantum-toolkit/core/pull/895
149
+ [#893]: https://github.com/munich-quantum-toolkit/core/pull/893
150
+ [#892]: https://github.com/munich-quantum-toolkit/core/pull/892
151
+ [#886]: https://github.com/munich-quantum-toolkit/core/pull/886
152
+ [#883]: https://github.com/munich-quantum-toolkit/core/pull/883
153
+ [#882]: https://github.com/munich-quantum-toolkit/core/pull/882
154
+ [#879]: https://github.com/munich-quantum-toolkit/core/pull/879
155
+ [#878]: https://github.com/munich-quantum-toolkit/core/pull/878
156
+ [#877]: https://github.com/munich-quantum-toolkit/core/pull/877
157
+ [#866]: https://github.com/munich-quantum-toolkit/core/pull/866
158
+ [#860]: https://github.com/munich-quantum-toolkit/core/pull/860
159
+ [#859]: https://github.com/munich-quantum-toolkit/core/pull/859
160
+ [#858]: https://github.com/munich-quantum-toolkit/core/pull/858
161
+ [#849]: https://github.com/munich-quantum-toolkit/core/pull/849
162
+ [#847]: https://github.com/munich-quantum-toolkit/core/pull/847
163
+ [#846]: https://github.com/munich-quantum-toolkit/core/pull/846
164
+ [#842]: https://github.com/munich-quantum-toolkit/core/pull/842
165
+ [#839]: https://github.com/munich-quantum-toolkit/core/pull/839
166
+ [#838]: https://github.com/munich-quantum-toolkit/core/pull/838
167
+ [#832]: https://github.com/munich-quantum-toolkit/core/pull/832
168
+ [#831]: https://github.com/munich-quantum-toolkit/core/pull/831
169
+ [#822]: https://github.com/munich-quantum-toolkit/core/pull/822
170
+ [#817]: https://github.com/munich-quantum-toolkit/core/pull/817
171
+ [#810]: https://github.com/munich-quantum-toolkit/core/pull/810
172
+ [#807]: https://github.com/munich-quantum-toolkit/core/pull/807
173
+ [#802]: https://github.com/munich-quantum-toolkit/core/pull/802
174
+ [#798]: https://github.com/munich-quantum-toolkit/core/pull/798
175
+ [#789]: https://github.com/munich-quantum-toolkit/core/pull/789
176
+ [#763]: https://github.com/munich-quantum-toolkit/core/pull/763
177
+ [#762]: https://github.com/munich-quantum-toolkit/core/pull/762
178
+ [#758]: https://github.com/munich-quantum-toolkit/core/pull/758
179
+ [#741]: https://github.com/munich-quantum-toolkit/core/pull/741
180
+ [#724]: https://github.com/munich-quantum-toolkit/core/pull/724
181
+ [#662]: https://github.com/munich-quantum-toolkit/core/pull/662
182
+ [#543]: https://github.com/munich-quantum-toolkit/core/pull/543
183
+ [**@a9b7e70**]: https://github.com/munich-quantum-toolkit/core/pull/798/commits/a9b7e70aaeb532fe8e1e31a7decca86d81eb523f
184
+
185
+ <!-- Contributor -->
186
+
187
+ [**@burgholzer**]: https://github.com/burgholzer
188
+ [**@ystade**]: https://github.com/ystade
189
+ [**@DRovara**]: https://github.com/DRovara
190
+ [**@flowerthrower**]: https://github.com/flowerthrower
191
+ [**@BertiFlorea**]: https://github.com/BertiFlorea
192
+ [**@M-J-Hochreiter**]: https://github.com/M-J-Hochreiter
193
+ [**@rotmanjanez**]: https://github.com/rotmanjanez
194
+ [**@pehamTom**]: https://github.com/pehamTom
195
+ [**@MatthiasReumann**]: https://github.com/MatthiasReumann
196
+ [**@denialhaag**]: https://github.com/denialhaag
197
+ [**q-inho**]: https://github.com/q-inho
198
+
199
+ <!-- General links -->
200
+
201
+ [Keep a Changelog]: https://keepachangelog.com/en/1.1.0/
202
+ [Common Changelog]: https://common-changelog.org
203
+ [Semantic Versioning]: https://semver.org/spec/v2.0.0.html
204
+ [GitHub Release Notes]: https://github.com/munich-quantum-toolkit/core/releases
205
+ [munich-quantum-toolkit]: https://github.com/munich-quantum-toolkit
206
+ [PEP 639]: https://peps.python.org/pep-0639/
207
+ [PEP 735]: https://peps.python.org/pep-0735/
@@ -17,10 +17,12 @@ project(
17
17
  # Add path for custom modules
18
18
  list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
19
19
 
20
- include(cmake/StandardProjectSettings.cmake)
21
- include(cmake/PreventInSourceBuilds.cmake)
22
- include(cmake/PackageAddTest.cmake)
23
- include(cmake/Cache.cmake)
20
+ include(AddMQTPythonBinding)
21
+ include(StandardProjectSettings)
22
+ include(PreventInSourceBuilds)
23
+ include(PackageAddTest)
24
+ include(Cache)
25
+ include(AddMQTCoreLibrary)
24
26
 
25
27
  option(BUILD_MQT_CORE_BINDINGS "Build the MQT Core Python bindings" OFF)
26
28
  if(BUILD_MQT_CORE_BINDINGS)
@@ -45,10 +47,7 @@ if(BUILD_MQT_CORE_BINDINGS)
45
47
  endif()
46
48
 
47
49
  # top-level call to find Python
48
- find_package(
49
- Python 3.9 REQUIRED
50
- COMPONENTS Interpreter Development.Module
51
- OPTIONAL_COMPONENTS Development.SABIModule)
50
+ find_package(Python 3.9 REQUIRED COMPONENTS Interpreter Development.Module)
52
51
  endif()
53
52
 
54
53
  # check if this is the master project or used via add_subdirectory
@@ -61,9 +60,11 @@ endif()
61
60
  option(MQT_CORE_INSTALL "Generate installation instructions for MQT Core"
62
61
  ${MQT_CORE_MASTER_PROJECT})
63
62
  option(BUILD_MQT_CORE_TESTS "Also build tests for the MQT Core project" ${MQT_CORE_MASTER_PROJECT})
63
+ option(BUILD_MQT_CORE_SHARED_LIBS "Build MQT Core libraries as shared libraries"
64
+ ${BUILD_SHARED_LIBS})
64
65
 
65
66
  # try to determine the project version
66
- include(cmake/GetVersion.cmake)
67
+ include(GetVersion)
67
68
  get_mqt_core_version()
68
69
 
69
70
  project(
@@ -77,9 +78,27 @@ include(cmake/ExternalDependencies.cmake)
77
78
  # set the include directory for the build tree
78
79
  set(MQT_CORE_INCLUDE_BUILD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include/mqt-core")
79
80
 
81
+ if(MQT_CORE_INSTALL)
82
+ if(APPLE)
83
+ set(BASEPOINT @loader_path)
84
+ else()
85
+ set(BASEPOINT $ORIGIN)
86
+ endif()
87
+ set(CMAKE_INSTALL_RPATH ${BASEPOINT} ${BASEPOINT}/${CMAKE_INSTALL_LIBDIR})
88
+ set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
89
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
90
+ endif()
91
+
92
+ set(MQT_CORE_TARGET_NAME "mqt-core")
93
+
80
94
  # add main library code
81
95
  add_subdirectory(src)
82
96
 
97
+ # add bindings code if enabled
98
+ if(BUILD_MQT_CORE_BINDINGS)
99
+ add_subdirectory(bindings)
100
+ endif()
101
+
83
102
  # add test code
84
103
  if(BUILD_MQT_CORE_TESTS)
85
104
  enable_testing()
@@ -94,6 +113,7 @@ endif()
94
113
 
95
114
  option(BUILD_MQT_CORE_MLIR "Build the MLIR submodule of the MQT Core project" OFF)
96
115
  if(BUILD_MQT_CORE_MLIR)
116
+ include(SetupMLIR)
97
117
  add_subdirectory(mlir)
98
118
  endif()
99
119
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mqt-core
3
- Version: 3.0.2
3
+ Version: 3.1.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>
@@ -47,16 +47,15 @@ Description-Content-Type: text/markdown
47
47
  <p align="center">
48
48
  <a href="https://mqt.readthedocs.io">
49
49
  <picture>
50
- <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-banner-dark.svg" width="90%">
51
- <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/mqt-banner-light.svg" width="90%" alt="MQT Banner">
50
+ <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%">
51
+ <img src="https://raw.githubusercontent.com/munich-quantum-toolkit/.github/refs/heads/main/docs/_static/logo-mqt-light.svg" width="60%" alt="MQT Logo">
52
52
  </picture>
53
53
  </a>
54
54
  </p>
55
55
 
56
56
  # MQT Core - The Backbone of the Munich Quantum Toolkit (MQT)
57
57
 
58
- MQT Core is an open-source C++17 and Python library for quantum computing that forms the backbone of the quantum software tools developed as part of the [_Munich Quantum Toolkit (MQT)_](https://mqt.readthedocs.io) [^1].
59
- To this end, it consists of multiple components that are used throughout the MQT, including a fully fledged intermediate representation (IR) for quantum computations, a state-of-the-art decision diagram (DD) package for quantum computing, and a dedicated ZX-diagram package for working with the ZX-calculus.
58
+ MQT Core is an open-source C++17 and Python library for quantum computing that forms the backbone of the quantum software tools developed as part of the [_Munich Quantum Toolkit (MQT)_](https://mqt.readthedocs.io).
60
59
 
61
60
  <p align="center">
62
61
  <a href="https://mqt.readthedocs.io/projects/core">
@@ -64,25 +63,34 @@ To this end, it consists of multiple components that are used throughout the MQT
64
63
  </a>
65
64
  </p>
66
65
 
67
- If you want to cite MQT Core, please use the following BibTeX entry:
66
+ ## Key Features
68
67
 
69
- ```bibtex
70
- @article{burgholzer2025MQTCore,
71
- title = {{{MQT Core}}: {{The}} Backbone of the {{Munich Quantum Toolkit (MQT)}}},
72
- author = {Lukas Burgholzer and Yannick Stade and Tom Peham and Robert Wille},
73
- year = {2025},
74
- journal = {Journal of Open Source Software},
75
- publisher = {The Open Journal},
76
- volume = {10},
77
- number = {108},
78
- pages = {7478},
79
- doi = {10.21105/joss.07478},
80
- url = {https://doi.org/10.21105/joss.07478},
81
- }
82
- ```
68
+ - Fully fledged intermediate representation (IR) for quantum computations.
69
+ - A state-of-the-art decision diagram (DD) package for quantum computing.
70
+ - A dedicated ZX-diagram package for working with the ZX-calculus.
83
71
 
84
72
  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).
85
73
 
74
+ ## Contributors and Supporters
75
+
76
+ The _[Munich Quantum Toolkit (MQT)](https://mqt.readthedocs.io)_ is developed by the [Chair for Design Automation](https://www.cda.cit.tum.de/) at the [Technical University of Munich](https://www.tum.de/) and supported by the [Munich Quantum Software Company (MQSC)](https://munichquantum.software).
77
+ Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://www.munich-quantum-valley.de/research/research-areas/mqss) ecosystem, which is being developed as part of the [Munich Quantum Valley (MQV)](https://www.munich-quantum-valley.de) initiative.
78
+
79
+ <p align="center">
80
+ <picture>
81
+ <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%">
82
+ <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">
83
+ </picture>
84
+ </p>
85
+
86
+ Thank you to all the contributors who have helped make MQT Core a reality!
87
+
88
+ <p align="center">
89
+ <a href="https://github.com/munich-quantum-toolkit/core/graphs/contributors">
90
+ <img src="https://contrib.rocks/image?repo=munich-quantum-toolkit/core" />
91
+ </a>
92
+ </p>
93
+
86
94
  ## Getting Started
87
95
 
88
96
  `mqt.core` is available via [PyPI](https://pypi.org/project/mqt.core/) for all major operating systems and supports Python 3.9 to 3.13.
@@ -124,7 +132,24 @@ It is recommended (although not required) to have [GraphViz](https://www.graphvi
124
132
 
125
133
  If you want to use the ZX library, it is recommended (although not strictly necessary) to have [GMP](https://gmplib.org/) installed in your system.
126
134
 
127
- [^1]: The _[Munich Quantum Toolkit (MQT)](https://mqt.readthedocs.io)_ is a collection of software tools for quantum computing developed by the [Chair for Design Automation](https://www.cda.cit.tum.de/) at the [Technical University of Munich](https://www.tum.de/) as well as the [Munich Quantum Software Company (MQSC)](https://munichquantum.software). Among others, it is part of the [Munich Quantum Software Stack (MQSS)](https://www.munich-quantum-valley.de/research/research-areas/mqss) ecosystem, which is being developed as part of the [Munich Quantum Valley (MQV)](https://www.munich-quantum-valley.de) initiative.
135
+ ## Cite This
136
+
137
+ If you want to cite MQT Core, please use the following BibTeX entry:
138
+
139
+ ```bibtex
140
+ @article{burgholzer2025MQTCore,
141
+ title = {{{MQT Core}}: {{The}} Backbone of the {{Munich Quantum Toolkit (MQT)}}},
142
+ author = {Lukas Burgholzer and Yannick Stade and Tom Peham and Robert Wille},
143
+ year = {2025},
144
+ journal = {Journal of Open Source Software},
145
+ publisher = {The Open Journal},
146
+ volume = {10},
147
+ number = {108},
148
+ pages = {7478},
149
+ doi = {10.21105/joss.07478},
150
+ url = {https://doi.org/10.21105/joss.07478},
151
+ }
152
+ ```
128
153
 
129
154
  ---
130
155