mqt-core 3.3.2__cp313-cp313t-win_amd64.whl

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.
Files changed (537) hide show
  1. mqt/core/__init__.py +89 -0
  2. mqt/core/__main__.py +55 -0
  3. mqt/core/_commands.py +52 -0
  4. mqt/core/_compat/__init__.py +11 -0
  5. mqt/core/_compat/typing.py +29 -0
  6. mqt/core/_version.py +34 -0
  7. mqt/core/_version.pyi +12 -0
  8. mqt/core/bin/mqt-core-algorithms.dll +0 -0
  9. mqt/core/bin/mqt-core-circuit-optimizer.dll +0 -0
  10. mqt/core/bin/mqt-core-dd.dll +0 -0
  11. mqt/core/bin/mqt-core-ds.dll +0 -0
  12. mqt/core/bin/mqt-core-fomac.dll +0 -0
  13. mqt/core/bin/mqt-core-ir.dll +0 -0
  14. mqt/core/bin/mqt-core-na-fomac.dll +0 -0
  15. mqt/core/bin/mqt-core-na.dll +0 -0
  16. mqt/core/bin/mqt-core-qasm.dll +0 -0
  17. mqt/core/bin/mqt-core-qdmi-driver.dll +0 -0
  18. mqt/core/bin/mqt-core-qdmi-na-device.dll +0 -0
  19. mqt/core/bin/mqt-core-zx.dll +0 -0
  20. mqt/core/dd.cp313t-win_amd64.pyd +0 -0
  21. mqt/core/dd.pyi +1016 -0
  22. mqt/core/dd_evaluation.py +368 -0
  23. mqt/core/fomac.cp313t-win_amd64.pyd +0 -0
  24. mqt/core/fomac.pyi +125 -0
  25. mqt/core/include/mqt-core/algorithms/BernsteinVazirani.hpp +39 -0
  26. mqt/core/include/mqt-core/algorithms/GHZState.hpp +18 -0
  27. mqt/core/include/mqt-core/algorithms/Grover.hpp +33 -0
  28. mqt/core/include/mqt-core/algorithms/QFT.hpp +21 -0
  29. mqt/core/include/mqt-core/algorithms/QPE.hpp +30 -0
  30. mqt/core/include/mqt-core/algorithms/RandomCliffordCircuit.hpp +22 -0
  31. mqt/core/include/mqt-core/algorithms/StatePreparation.hpp +43 -0
  32. mqt/core/include/mqt-core/algorithms/WState.hpp +18 -0
  33. mqt/core/include/mqt-core/algorithms/mqt_core_algorithms_export.h +43 -0
  34. mqt/core/include/mqt-core/boost/config/abi/borland_prefix.hpp +27 -0
  35. mqt/core/include/mqt-core/boost/config/abi/borland_suffix.hpp +12 -0
  36. mqt/core/include/mqt-core/boost/config/abi/msvc_prefix.hpp +22 -0
  37. mqt/core/include/mqt-core/boost/config/abi/msvc_suffix.hpp +8 -0
  38. mqt/core/include/mqt-core/boost/config/abi_prefix.hpp +25 -0
  39. mqt/core/include/mqt-core/boost/config/abi_suffix.hpp +25 -0
  40. mqt/core/include/mqt-core/boost/config/assert_cxx03.hpp +211 -0
  41. mqt/core/include/mqt-core/boost/config/assert_cxx11.hpp +212 -0
  42. mqt/core/include/mqt-core/boost/config/assert_cxx14.hpp +47 -0
  43. mqt/core/include/mqt-core/boost/config/assert_cxx17.hpp +65 -0
  44. mqt/core/include/mqt-core/boost/config/assert_cxx20.hpp +59 -0
  45. mqt/core/include/mqt-core/boost/config/assert_cxx23.hpp +41 -0
  46. mqt/core/include/mqt-core/boost/config/assert_cxx98.hpp +23 -0
  47. mqt/core/include/mqt-core/boost/config/auto_link.hpp +525 -0
  48. mqt/core/include/mqt-core/boost/config/compiler/borland.hpp +342 -0
  49. mqt/core/include/mqt-core/boost/config/compiler/clang.hpp +370 -0
  50. mqt/core/include/mqt-core/boost/config/compiler/clang_version.hpp +89 -0
  51. mqt/core/include/mqt-core/boost/config/compiler/codegear.hpp +389 -0
  52. mqt/core/include/mqt-core/boost/config/compiler/comeau.hpp +59 -0
  53. mqt/core/include/mqt-core/boost/config/compiler/common_edg.hpp +185 -0
  54. mqt/core/include/mqt-core/boost/config/compiler/compaq_cxx.hpp +19 -0
  55. mqt/core/include/mqt-core/boost/config/compiler/cray.hpp +446 -0
  56. mqt/core/include/mqt-core/boost/config/compiler/diab.hpp +26 -0
  57. mqt/core/include/mqt-core/boost/config/compiler/digitalmars.hpp +146 -0
  58. mqt/core/include/mqt-core/boost/config/compiler/gcc.hpp +386 -0
  59. mqt/core/include/mqt-core/boost/config/compiler/gcc_xml.hpp +115 -0
  60. mqt/core/include/mqt-core/boost/config/compiler/greenhills.hpp +28 -0
  61. mqt/core/include/mqt-core/boost/config/compiler/hp_acc.hpp +153 -0
  62. mqt/core/include/mqt-core/boost/config/compiler/intel.hpp +577 -0
  63. mqt/core/include/mqt-core/boost/config/compiler/kai.hpp +33 -0
  64. mqt/core/include/mqt-core/boost/config/compiler/metrowerks.hpp +201 -0
  65. mqt/core/include/mqt-core/boost/config/compiler/mpw.hpp +143 -0
  66. mqt/core/include/mqt-core/boost/config/compiler/nvcc.hpp +64 -0
  67. mqt/core/include/mqt-core/boost/config/compiler/pathscale.hpp +141 -0
  68. mqt/core/include/mqt-core/boost/config/compiler/pgi.hpp +23 -0
  69. mqt/core/include/mqt-core/boost/config/compiler/sgi_mipspro.hpp +29 -0
  70. mqt/core/include/mqt-core/boost/config/compiler/sunpro_cc.hpp +225 -0
  71. mqt/core/include/mqt-core/boost/config/compiler/vacpp.hpp +189 -0
  72. mqt/core/include/mqt-core/boost/config/compiler/visualc.hpp +398 -0
  73. mqt/core/include/mqt-core/boost/config/compiler/xlcpp.hpp +303 -0
  74. mqt/core/include/mqt-core/boost/config/compiler/xlcpp_zos.hpp +174 -0
  75. mqt/core/include/mqt-core/boost/config/detail/cxx_composite.hpp +218 -0
  76. mqt/core/include/mqt-core/boost/config/detail/posix_features.hpp +95 -0
  77. mqt/core/include/mqt-core/boost/config/detail/select_compiler_config.hpp +157 -0
  78. mqt/core/include/mqt-core/boost/config/detail/select_platform_config.hpp +147 -0
  79. mqt/core/include/mqt-core/boost/config/detail/select_stdlib_config.hpp +121 -0
  80. mqt/core/include/mqt-core/boost/config/detail/suffix.hpp +1334 -0
  81. mqt/core/include/mqt-core/boost/config/header_deprecated.hpp +26 -0
  82. mqt/core/include/mqt-core/boost/config/helper_macros.hpp +37 -0
  83. mqt/core/include/mqt-core/boost/config/no_tr1/cmath.hpp +28 -0
  84. mqt/core/include/mqt-core/boost/config/no_tr1/complex.hpp +28 -0
  85. mqt/core/include/mqt-core/boost/config/no_tr1/functional.hpp +28 -0
  86. mqt/core/include/mqt-core/boost/config/no_tr1/memory.hpp +28 -0
  87. mqt/core/include/mqt-core/boost/config/no_tr1/utility.hpp +28 -0
  88. mqt/core/include/mqt-core/boost/config/platform/aix.hpp +33 -0
  89. mqt/core/include/mqt-core/boost/config/platform/amigaos.hpp +15 -0
  90. mqt/core/include/mqt-core/boost/config/platform/beos.hpp +26 -0
  91. mqt/core/include/mqt-core/boost/config/platform/bsd.hpp +83 -0
  92. mqt/core/include/mqt-core/boost/config/platform/cloudabi.hpp +18 -0
  93. mqt/core/include/mqt-core/boost/config/platform/cray.hpp +18 -0
  94. mqt/core/include/mqt-core/boost/config/platform/cygwin.hpp +71 -0
  95. mqt/core/include/mqt-core/boost/config/platform/haiku.hpp +31 -0
  96. mqt/core/include/mqt-core/boost/config/platform/hpux.hpp +87 -0
  97. mqt/core/include/mqt-core/boost/config/platform/irix.hpp +31 -0
  98. mqt/core/include/mqt-core/boost/config/platform/linux.hpp +106 -0
  99. mqt/core/include/mqt-core/boost/config/platform/macos.hpp +87 -0
  100. mqt/core/include/mqt-core/boost/config/platform/qnxnto.hpp +31 -0
  101. mqt/core/include/mqt-core/boost/config/platform/solaris.hpp +31 -0
  102. mqt/core/include/mqt-core/boost/config/platform/symbian.hpp +97 -0
  103. mqt/core/include/mqt-core/boost/config/platform/vms.hpp +25 -0
  104. mqt/core/include/mqt-core/boost/config/platform/vxworks.hpp +422 -0
  105. mqt/core/include/mqt-core/boost/config/platform/wasm.hpp +23 -0
  106. mqt/core/include/mqt-core/boost/config/platform/win32.hpp +90 -0
  107. mqt/core/include/mqt-core/boost/config/platform/zos.hpp +32 -0
  108. mqt/core/include/mqt-core/boost/config/pragma_message.hpp +31 -0
  109. mqt/core/include/mqt-core/boost/config/requires_threads.hpp +92 -0
  110. mqt/core/include/mqt-core/boost/config/stdlib/dinkumware.hpp +324 -0
  111. mqt/core/include/mqt-core/boost/config/stdlib/libcomo.hpp +93 -0
  112. mqt/core/include/mqt-core/boost/config/stdlib/libcpp.hpp +180 -0
  113. mqt/core/include/mqt-core/boost/config/stdlib/libstdcpp3.hpp +482 -0
  114. mqt/core/include/mqt-core/boost/config/stdlib/modena.hpp +79 -0
  115. mqt/core/include/mqt-core/boost/config/stdlib/msl.hpp +98 -0
  116. mqt/core/include/mqt-core/boost/config/stdlib/roguewave.hpp +208 -0
  117. mqt/core/include/mqt-core/boost/config/stdlib/sgi.hpp +168 -0
  118. mqt/core/include/mqt-core/boost/config/stdlib/stlport.hpp +258 -0
  119. mqt/core/include/mqt-core/boost/config/stdlib/vacpp.hpp +74 -0
  120. mqt/core/include/mqt-core/boost/config/stdlib/xlcpp_zos.hpp +61 -0
  121. mqt/core/include/mqt-core/boost/config/user.hpp +133 -0
  122. mqt/core/include/mqt-core/boost/config/warning_disable.hpp +47 -0
  123. mqt/core/include/mqt-core/boost/config/workaround.hpp +305 -0
  124. mqt/core/include/mqt-core/boost/config.hpp +67 -0
  125. mqt/core/include/mqt-core/boost/cstdint.hpp +556 -0
  126. mqt/core/include/mqt-core/boost/cxx11_char_types.hpp +70 -0
  127. mqt/core/include/mqt-core/boost/detail/workaround.hpp +10 -0
  128. mqt/core/include/mqt-core/boost/limits.hpp +146 -0
  129. mqt/core/include/mqt-core/boost/multiprecision/complex128.hpp +24 -0
  130. mqt/core/include/mqt-core/boost/multiprecision/complex_adaptor.hpp +1046 -0
  131. mqt/core/include/mqt-core/boost/multiprecision/concepts/mp_number_archetypes.hpp +257 -0
  132. mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/io.hpp +698 -0
  133. mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float/transcendental.hpp +157 -0
  134. mqt/core/include/mqt-core/boost/multiprecision/cpp_bin_float.hpp +2297 -0
  135. mqt/core/include/mqt-core/boost/multiprecision/cpp_complex.hpp +12 -0
  136. mqt/core/include/mqt-core/boost/multiprecision/cpp_dec_float.hpp +3690 -0
  137. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add.hpp +368 -0
  138. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/add_unsigned.hpp +387 -0
  139. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/bitwise.hpp +889 -0
  140. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/checked.hpp +178 -0
  141. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/comparison.hpp +374 -0
  142. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/cpp_int_config.hpp +161 -0
  143. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/divide.hpp +703 -0
  144. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/import_export.hpp +248 -0
  145. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/intel_intrinsics.hpp +138 -0
  146. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/limits.hpp +282 -0
  147. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/literals.hpp +295 -0
  148. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/misc.hpp +1457 -0
  149. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/multiply.hpp +848 -0
  150. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/serialize.hpp +211 -0
  151. mqt/core/include/mqt-core/boost/multiprecision/cpp_int/value_pack.hpp +42 -0
  152. mqt/core/include/mqt-core/boost/multiprecision/cpp_int.hpp +2360 -0
  153. mqt/core/include/mqt-core/boost/multiprecision/debug_adaptor.hpp +760 -0
  154. mqt/core/include/mqt-core/boost/multiprecision/detail/assert.hpp +29 -0
  155. mqt/core/include/mqt-core/boost/multiprecision/detail/atomic.hpp +62 -0
  156. mqt/core/include/mqt-core/boost/multiprecision/detail/bitscan.hpp +317 -0
  157. mqt/core/include/mqt-core/boost/multiprecision/detail/check_cpp11_config.hpp +64 -0
  158. mqt/core/include/mqt-core/boost/multiprecision/detail/constexpr.hpp +88 -0
  159. mqt/core/include/mqt-core/boost/multiprecision/detail/default_ops.hpp +4052 -0
  160. mqt/core/include/mqt-core/boost/multiprecision/detail/digits.hpp +49 -0
  161. mqt/core/include/mqt-core/boost/multiprecision/detail/dynamic_array.hpp +44 -0
  162. mqt/core/include/mqt-core/boost/multiprecision/detail/empty_value.hpp +87 -0
  163. mqt/core/include/mqt-core/boost/multiprecision/detail/endian.hpp +35 -0
  164. mqt/core/include/mqt-core/boost/multiprecision/detail/et_ops.hpp +1831 -0
  165. mqt/core/include/mqt-core/boost/multiprecision/detail/float128_functions.hpp +95 -0
  166. mqt/core/include/mqt-core/boost/multiprecision/detail/float_string_cvt.hpp +333 -0
  167. mqt/core/include/mqt-core/boost/multiprecision/detail/fpclassify.hpp +101 -0
  168. mqt/core/include/mqt-core/boost/multiprecision/detail/functions/constants.hpp +288 -0
  169. mqt/core/include/mqt-core/boost/multiprecision/detail/functions/pow.hpp +905 -0
  170. mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trig.hpp +1058 -0
  171. mqt/core/include/mqt-core/boost/multiprecision/detail/functions/trunc.hpp +82 -0
  172. mqt/core/include/mqt-core/boost/multiprecision/detail/generic_interconvert.hpp +687 -0
  173. mqt/core/include/mqt-core/boost/multiprecision/detail/hash.hpp +56 -0
  174. mqt/core/include/mqt-core/boost/multiprecision/detail/integer_ops.hpp +474 -0
  175. mqt/core/include/mqt-core/boost/multiprecision/detail/itos.hpp +39 -0
  176. mqt/core/include/mqt-core/boost/multiprecision/detail/min_max.hpp +106 -0
  177. mqt/core/include/mqt-core/boost/multiprecision/detail/no_et_ops.hpp +661 -0
  178. mqt/core/include/mqt-core/boost/multiprecision/detail/no_exceptions_support.hpp +55 -0
  179. mqt/core/include/mqt-core/boost/multiprecision/detail/number_base.hpp +1656 -0
  180. mqt/core/include/mqt-core/boost/multiprecision/detail/number_compare.hpp +848 -0
  181. mqt/core/include/mqt-core/boost/multiprecision/detail/precision.hpp +313 -0
  182. mqt/core/include/mqt-core/boost/multiprecision/detail/rebind.hpp +19 -0
  183. mqt/core/include/mqt-core/boost/multiprecision/detail/standalone_config.hpp +148 -0
  184. mqt/core/include/mqt-core/boost/multiprecision/detail/static_array.hpp +42 -0
  185. mqt/core/include/mqt-core/boost/multiprecision/detail/string_helpers.hpp +48 -0
  186. mqt/core/include/mqt-core/boost/multiprecision/detail/tables.hpp +80 -0
  187. mqt/core/include/mqt-core/boost/multiprecision/detail/ublas_interop.hpp +75 -0
  188. mqt/core/include/mqt-core/boost/multiprecision/detail/uniform_int_distribution.hpp +212 -0
  189. mqt/core/include/mqt-core/boost/multiprecision/detail/utype_helper.hpp +374 -0
  190. mqt/core/include/mqt-core/boost/multiprecision/eigen.hpp +248 -0
  191. mqt/core/include/mqt-core/boost/multiprecision/float128.hpp +920 -0
  192. mqt/core/include/mqt-core/boost/multiprecision/fwd.hpp +268 -0
  193. mqt/core/include/mqt-core/boost/multiprecision/gmp.hpp +4060 -0
  194. mqt/core/include/mqt-core/boost/multiprecision/integer.hpp +363 -0
  195. mqt/core/include/mqt-core/boost/multiprecision/logged_adaptor.hpp +834 -0
  196. mqt/core/include/mqt-core/boost/multiprecision/miller_rabin.hpp +221 -0
  197. mqt/core/include/mqt-core/boost/multiprecision/mpc.hpp +1721 -0
  198. mqt/core/include/mqt-core/boost/multiprecision/mpfi.hpp +2559 -0
  199. mqt/core/include/mqt-core/boost/multiprecision/mpfr.hpp +3644 -0
  200. mqt/core/include/mqt-core/boost/multiprecision/number.hpp +2500 -0
  201. mqt/core/include/mqt-core/boost/multiprecision/random.hpp +23 -0
  202. mqt/core/include/mqt-core/boost/multiprecision/rational_adaptor.hpp +1289 -0
  203. mqt/core/include/mqt-core/boost/multiprecision/tommath.hpp +1034 -0
  204. mqt/core/include/mqt-core/boost/multiprecision/traits/explicit_conversion.hpp +67 -0
  205. mqt/core/include/mqt-core/boost/multiprecision/traits/extract_exponent_type.hpp +28 -0
  206. mqt/core/include/mqt-core/boost/multiprecision/traits/is_backend.hpp +91 -0
  207. mqt/core/include/mqt-core/boost/multiprecision/traits/is_byte_container.hpp +51 -0
  208. mqt/core/include/mqt-core/boost/multiprecision/traits/is_complex.hpp +22 -0
  209. mqt/core/include/mqt-core/boost/multiprecision/traits/is_convertible_arithmetic.hpp +51 -0
  210. mqt/core/include/mqt-core/boost/multiprecision/traits/is_restricted_conversion.hpp +47 -0
  211. mqt/core/include/mqt-core/boost/multiprecision/traits/is_variable_precision.hpp +25 -0
  212. mqt/core/include/mqt-core/boost/multiprecision/traits/max_digits10.hpp +79 -0
  213. mqt/core/include/mqt-core/boost/multiprecision/traits/std_integer_traits.hpp +90 -0
  214. mqt/core/include/mqt-core/boost/multiprecision/traits/transcendental_reduction_type.hpp +21 -0
  215. mqt/core/include/mqt-core/boost/version.hpp +32 -0
  216. mqt/core/include/mqt-core/circuit_optimizer/CircuitOptimizer.hpp +119 -0
  217. mqt/core/include/mqt-core/circuit_optimizer/mqt_core_circuit_optimizer_export.h +43 -0
  218. mqt/core/include/mqt-core/datastructures/DirectedAcyclicGraph.hpp +117 -0
  219. mqt/core/include/mqt-core/datastructures/DirectedGraph.hpp +158 -0
  220. mqt/core/include/mqt-core/datastructures/DisjointSet.hpp +50 -0
  221. mqt/core/include/mqt-core/datastructures/Layer.hpp +172 -0
  222. mqt/core/include/mqt-core/datastructures/SymmetricMatrix.hpp +57 -0
  223. mqt/core/include/mqt-core/datastructures/UndirectedGraph.hpp +227 -0
  224. mqt/core/include/mqt-core/datastructures/mqt_core_ds_export.h +43 -0
  225. mqt/core/include/mqt-core/dd/Approximation.hpp +45 -0
  226. mqt/core/include/mqt-core/dd/CachedEdge.hpp +174 -0
  227. mqt/core/include/mqt-core/dd/Complex.hpp +165 -0
  228. mqt/core/include/mqt-core/dd/ComplexNumbers.hpp +150 -0
  229. mqt/core/include/mqt-core/dd/ComplexValue.hpp +184 -0
  230. mqt/core/include/mqt-core/dd/ComputeTable.hpp +183 -0
  231. mqt/core/include/mqt-core/dd/DDDefinitions.hpp +139 -0
  232. mqt/core/include/mqt-core/dd/DDpackageConfig.hpp +104 -0
  233. mqt/core/include/mqt-core/dd/DensityNoiseTable.hpp +114 -0
  234. mqt/core/include/mqt-core/dd/Edge.hpp +416 -0
  235. mqt/core/include/mqt-core/dd/Export.hpp +438 -0
  236. mqt/core/include/mqt-core/dd/FunctionalityConstruction.hpp +75 -0
  237. mqt/core/include/mqt-core/dd/GateMatrixDefinitions.hpp +43 -0
  238. mqt/core/include/mqt-core/dd/LinkedListBase.hpp +45 -0
  239. mqt/core/include/mqt-core/dd/MemoryManager.hpp +193 -0
  240. mqt/core/include/mqt-core/dd/Node.hpp +223 -0
  241. mqt/core/include/mqt-core/dd/NoiseFunctionality.hpp +144 -0
  242. mqt/core/include/mqt-core/dd/Operations.hpp +306 -0
  243. mqt/core/include/mqt-core/dd/Package.hpp +2036 -0
  244. mqt/core/include/mqt-core/dd/Package_fwd.hpp +22 -0
  245. mqt/core/include/mqt-core/dd/RealNumber.hpp +255 -0
  246. mqt/core/include/mqt-core/dd/RealNumberUniqueTable.hpp +217 -0
  247. mqt/core/include/mqt-core/dd/Simulation.hpp +98 -0
  248. mqt/core/include/mqt-core/dd/StateGeneration.hpp +143 -0
  249. mqt/core/include/mqt-core/dd/StochasticNoiseOperationTable.hpp +88 -0
  250. mqt/core/include/mqt-core/dd/UnaryComputeTable.hpp +121 -0
  251. mqt/core/include/mqt-core/dd/UniqueTable.hpp +243 -0
  252. mqt/core/include/mqt-core/dd/mqt_core_dd_export.h +43 -0
  253. mqt/core/include/mqt-core/dd/statistics/MemoryManagerStatistics.hpp +84 -0
  254. mqt/core/include/mqt-core/dd/statistics/PackageStatistics.hpp +55 -0
  255. mqt/core/include/mqt-core/dd/statistics/Statistics.hpp +48 -0
  256. mqt/core/include/mqt-core/dd/statistics/TableStatistics.hpp +79 -0
  257. mqt/core/include/mqt-core/dd/statistics/UniqueTableStatistics.hpp +31 -0
  258. mqt/core/include/mqt-core/fomac/FoMaC.hpp +568 -0
  259. mqt/core/include/mqt-core/ir/Definitions.hpp +108 -0
  260. mqt/core/include/mqt-core/ir/Permutation.hpp +213 -0
  261. mqt/core/include/mqt-core/ir/QuantumComputation.hpp +596 -0
  262. mqt/core/include/mqt-core/ir/Register.hpp +125 -0
  263. mqt/core/include/mqt-core/ir/mqt_core_ir_export.h +43 -0
  264. mqt/core/include/mqt-core/ir/operations/AodOperation.hpp +92 -0
  265. mqt/core/include/mqt-core/ir/operations/CompoundOperation.hpp +212 -0
  266. mqt/core/include/mqt-core/ir/operations/Control.hpp +142 -0
  267. mqt/core/include/mqt-core/ir/operations/Expression.hpp +847 -0
  268. mqt/core/include/mqt-core/ir/operations/IfElseOperation.hpp +169 -0
  269. mqt/core/include/mqt-core/ir/operations/NonUnitaryOperation.hpp +118 -0
  270. mqt/core/include/mqt-core/ir/operations/OpType.hpp +120 -0
  271. mqt/core/include/mqt-core/ir/operations/OpType.inc +76 -0
  272. mqt/core/include/mqt-core/ir/operations/Operation.hpp +247 -0
  273. mqt/core/include/mqt-core/ir/operations/StandardOperation.hpp +140 -0
  274. mqt/core/include/mqt-core/ir/operations/SymbolicOperation.hpp +144 -0
  275. mqt/core/include/mqt-core/mqt_na_qdmi/device.h +602 -0
  276. mqt/core/include/mqt-core/mqt_na_qdmi/types.h +78 -0
  277. mqt/core/include/mqt-core/na/NAComputation.hpp +185 -0
  278. mqt/core/include/mqt-core/na/device/Device.hpp +410 -0
  279. mqt/core/include/mqt-core/na/device/DeviceMemberInitializers.hpp +724 -0
  280. mqt/core/include/mqt-core/na/device/Generator.hpp +447 -0
  281. mqt/core/include/mqt-core/na/entities/Atom.hpp +62 -0
  282. mqt/core/include/mqt-core/na/entities/Location.hpp +154 -0
  283. mqt/core/include/mqt-core/na/entities/Zone.hpp +95 -0
  284. mqt/core/include/mqt-core/na/fomac/Device.hpp +169 -0
  285. mqt/core/include/mqt-core/na/mqt_core_na_export.h +43 -0
  286. mqt/core/include/mqt-core/na/operations/GlobalCZOp.hpp +38 -0
  287. mqt/core/include/mqt-core/na/operations/GlobalOp.hpp +58 -0
  288. mqt/core/include/mqt-core/na/operations/GlobalRYOp.hpp +42 -0
  289. mqt/core/include/mqt-core/na/operations/LoadOp.hpp +89 -0
  290. mqt/core/include/mqt-core/na/operations/LocalOp.hpp +56 -0
  291. mqt/core/include/mqt-core/na/operations/LocalRZOp.hpp +42 -0
  292. mqt/core/include/mqt-core/na/operations/LocalUOp.hpp +49 -0
  293. mqt/core/include/mqt-core/na/operations/MoveOp.hpp +66 -0
  294. mqt/core/include/mqt-core/na/operations/Op.hpp +62 -0
  295. mqt/core/include/mqt-core/na/operations/ShuttlingOp.hpp +51 -0
  296. mqt/core/include/mqt-core/na/operations/StoreOp.hpp +87 -0
  297. mqt/core/include/mqt-core/qasm3/Exception.hpp +85 -0
  298. mqt/core/include/mqt-core/qasm3/Gate.hpp +65 -0
  299. mqt/core/include/mqt-core/qasm3/Importer.hpp +192 -0
  300. mqt/core/include/mqt-core/qasm3/InstVisitor.hpp +145 -0
  301. mqt/core/include/mqt-core/qasm3/NestedEnvironment.hpp +41 -0
  302. mqt/core/include/mqt-core/qasm3/Parser.hpp +170 -0
  303. mqt/core/include/mqt-core/qasm3/Scanner.hpp +73 -0
  304. mqt/core/include/mqt-core/qasm3/Statement.hpp +486 -0
  305. mqt/core/include/mqt-core/qasm3/Statement_fwd.hpp +39 -0
  306. mqt/core/include/mqt-core/qasm3/StdGates.hpp +232 -0
  307. mqt/core/include/mqt-core/qasm3/Token.hpp +198 -0
  308. mqt/core/include/mqt-core/qasm3/Types.hpp +238 -0
  309. mqt/core/include/mqt-core/qasm3/Types_fwd.hpp +22 -0
  310. mqt/core/include/mqt-core/qasm3/mqt_core_qasm_export.h +43 -0
  311. mqt/core/include/mqt-core/qasm3/passes/CompilerPass.hpp +22 -0
  312. mqt/core/include/mqt-core/qasm3/passes/ConstEvalPass.hpp +102 -0
  313. mqt/core/include/mqt-core/qasm3/passes/TypeCheckPass.hpp +124 -0
  314. mqt/core/include/mqt-core/qdmi/Driver.hpp +431 -0
  315. mqt/core/include/mqt-core/zx/FunctionalityConstruction.hpp +125 -0
  316. mqt/core/include/mqt-core/zx/Rational.hpp +318 -0
  317. mqt/core/include/mqt-core/zx/Rules.hpp +132 -0
  318. mqt/core/include/mqt-core/zx/Simplify.hpp +182 -0
  319. mqt/core/include/mqt-core/zx/Utils.hpp +212 -0
  320. mqt/core/include/mqt-core/zx/ZXDefinitions.hpp +93 -0
  321. mqt/core/include/mqt-core/zx/ZXDiagram.hpp +480 -0
  322. mqt/core/include/mqt-core/zx/mqt_core_zx_export.h +43 -0
  323. mqt/core/include/nlohmann/adl_serializer.hpp +55 -0
  324. mqt/core/include/nlohmann/byte_container_with_subtype.hpp +103 -0
  325. mqt/core/include/nlohmann/detail/abi_macros.hpp +111 -0
  326. mqt/core/include/nlohmann/detail/conversions/from_json.hpp +577 -0
  327. mqt/core/include/nlohmann/detail/conversions/to_chars.hpp +1118 -0
  328. mqt/core/include/nlohmann/detail/conversions/to_json.hpp +479 -0
  329. mqt/core/include/nlohmann/detail/exceptions.hpp +291 -0
  330. mqt/core/include/nlohmann/detail/hash.hpp +129 -0
  331. mqt/core/include/nlohmann/detail/input/binary_reader.hpp +3068 -0
  332. mqt/core/include/nlohmann/detail/input/input_adapters.hpp +549 -0
  333. mqt/core/include/nlohmann/detail/input/json_sax.hpp +986 -0
  334. mqt/core/include/nlohmann/detail/input/lexer.hpp +1643 -0
  335. mqt/core/include/nlohmann/detail/input/parser.hpp +519 -0
  336. mqt/core/include/nlohmann/detail/input/position_t.hpp +37 -0
  337. mqt/core/include/nlohmann/detail/iterators/internal_iterator.hpp +35 -0
  338. mqt/core/include/nlohmann/detail/iterators/iter_impl.hpp +760 -0
  339. mqt/core/include/nlohmann/detail/iterators/iteration_proxy.hpp +235 -0
  340. mqt/core/include/nlohmann/detail/iterators/iterator_traits.hpp +61 -0
  341. mqt/core/include/nlohmann/detail/iterators/json_reverse_iterator.hpp +130 -0
  342. mqt/core/include/nlohmann/detail/iterators/primitive_iterator.hpp +132 -0
  343. mqt/core/include/nlohmann/detail/json_custom_base_class.hpp +39 -0
  344. mqt/core/include/nlohmann/detail/json_pointer.hpp +988 -0
  345. mqt/core/include/nlohmann/detail/json_ref.hpp +78 -0
  346. mqt/core/include/nlohmann/detail/macro_scope.hpp +595 -0
  347. mqt/core/include/nlohmann/detail/macro_unscope.hpp +46 -0
  348. mqt/core/include/nlohmann/detail/meta/call_std/begin.hpp +17 -0
  349. mqt/core/include/nlohmann/detail/meta/call_std/end.hpp +17 -0
  350. mqt/core/include/nlohmann/detail/meta/cpp_future.hpp +171 -0
  351. mqt/core/include/nlohmann/detail/meta/detected.hpp +70 -0
  352. mqt/core/include/nlohmann/detail/meta/identity_tag.hpp +21 -0
  353. mqt/core/include/nlohmann/detail/meta/is_sax.hpp +159 -0
  354. mqt/core/include/nlohmann/detail/meta/std_fs.hpp +29 -0
  355. mqt/core/include/nlohmann/detail/meta/type_traits.hpp +795 -0
  356. mqt/core/include/nlohmann/detail/meta/void_t.hpp +24 -0
  357. mqt/core/include/nlohmann/detail/output/binary_writer.hpp +1850 -0
  358. mqt/core/include/nlohmann/detail/output/output_adapters.hpp +147 -0
  359. mqt/core/include/nlohmann/detail/output/serializer.hpp +988 -0
  360. mqt/core/include/nlohmann/detail/string_concat.hpp +146 -0
  361. mqt/core/include/nlohmann/detail/string_escape.hpp +72 -0
  362. mqt/core/include/nlohmann/detail/string_utils.hpp +37 -0
  363. mqt/core/include/nlohmann/detail/value_t.hpp +118 -0
  364. mqt/core/include/nlohmann/json.hpp +5306 -0
  365. mqt/core/include/nlohmann/json_fwd.hpp +75 -0
  366. mqt/core/include/nlohmann/ordered_map.hpp +359 -0
  367. mqt/core/include/nlohmann/thirdparty/hedley/hedley.hpp +2045 -0
  368. mqt/core/include/nlohmann/thirdparty/hedley/hedley_undef.hpp +158 -0
  369. mqt/core/include/qdmi/qdmi/client.h +990 -0
  370. mqt/core/include/qdmi/qdmi/constants.h +1139 -0
  371. mqt/core/include/qdmi/qdmi/device.h +602 -0
  372. mqt/core/include/qdmi/qdmi/types.h +78 -0
  373. mqt/core/include/spdlog/async.h +99 -0
  374. mqt/core/include/spdlog/async_logger-inl.h +84 -0
  375. mqt/core/include/spdlog/async_logger.h +74 -0
  376. mqt/core/include/spdlog/cfg/argv.h +40 -0
  377. mqt/core/include/spdlog/cfg/env.h +36 -0
  378. mqt/core/include/spdlog/cfg/helpers-inl.h +107 -0
  379. mqt/core/include/spdlog/cfg/helpers.h +29 -0
  380. mqt/core/include/spdlog/common-inl.h +68 -0
  381. mqt/core/include/spdlog/common.h +406 -0
  382. mqt/core/include/spdlog/details/backtracer-inl.h +63 -0
  383. mqt/core/include/spdlog/details/backtracer.h +45 -0
  384. mqt/core/include/spdlog/details/circular_q.h +115 -0
  385. mqt/core/include/spdlog/details/console_globals.h +28 -0
  386. mqt/core/include/spdlog/details/file_helper-inl.h +153 -0
  387. mqt/core/include/spdlog/details/file_helper.h +61 -0
  388. mqt/core/include/spdlog/details/fmt_helper.h +141 -0
  389. mqt/core/include/spdlog/details/log_msg-inl.h +44 -0
  390. mqt/core/include/spdlog/details/log_msg.h +40 -0
  391. mqt/core/include/spdlog/details/log_msg_buffer-inl.h +54 -0
  392. mqt/core/include/spdlog/details/log_msg_buffer.h +32 -0
  393. mqt/core/include/spdlog/details/mpmc_blocking_q.h +177 -0
  394. mqt/core/include/spdlog/details/null_mutex.h +35 -0
  395. mqt/core/include/spdlog/details/os-inl.h +606 -0
  396. mqt/core/include/spdlog/details/os.h +127 -0
  397. mqt/core/include/spdlog/details/periodic_worker-inl.h +26 -0
  398. mqt/core/include/spdlog/details/periodic_worker.h +58 -0
  399. mqt/core/include/spdlog/details/registry-inl.h +270 -0
  400. mqt/core/include/spdlog/details/registry.h +131 -0
  401. mqt/core/include/spdlog/details/synchronous_factory.h +22 -0
  402. mqt/core/include/spdlog/details/tcp_client-windows.h +135 -0
  403. mqt/core/include/spdlog/details/tcp_client.h +127 -0
  404. mqt/core/include/spdlog/details/thread_pool-inl.h +126 -0
  405. mqt/core/include/spdlog/details/thread_pool.h +117 -0
  406. mqt/core/include/spdlog/details/udp_client-windows.h +98 -0
  407. mqt/core/include/spdlog/details/udp_client.h +81 -0
  408. mqt/core/include/spdlog/details/windows_include.h +11 -0
  409. mqt/core/include/spdlog/fmt/bin_to_hex.h +224 -0
  410. mqt/core/include/spdlog/fmt/bundled/args.h +220 -0
  411. mqt/core/include/spdlog/fmt/bundled/base.h +2989 -0
  412. mqt/core/include/spdlog/fmt/bundled/chrono.h +2330 -0
  413. mqt/core/include/spdlog/fmt/bundled/color.h +637 -0
  414. mqt/core/include/spdlog/fmt/bundled/compile.h +539 -0
  415. mqt/core/include/spdlog/fmt/bundled/core.h +5 -0
  416. mqt/core/include/spdlog/fmt/bundled/fmt.license.rst +27 -0
  417. mqt/core/include/spdlog/fmt/bundled/format-inl.h +1948 -0
  418. mqt/core/include/spdlog/fmt/bundled/format.h +4244 -0
  419. mqt/core/include/spdlog/fmt/bundled/os.h +427 -0
  420. mqt/core/include/spdlog/fmt/bundled/ostream.h +167 -0
  421. mqt/core/include/spdlog/fmt/bundled/printf.h +633 -0
  422. mqt/core/include/spdlog/fmt/bundled/ranges.h +850 -0
  423. mqt/core/include/spdlog/fmt/bundled/std.h +728 -0
  424. mqt/core/include/spdlog/fmt/bundled/xchar.h +369 -0
  425. mqt/core/include/spdlog/fmt/chrono.h +23 -0
  426. mqt/core/include/spdlog/fmt/compile.h +23 -0
  427. mqt/core/include/spdlog/fmt/fmt.h +30 -0
  428. mqt/core/include/spdlog/fmt/ostr.h +23 -0
  429. mqt/core/include/spdlog/fmt/ranges.h +23 -0
  430. mqt/core/include/spdlog/fmt/std.h +24 -0
  431. mqt/core/include/spdlog/fmt/xchar.h +23 -0
  432. mqt/core/include/spdlog/formatter.h +17 -0
  433. mqt/core/include/spdlog/fwd.h +18 -0
  434. mqt/core/include/spdlog/logger-inl.h +198 -0
  435. mqt/core/include/spdlog/logger.h +379 -0
  436. mqt/core/include/spdlog/mdc.h +52 -0
  437. mqt/core/include/spdlog/pattern_formatter-inl.h +1340 -0
  438. mqt/core/include/spdlog/pattern_formatter.h +118 -0
  439. mqt/core/include/spdlog/sinks/android_sink.h +137 -0
  440. mqt/core/include/spdlog/sinks/ansicolor_sink-inl.h +142 -0
  441. mqt/core/include/spdlog/sinks/ansicolor_sink.h +116 -0
  442. mqt/core/include/spdlog/sinks/base_sink-inl.h +59 -0
  443. mqt/core/include/spdlog/sinks/base_sink.h +51 -0
  444. mqt/core/include/spdlog/sinks/basic_file_sink-inl.h +48 -0
  445. mqt/core/include/spdlog/sinks/basic_file_sink.h +66 -0
  446. mqt/core/include/spdlog/sinks/callback_sink.h +56 -0
  447. mqt/core/include/spdlog/sinks/daily_file_sink.h +254 -0
  448. mqt/core/include/spdlog/sinks/dist_sink.h +81 -0
  449. mqt/core/include/spdlog/sinks/dup_filter_sink.h +91 -0
  450. mqt/core/include/spdlog/sinks/hourly_file_sink.h +193 -0
  451. mqt/core/include/spdlog/sinks/kafka_sink.h +119 -0
  452. mqt/core/include/spdlog/sinks/mongo_sink.h +108 -0
  453. mqt/core/include/spdlog/sinks/msvc_sink.h +68 -0
  454. mqt/core/include/spdlog/sinks/null_sink.h +41 -0
  455. mqt/core/include/spdlog/sinks/ostream_sink.h +43 -0
  456. mqt/core/include/spdlog/sinks/qt_sinks.h +304 -0
  457. mqt/core/include/spdlog/sinks/ringbuffer_sink.h +67 -0
  458. mqt/core/include/spdlog/sinks/rotating_file_sink-inl.h +179 -0
  459. mqt/core/include/spdlog/sinks/rotating_file_sink.h +93 -0
  460. mqt/core/include/spdlog/sinks/sink-inl.h +22 -0
  461. mqt/core/include/spdlog/sinks/sink.h +34 -0
  462. mqt/core/include/spdlog/sinks/stdout_color_sinks-inl.h +38 -0
  463. mqt/core/include/spdlog/sinks/stdout_color_sinks.h +49 -0
  464. mqt/core/include/spdlog/sinks/stdout_sinks-inl.h +127 -0
  465. mqt/core/include/spdlog/sinks/stdout_sinks.h +84 -0
  466. mqt/core/include/spdlog/sinks/syslog_sink.h +104 -0
  467. mqt/core/include/spdlog/sinks/systemd_sink.h +121 -0
  468. mqt/core/include/spdlog/sinks/tcp_sink.h +75 -0
  469. mqt/core/include/spdlog/sinks/udp_sink.h +69 -0
  470. mqt/core/include/spdlog/sinks/win_eventlog_sink.h +260 -0
  471. mqt/core/include/spdlog/sinks/wincolor_sink-inl.h +172 -0
  472. mqt/core/include/spdlog/sinks/wincolor_sink.h +82 -0
  473. mqt/core/include/spdlog/spdlog-inl.h +96 -0
  474. mqt/core/include/spdlog/spdlog.h +357 -0
  475. mqt/core/include/spdlog/stopwatch.h +66 -0
  476. mqt/core/include/spdlog/tweakme.h +148 -0
  477. mqt/core/include/spdlog/version.h +11 -0
  478. mqt/core/ir/__init__.pyi +2078 -0
  479. mqt/core/ir/operations.pyi +1011 -0
  480. mqt/core/ir/registers.pyi +91 -0
  481. mqt/core/ir/symbolic.pyi +177 -0
  482. mqt/core/ir.cp313t-win_amd64.pyd +0 -0
  483. mqt/core/lib/mqt-core-algorithms.lib +0 -0
  484. mqt/core/lib/mqt-core-circuit-optimizer.lib +0 -0
  485. mqt/core/lib/mqt-core-dd.lib +0 -0
  486. mqt/core/lib/mqt-core-ds.lib +0 -0
  487. mqt/core/lib/mqt-core-fomac.lib +0 -0
  488. mqt/core/lib/mqt-core-ir.lib +0 -0
  489. mqt/core/lib/mqt-core-na-fomac.lib +0 -0
  490. mqt/core/lib/mqt-core-na.lib +0 -0
  491. mqt/core/lib/mqt-core-qasm.lib +0 -0
  492. mqt/core/lib/mqt-core-qdmi-driver.lib +0 -0
  493. mqt/core/lib/mqt-core-qdmi-na-device-gen.lib +0 -0
  494. mqt/core/lib/mqt-core-qdmi-na-device.lib +0 -0
  495. mqt/core/lib/mqt-core-zx.lib +0 -0
  496. mqt/core/lib/pkgconfig/spdlog.pc +13 -0
  497. mqt/core/lib/spdlog.lib +0 -0
  498. mqt/core/na/__init__.py +12 -0
  499. mqt/core/na/fomac.cp313t-win_amd64.pyd +0 -0
  500. mqt/core/na/fomac.pyi +117 -0
  501. mqt/core/nlohmann_json.natvis +278 -0
  502. mqt/core/plugins/__init__.py +9 -0
  503. mqt/core/plugins/qiskit/__init__.py +19 -0
  504. mqt/core/plugins/qiskit/mqt_to_qiskit.py +420 -0
  505. mqt/core/plugins/qiskit/qiskit_to_mqt.py +562 -0
  506. mqt/core/py.typed +2 -0
  507. mqt/core/share/cmake/mqt-core/AddMQTPythonBinding.cmake +55 -0
  508. mqt/core/share/cmake/mqt-core/Cache.cmake +33 -0
  509. mqt/core/share/cmake/mqt-core/FindGMP.cmake +103 -0
  510. mqt/core/share/cmake/mqt-core/PackageAddTest.cmake +46 -0
  511. mqt/core/share/cmake/mqt-core/PreventInSourceBuilds.cmake +25 -0
  512. mqt/core/share/cmake/mqt-core/StandardProjectSettings.cmake +87 -0
  513. mqt/core/share/cmake/mqt-core/mqt-core-config-version.cmake +85 -0
  514. mqt/core/share/cmake/mqt-core/mqt-core-config.cmake +52 -0
  515. mqt/core/share/cmake/mqt-core/mqt-core-targets-release.cmake +141 -0
  516. mqt/core/share/cmake/mqt-core/mqt-core-targets.cmake +445 -0
  517. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfig.cmake +15 -0
  518. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonConfigVersion.cmake +20 -0
  519. mqt/core/share/cmake/nlohmann_json/nlohmann_jsonTargets.cmake +110 -0
  520. mqt/core/share/cmake/qdmi/Cache.cmake +44 -0
  521. mqt/core/share/cmake/qdmi/PrefixHandling.cmake +78 -0
  522. mqt/core/share/cmake/qdmi/prefix_defs.txt +26 -0
  523. mqt/core/share/cmake/qdmi/qdmi-config-version.cmake +85 -0
  524. mqt/core/share/cmake/qdmi/qdmi-config.cmake +42 -0
  525. mqt/core/share/cmake/qdmi/qdmi-targets.cmake +129 -0
  526. mqt/core/share/cmake/spdlog/spdlogConfig.cmake +44 -0
  527. mqt/core/share/cmake/spdlog/spdlogConfigTargets-release.cmake +19 -0
  528. mqt/core/share/cmake/spdlog/spdlogConfigTargets.cmake +121 -0
  529. mqt/core/share/cmake/spdlog/spdlogConfigVersion.cmake +65 -0
  530. mqt/core/share/pkgconfig/nlohmann_json.pc +7 -0
  531. mqt_core-3.3.2.dist-info/DELVEWHEEL +2 -0
  532. mqt_core-3.3.2.dist-info/METADATA +210 -0
  533. mqt_core-3.3.2.dist-info/RECORD +537 -0
  534. mqt_core-3.3.2.dist-info/WHEEL +5 -0
  535. mqt_core-3.3.2.dist-info/entry_points.txt +4 -0
  536. mqt_core-3.3.2.dist-info/licenses/LICENSE.md +22 -0
  537. mqt_core.libs/msvcp140.dll +0 -0
@@ -0,0 +1,369 @@
1
+ // Formatting library for C++ - optional wchar_t and exotic character support
2
+ //
3
+ // Copyright (c) 2012 - present, Victor Zverovich
4
+ // All rights reserved.
5
+ //
6
+ // For the license information refer to format.h.
7
+
8
+ #ifndef FMT_XCHAR_H_
9
+ #define FMT_XCHAR_H_
10
+
11
+ #include "color.h"
12
+ #include "format.h"
13
+ #include "ostream.h"
14
+ #include "ranges.h"
15
+
16
+ #ifndef FMT_MODULE
17
+ # include <cwchar>
18
+ # if FMT_USE_LOCALE
19
+ # include <locale>
20
+ # endif
21
+ #endif
22
+
23
+ FMT_BEGIN_NAMESPACE
24
+ namespace detail {
25
+
26
+ template <typename T>
27
+ using is_exotic_char = bool_constant<!std::is_same<T, char>::value>;
28
+
29
+ template <typename S, typename = void> struct format_string_char {};
30
+
31
+ template <typename S>
32
+ struct format_string_char<
33
+ S, void_t<decltype(sizeof(detail::to_string_view(std::declval<S>())))>> {
34
+ using type = char_t<S>;
35
+ };
36
+
37
+ template <typename S>
38
+ struct format_string_char<
39
+ S, enable_if_t<std::is_base_of<detail::compile_string, S>::value>> {
40
+ using type = typename S::char_type;
41
+ };
42
+
43
+ template <typename S>
44
+ using format_string_char_t = typename format_string_char<S>::type;
45
+
46
+ inline auto write_loc(basic_appender<wchar_t> out, loc_value value,
47
+ const format_specs& specs, locale_ref loc) -> bool {
48
+ #if FMT_USE_LOCALE
49
+ auto& numpunct =
50
+ std::use_facet<std::numpunct<wchar_t>>(loc.get<std::locale>());
51
+ auto separator = std::wstring();
52
+ auto grouping = numpunct.grouping();
53
+ if (!grouping.empty()) separator = std::wstring(1, numpunct.thousands_sep());
54
+ return value.visit(loc_writer<wchar_t>{out, specs, separator, grouping, {}});
55
+ #endif
56
+ return false;
57
+ }
58
+ } // namespace detail
59
+
60
+ FMT_BEGIN_EXPORT
61
+
62
+ using wstring_view = basic_string_view<wchar_t>;
63
+ using wformat_parse_context = parse_context<wchar_t>;
64
+ using wformat_context = buffered_context<wchar_t>;
65
+ using wformat_args = basic_format_args<wformat_context>;
66
+ using wmemory_buffer = basic_memory_buffer<wchar_t>;
67
+
68
+ template <typename Char, typename... T> struct basic_fstring {
69
+ private:
70
+ basic_string_view<Char> str_;
71
+
72
+ static constexpr int num_static_named_args =
73
+ detail::count_static_named_args<T...>();
74
+
75
+ using checker = detail::format_string_checker<
76
+ Char, static_cast<int>(sizeof...(T)), num_static_named_args,
77
+ num_static_named_args != detail::count_named_args<T...>()>;
78
+
79
+ using arg_pack = detail::arg_pack<T...>;
80
+
81
+ public:
82
+ using t = basic_fstring;
83
+
84
+ template <typename S,
85
+ FMT_ENABLE_IF(
86
+ std::is_convertible<const S&, basic_string_view<Char>>::value)>
87
+ FMT_CONSTEVAL FMT_ALWAYS_INLINE basic_fstring(const S& s) : str_(s) {
88
+ if (FMT_USE_CONSTEVAL)
89
+ detail::parse_format_string<Char>(s, checker(s, arg_pack()));
90
+ }
91
+ template <typename S,
92
+ FMT_ENABLE_IF(std::is_base_of<detail::compile_string, S>::value&&
93
+ std::is_same<typename S::char_type, Char>::value)>
94
+ FMT_ALWAYS_INLINE basic_fstring(const S&) : str_(S()) {
95
+ FMT_CONSTEXPR auto sv = basic_string_view<Char>(S());
96
+ FMT_CONSTEXPR int ignore =
97
+ (parse_format_string(sv, checker(sv, arg_pack())), 0);
98
+ detail::ignore_unused(ignore);
99
+ }
100
+ basic_fstring(runtime_format_string<Char> fmt) : str_(fmt.str) {}
101
+
102
+ operator basic_string_view<Char>() const { return str_; }
103
+ auto get() const -> basic_string_view<Char> { return str_; }
104
+ };
105
+
106
+ template <typename Char, typename... T>
107
+ using basic_format_string = basic_fstring<Char, T...>;
108
+
109
+ template <typename... T>
110
+ using wformat_string = typename basic_format_string<wchar_t, T...>::t;
111
+ inline auto runtime(wstring_view s) -> runtime_format_string<wchar_t> {
112
+ return {{s}};
113
+ }
114
+
115
+ #ifdef __cpp_char8_t
116
+ template <> struct is_char<char8_t> : bool_constant<detail::is_utf8_enabled> {};
117
+ #endif
118
+
119
+ template <typename... T>
120
+ constexpr auto make_wformat_args(T&... args)
121
+ -> decltype(fmt::make_format_args<wformat_context>(args...)) {
122
+ return fmt::make_format_args<wformat_context>(args...);
123
+ }
124
+
125
+ #if !FMT_USE_NONTYPE_TEMPLATE_ARGS
126
+ inline namespace literals {
127
+ inline auto operator""_a(const wchar_t* s, size_t) -> detail::udl_arg<wchar_t> {
128
+ return {s};
129
+ }
130
+ } // namespace literals
131
+ #endif
132
+
133
+ template <typename It, typename Sentinel>
134
+ auto join(It begin, Sentinel end, wstring_view sep)
135
+ -> join_view<It, Sentinel, wchar_t> {
136
+ return {begin, end, sep};
137
+ }
138
+
139
+ template <typename Range, FMT_ENABLE_IF(!is_tuple_like<Range>::value)>
140
+ auto join(Range&& range, wstring_view sep)
141
+ -> join_view<decltype(std::begin(range)), decltype(std::end(range)),
142
+ wchar_t> {
143
+ return join(std::begin(range), std::end(range), sep);
144
+ }
145
+
146
+ template <typename T>
147
+ auto join(std::initializer_list<T> list, wstring_view sep)
148
+ -> join_view<const T*, const T*, wchar_t> {
149
+ return join(std::begin(list), std::end(list), sep);
150
+ }
151
+
152
+ template <typename Tuple, FMT_ENABLE_IF(is_tuple_like<Tuple>::value)>
153
+ auto join(const Tuple& tuple, basic_string_view<wchar_t> sep)
154
+ -> tuple_join_view<wchar_t, Tuple> {
155
+ return {tuple, sep};
156
+ }
157
+
158
+ template <typename Char, FMT_ENABLE_IF(!std::is_same<Char, char>::value)>
159
+ auto vformat(basic_string_view<Char> fmt,
160
+ typename detail::vformat_args<Char>::type args)
161
+ -> std::basic_string<Char> {
162
+ auto buf = basic_memory_buffer<Char>();
163
+ detail::vformat_to(buf, fmt, args);
164
+ return {buf.data(), buf.size()};
165
+ }
166
+
167
+ template <typename... T>
168
+ auto format(wformat_string<T...> fmt, T&&... args) -> std::wstring {
169
+ return vformat(fmt::wstring_view(fmt), fmt::make_wformat_args(args...));
170
+ }
171
+
172
+ template <typename OutputIt, typename... T>
173
+ auto format_to(OutputIt out, wformat_string<T...> fmt, T&&... args)
174
+ -> OutputIt {
175
+ return vformat_to(out, fmt::wstring_view(fmt),
176
+ fmt::make_wformat_args(args...));
177
+ }
178
+
179
+ // Pass char_t as a default template parameter instead of using
180
+ // std::basic_string<char_t<S>> to reduce the symbol size.
181
+ template <typename S, typename... T,
182
+ typename Char = detail::format_string_char_t<S>,
183
+ FMT_ENABLE_IF(!std::is_same<Char, char>::value &&
184
+ !std::is_same<Char, wchar_t>::value)>
185
+ auto format(const S& fmt, T&&... args) -> std::basic_string<Char> {
186
+ return vformat(detail::to_string_view(fmt),
187
+ fmt::make_format_args<buffered_context<Char>>(args...));
188
+ }
189
+
190
+ template <typename Locale, typename S,
191
+ typename Char = detail::format_string_char_t<S>,
192
+ FMT_ENABLE_IF(detail::is_locale<Locale>::value&&
193
+ detail::is_exotic_char<Char>::value)>
194
+ inline auto vformat(const Locale& loc, const S& fmt,
195
+ typename detail::vformat_args<Char>::type args)
196
+ -> std::basic_string<Char> {
197
+ auto buf = basic_memory_buffer<Char>();
198
+ detail::vformat_to(buf, detail::to_string_view(fmt), args,
199
+ detail::locale_ref(loc));
200
+ return {buf.data(), buf.size()};
201
+ }
202
+
203
+ template <typename Locale, typename S, typename... T,
204
+ typename Char = detail::format_string_char_t<S>,
205
+ FMT_ENABLE_IF(detail::is_locale<Locale>::value&&
206
+ detail::is_exotic_char<Char>::value)>
207
+ inline auto format(const Locale& loc, const S& fmt, T&&... args)
208
+ -> std::basic_string<Char> {
209
+ return vformat(loc, detail::to_string_view(fmt),
210
+ fmt::make_format_args<buffered_context<Char>>(args...));
211
+ }
212
+
213
+ template <typename OutputIt, typename S,
214
+ typename Char = detail::format_string_char_t<S>,
215
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
216
+ detail::is_exotic_char<Char>::value)>
217
+ auto vformat_to(OutputIt out, const S& fmt,
218
+ typename detail::vformat_args<Char>::type args) -> OutputIt {
219
+ auto&& buf = detail::get_buffer<Char>(out);
220
+ detail::vformat_to(buf, detail::to_string_view(fmt), args);
221
+ return detail::get_iterator(buf, out);
222
+ }
223
+
224
+ template <typename OutputIt, typename S, typename... T,
225
+ typename Char = detail::format_string_char_t<S>,
226
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value &&
227
+ !std::is_same<Char, char>::value &&
228
+ !std::is_same<Char, wchar_t>::value)>
229
+ inline auto format_to(OutputIt out, const S& fmt, T&&... args) -> OutputIt {
230
+ return vformat_to(out, detail::to_string_view(fmt),
231
+ fmt::make_format_args<buffered_context<Char>>(args...));
232
+ }
233
+
234
+ template <typename Locale, typename S, typename OutputIt, typename... Args,
235
+ typename Char = detail::format_string_char_t<S>,
236
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
237
+ detail::is_locale<Locale>::value&&
238
+ detail::is_exotic_char<Char>::value)>
239
+ inline auto vformat_to(OutputIt out, const Locale& loc, const S& fmt,
240
+ typename detail::vformat_args<Char>::type args)
241
+ -> OutputIt {
242
+ auto&& buf = detail::get_buffer<Char>(out);
243
+ vformat_to(buf, detail::to_string_view(fmt), args, detail::locale_ref(loc));
244
+ return detail::get_iterator(buf, out);
245
+ }
246
+
247
+ template <typename Locale, typename OutputIt, typename S, typename... T,
248
+ typename Char = detail::format_string_char_t<S>,
249
+ bool enable = detail::is_output_iterator<OutputIt, Char>::value &&
250
+ detail::is_locale<Locale>::value &&
251
+ detail::is_exotic_char<Char>::value>
252
+ inline auto format_to(OutputIt out, const Locale& loc, const S& fmt,
253
+ T&&... args) ->
254
+ typename std::enable_if<enable, OutputIt>::type {
255
+ return vformat_to(out, loc, detail::to_string_view(fmt),
256
+ fmt::make_format_args<buffered_context<Char>>(args...));
257
+ }
258
+
259
+ template <typename OutputIt, typename Char, typename... Args,
260
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
261
+ detail::is_exotic_char<Char>::value)>
262
+ inline auto vformat_to_n(OutputIt out, size_t n, basic_string_view<Char> fmt,
263
+ typename detail::vformat_args<Char>::type args)
264
+ -> format_to_n_result<OutputIt> {
265
+ using traits = detail::fixed_buffer_traits;
266
+ auto buf = detail::iterator_buffer<OutputIt, Char, traits>(out, n);
267
+ detail::vformat_to(buf, fmt, args);
268
+ return {buf.out(), buf.count()};
269
+ }
270
+
271
+ template <typename OutputIt, typename S, typename... T,
272
+ typename Char = detail::format_string_char_t<S>,
273
+ FMT_ENABLE_IF(detail::is_output_iterator<OutputIt, Char>::value&&
274
+ detail::is_exotic_char<Char>::value)>
275
+ inline auto format_to_n(OutputIt out, size_t n, const S& fmt, T&&... args)
276
+ -> format_to_n_result<OutputIt> {
277
+ return vformat_to_n(out, n, fmt::basic_string_view<Char>(fmt),
278
+ fmt::make_format_args<buffered_context<Char>>(args...));
279
+ }
280
+
281
+ template <typename S, typename... T,
282
+ typename Char = detail::format_string_char_t<S>,
283
+ FMT_ENABLE_IF(detail::is_exotic_char<Char>::value)>
284
+ inline auto formatted_size(const S& fmt, T&&... args) -> size_t {
285
+ auto buf = detail::counting_buffer<Char>();
286
+ detail::vformat_to(buf, detail::to_string_view(fmt),
287
+ fmt::make_format_args<buffered_context<Char>>(args...));
288
+ return buf.count();
289
+ }
290
+
291
+ inline void vprint(std::FILE* f, wstring_view fmt, wformat_args args) {
292
+ auto buf = wmemory_buffer();
293
+ detail::vformat_to(buf, fmt, args);
294
+ buf.push_back(L'\0');
295
+ if (std::fputws(buf.data(), f) == -1)
296
+ FMT_THROW(system_error(errno, FMT_STRING("cannot write to file")));
297
+ }
298
+
299
+ inline void vprint(wstring_view fmt, wformat_args args) {
300
+ vprint(stdout, fmt, args);
301
+ }
302
+
303
+ template <typename... T>
304
+ void print(std::FILE* f, wformat_string<T...> fmt, T&&... args) {
305
+ return vprint(f, wstring_view(fmt), fmt::make_wformat_args(args...));
306
+ }
307
+
308
+ template <typename... T> void print(wformat_string<T...> fmt, T&&... args) {
309
+ return vprint(wstring_view(fmt), fmt::make_wformat_args(args...));
310
+ }
311
+
312
+ template <typename... T>
313
+ void println(std::FILE* f, wformat_string<T...> fmt, T&&... args) {
314
+ return print(f, L"{}\n", fmt::format(fmt, std::forward<T>(args)...));
315
+ }
316
+
317
+ template <typename... T> void println(wformat_string<T...> fmt, T&&... args) {
318
+ return print(L"{}\n", fmt::format(fmt, std::forward<T>(args)...));
319
+ }
320
+
321
+ inline auto vformat(text_style ts, wstring_view fmt, wformat_args args)
322
+ -> std::wstring {
323
+ auto buf = wmemory_buffer();
324
+ detail::vformat_to(buf, ts, fmt, args);
325
+ return {buf.data(), buf.size()};
326
+ }
327
+
328
+ template <typename... T>
329
+ inline auto format(text_style ts, wformat_string<T...> fmt, T&&... args)
330
+ -> std::wstring {
331
+ return fmt::vformat(ts, fmt, fmt::make_wformat_args(args...));
332
+ }
333
+
334
+ template <typename... T>
335
+ FMT_DEPRECATED void print(std::FILE* f, text_style ts, wformat_string<T...> fmt,
336
+ const T&... args) {
337
+ vprint(f, ts, fmt, fmt::make_wformat_args(args...));
338
+ }
339
+
340
+ template <typename... T>
341
+ FMT_DEPRECATED void print(text_style ts, wformat_string<T...> fmt,
342
+ const T&... args) {
343
+ return print(stdout, ts, fmt, args...);
344
+ }
345
+
346
+ inline void vprint(std::wostream& os, wstring_view fmt, wformat_args args) {
347
+ auto buffer = basic_memory_buffer<wchar_t>();
348
+ detail::vformat_to(buffer, fmt, args);
349
+ detail::write_buffer(os, buffer);
350
+ }
351
+
352
+ template <typename... T>
353
+ void print(std::wostream& os, wformat_string<T...> fmt, T&&... args) {
354
+ vprint(os, fmt, fmt::make_format_args<buffered_context<wchar_t>>(args...));
355
+ }
356
+
357
+ template <typename... T>
358
+ void println(std::wostream& os, wformat_string<T...> fmt, T&&... args) {
359
+ print(os, L"{}\n", fmt::format(fmt, std::forward<T>(args)...));
360
+ }
361
+
362
+ /// Converts `value` to `std::wstring` using the default format for type `T`.
363
+ template <typename T> inline auto to_wstring(const T& value) -> std::wstring {
364
+ return format(FMT_STRING(L"{}"), value);
365
+ }
366
+ FMT_END_EXPORT
367
+ FMT_END_NAMESPACE
368
+
369
+ #endif // FMT_XCHAR_H_
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's chrono support
9
+ //
10
+ #include <spdlog/tweakme.h>
11
+
12
+ #if !defined(SPDLOG_USE_STD_FORMAT)
13
+ #if !defined(SPDLOG_FMT_EXTERNAL)
14
+ #ifdef SPDLOG_HEADER_ONLY
15
+ #ifndef FMT_HEADER_ONLY
16
+ #define FMT_HEADER_ONLY
17
+ #endif
18
+ #endif
19
+ #include <spdlog/fmt/bundled/chrono.h>
20
+ #else
21
+ #include <fmt/chrono.h>
22
+ #endif
23
+ #endif
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's compile-time support
9
+ //
10
+ #include <spdlog/tweakme.h>
11
+
12
+ #if !defined(SPDLOG_USE_STD_FORMAT)
13
+ #if !defined(SPDLOG_FMT_EXTERNAL)
14
+ #ifdef SPDLOG_HEADER_ONLY
15
+ #ifndef FMT_HEADER_ONLY
16
+ #define FMT_HEADER_ONLY
17
+ #endif
18
+ #endif
19
+ #include <spdlog/fmt/bundled/compile.h>
20
+ #else
21
+ #include <fmt/compile.h>
22
+ #endif
23
+ #endif
@@ -0,0 +1,30 @@
1
+ //
2
+ // Copyright(c) 2016-2018 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+
8
+ //
9
+ // Include a bundled header-only copy of fmtlib or an external one.
10
+ // By default spdlog include its own copy.
11
+ //
12
+ #include <spdlog/tweakme.h>
13
+
14
+ #if defined(SPDLOG_USE_STD_FORMAT) // SPDLOG_USE_STD_FORMAT is defined - use std::format
15
+ #include <format>
16
+ #elif !defined(SPDLOG_FMT_EXTERNAL)
17
+ #if !defined(SPDLOG_COMPILED_LIB) && !defined(FMT_HEADER_ONLY)
18
+ #define FMT_HEADER_ONLY
19
+ #endif
20
+ #ifndef FMT_USE_WINDOWS_H
21
+ #define FMT_USE_WINDOWS_H 0
22
+ #endif
23
+
24
+ #include <spdlog/fmt/bundled/base.h>
25
+ #include <spdlog/fmt/bundled/format.h>
26
+
27
+ #else // SPDLOG_FMT_EXTERNAL is defined - use external fmtlib
28
+ #include <fmt/base.h>
29
+ #include <fmt/format.h>
30
+ #endif
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's ostream support
9
+ //
10
+ #include <spdlog/tweakme.h>
11
+
12
+ #if !defined(SPDLOG_USE_STD_FORMAT)
13
+ #if !defined(SPDLOG_FMT_EXTERNAL)
14
+ #ifdef SPDLOG_HEADER_ONLY
15
+ #ifndef FMT_HEADER_ONLY
16
+ #define FMT_HEADER_ONLY
17
+ #endif
18
+ #endif
19
+ #include <spdlog/fmt/bundled/ostream.h>
20
+ #else
21
+ #include <fmt/ostream.h>
22
+ #endif
23
+ #endif
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's ranges support
9
+ //
10
+ #include <spdlog/tweakme.h>
11
+
12
+ #if !defined(SPDLOG_USE_STD_FORMAT)
13
+ #if !defined(SPDLOG_FMT_EXTERNAL)
14
+ #ifdef SPDLOG_HEADER_ONLY
15
+ #ifndef FMT_HEADER_ONLY
16
+ #define FMT_HEADER_ONLY
17
+ #endif
18
+ #endif
19
+ #include <spdlog/fmt/bundled/ranges.h>
20
+ #else
21
+ #include <fmt/ranges.h>
22
+ #endif
23
+ #endif
@@ -0,0 +1,24 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's std support (for formatting e.g.
9
+ // std::filesystem::path, std::thread::id, std::monostate, std::variant, ...)
10
+ //
11
+ #include <spdlog/tweakme.h>
12
+
13
+ #if !defined(SPDLOG_USE_STD_FORMAT)
14
+ #if !defined(SPDLOG_FMT_EXTERNAL)
15
+ #ifdef SPDLOG_HEADER_ONLY
16
+ #ifndef FMT_HEADER_ONLY
17
+ #define FMT_HEADER_ONLY
18
+ #endif
19
+ #endif
20
+ #include <spdlog/fmt/bundled/std.h>
21
+ #else
22
+ #include <fmt/std.h>
23
+ #endif
24
+ #endif
@@ -0,0 +1,23 @@
1
+ //
2
+ // Copyright(c) 2016 Gabi Melman.
3
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
4
+ //
5
+
6
+ #pragma once
7
+ //
8
+ // include bundled or external copy of fmtlib's xchar support
9
+ //
10
+ #include <spdlog/tweakme.h>
11
+
12
+ #if !defined(SPDLOG_USE_STD_FORMAT)
13
+ #if !defined(SPDLOG_FMT_EXTERNAL)
14
+ #ifdef SPDLOG_HEADER_ONLY
15
+ #ifndef FMT_HEADER_ONLY
16
+ #define FMT_HEADER_ONLY
17
+ #endif
18
+ #endif
19
+ #include <spdlog/fmt/bundled/xchar.h>
20
+ #else
21
+ #include <fmt/xchar.h>
22
+ #endif
23
+ #endif
@@ -0,0 +1,17 @@
1
+ // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3
+
4
+ #pragma once
5
+
6
+ #include <spdlog/details/log_msg.h>
7
+ #include <spdlog/fmt/fmt.h>
8
+
9
+ namespace spdlog {
10
+
11
+ class formatter {
12
+ public:
13
+ virtual ~formatter() = default;
14
+ virtual void format(const details::log_msg &msg, memory_buf_t &dest) = 0;
15
+ virtual std::unique_ptr<formatter> clone() const = 0;
16
+ };
17
+ } // namespace spdlog
@@ -0,0 +1,18 @@
1
+ // Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2
+ // Distributed under the MIT License (http://opensource.org/licenses/MIT)
3
+
4
+ #pragma once
5
+
6
+ namespace spdlog {
7
+ class logger;
8
+ class formatter;
9
+
10
+ namespace sinks {
11
+ class sink;
12
+ }
13
+
14
+ namespace level {
15
+ enum level_enum : int;
16
+ }
17
+
18
+ } // namespace spdlog