mqt-core 3.3.2__cp314-cp314t-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.cp314t-win_amd64.pyd +0 -0
  21. mqt/core/dd.pyi +1016 -0
  22. mqt/core/dd_evaluation.py +368 -0
  23. mqt/core/fomac.cp314t-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.cp314t-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.cp314t-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,422 @@
1
+ // (C) Copyright Dustin Spicuzza 2009.
2
+ // Adapted to vxWorks 6.9 by Peter Brockamp 2012.
3
+ // Updated for VxWorks 7 by Brian Kuhl 2016
4
+ // Use, modification and distribution are subject to the
5
+ // Boost Software License, Version 1.0. (See accompanying file
6
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
+
8
+ // See http://www.boost.org for most recent version.
9
+
10
+ // Old versions of vxWorks (namely everything below 6.x) are
11
+ // absolutely unable to use boost. Old STLs and compilers
12
+ // like (GCC 2.96) . Do not even think of getting this to work,
13
+ // a miserable failure will be guaranteed!
14
+ //
15
+ // VxWorks supports C++ linkage in the kernel with
16
+ // DKMs (Downloadable Kernel Modules). But, until recently
17
+ // the kernel used a C89 library with no
18
+ // wide character support and no guarantee of ANSI C.
19
+ // Regardless of the C library the same Dinkum
20
+ // STL library is used in both contexts.
21
+ //
22
+ // Similarly the Dinkum abridged STL that supports the loosely specified
23
+ // embedded C++ standard has not been tested and is unlikely to work
24
+ // on anything but the simplest library.
25
+ // ====================================================================
26
+ //
27
+ // Some important information regarding the usage of POSIX semaphores:
28
+ // -------------------------------------------------------------------
29
+ //
30
+ // VxWorks as a real time operating system handles threads somewhat
31
+ // different from what "normal" OSes do, regarding their scheduling!
32
+ // This could lead to a scenario called "priority inversion" when using
33
+ // semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
34
+ //
35
+ // Now, VxWorks POSIX-semaphores for DKM's default to the usage of
36
+ // priority inverting semaphores, which is fine. On the other hand,
37
+ // for RTP's it defaults to using non priority inverting semaphores,
38
+ // which could easily pose a serious problem for a real time process.
39
+ //
40
+ // To change the default properties for POSIX-semaphores in VxWorks 7
41
+ // enable core > CORE_USER Menu > DEFAULT_PTHREAD_PRIO_INHERIT
42
+ //
43
+ // In VxWorks 6.x so as to integrate with boost.
44
+ // - Edit the file
45
+ // installDir/vxworks-6.x/target/usr/src/posix/pthreadLib.c
46
+ // - Around line 917 there should be the definition of the default
47
+ // mutex attributes:
48
+ //
49
+ // LOCAL pthread_mutexattr_t defaultMutexAttr =
50
+ // {
51
+ // PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
52
+ // PTHREAD_MUTEX_DEFAULT
53
+ // };
54
+ //
55
+ // Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
56
+ // - Around line 1236 there should be a definition for the function
57
+ // pthread_mutexattr_init(). A couple of lines below you should
58
+ // find a block of code like this:
59
+ //
60
+ // pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
61
+ // pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
62
+ // pAttr->mutexAttrPrioceiling = 0;
63
+ // pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
64
+ //
65
+ // Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
66
+ // - Finally, rebuild your VSB. This will rebuild the libraries
67
+ // with the changed properties. That's it! Now, using boost should
68
+ // no longer cause any problems with task deadlocks!
69
+ //
70
+ // ====================================================================
71
+
72
+ // Block out all versions before vxWorks 6.x, as these don't work:
73
+ // Include header with the vxWorks version information and query them
74
+ #include <version.h>
75
+ #if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
76
+ # error "The vxWorks version you're using is so badly outdated,\
77
+ it doesn't work at all with boost, sorry, no chance!"
78
+ #endif
79
+
80
+ // Handle versions above 5.X but below 6.9
81
+ #if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
82
+ // TODO: Starting from what version does vxWorks work with boost?
83
+ // We can't reasonably insert a #warning "" as a user hint here,
84
+ // as this will show up with every file including some boost header,
85
+ // badly bugging the user... So for the time being we just leave it.
86
+ #endif
87
+
88
+ // vxWorks specific config options:
89
+ // --------------------------------
90
+ #define BOOST_PLATFORM "vxWorks"
91
+
92
+
93
+ // Generally available headers:
94
+ #define BOOST_HAS_UNISTD_H
95
+ #define BOOST_HAS_STDINT_H
96
+ #define BOOST_HAS_DIRENT_H
97
+ //#define BOOST_HAS_SLIST
98
+
99
+ // vxWorks does not have installed an iconv-library by default,
100
+ // so unfortunately no Unicode support from scratch is available!
101
+ // Thus, instead it is suggested to switch to ICU, as this seems
102
+ // to be the most complete and portable option...
103
+ #ifndef BOOST_LOCALE_WITH_ICU
104
+ #define BOOST_LOCALE_WITH_ICU
105
+ #endif
106
+
107
+ // Generally available functionality:
108
+ #define BOOST_HAS_THREADS
109
+ #define BOOST_HAS_NANOSLEEP
110
+ #define BOOST_HAS_GETTIMEOFDAY
111
+ #define BOOST_HAS_CLOCK_GETTIME
112
+ #define BOOST_HAS_MACRO_USE_FACET
113
+
114
+ // Generally available threading API's:
115
+ #define BOOST_HAS_PTHREADS
116
+ #define BOOST_HAS_SCHED_YIELD
117
+ #define BOOST_HAS_SIGACTION
118
+
119
+ // Functionality available for RTPs only:
120
+ #ifdef __RTP__
121
+ # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
122
+ # define BOOST_HAS_LOG1P
123
+ # define BOOST_HAS_EXPM1
124
+ #endif
125
+
126
+ // Functionality available for DKMs only:
127
+ #ifdef _WRS_KERNEL
128
+ // Luckily, at the moment there seems to be none!
129
+ #endif
130
+
131
+ // These #defines allow detail/posix_features to work, since vxWorks doesn't
132
+ // #define them itself for DKMs (for RTPs on the contrary it does):
133
+ #ifdef _WRS_KERNEL
134
+ # ifndef _POSIX_TIMERS
135
+ # define _POSIX_TIMERS 1
136
+ # endif
137
+ # ifndef _POSIX_THREADS
138
+ # define _POSIX_THREADS 1
139
+ # endif
140
+ // no sysconf( _SC_PAGESIZE) in kernel
141
+ # define BOOST_THREAD_USES_GETPAGESIZE
142
+ #endif
143
+
144
+ #if (_WRS_VXWORKS_MAJOR < 7)
145
+ // vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
146
+ // miserably fails to #include the required <sysLib.h> to make
147
+ // sysClkRateGet() available! So we manually include it here.
148
+ # ifdef __RTP__
149
+ # include <time.h>
150
+ # include <sysLib.h>
151
+ # endif
152
+
153
+ // vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
154
+ // UINT64_C() are defined erroneously, yielding not a signed/
155
+ // unsigned long/long long type, but a signed/unsigned int/long
156
+ // type. Eventually this leads to compile errors in ratio_fwd.hpp,
157
+ // when trying to define several constants which do not fit into a
158
+ // long type! We correct them here by redefining.
159
+
160
+ # include <cstdint>
161
+
162
+ // Special behaviour for DKMs:
163
+
164
+ // Some macro-magic to do the job
165
+ # define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
166
+ # define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
167
+ # define VX_DO_JOIN2(X, Y) X##Y
168
+
169
+ // Correctly setup the macros
170
+ # undef INT32_C
171
+ # undef UINT32_C
172
+ # undef INT64_C
173
+ # undef UINT64_C
174
+ # define INT32_C(x) VX_JOIN(x, L)
175
+ # define UINT32_C(x) VX_JOIN(x, UL)
176
+ # define INT64_C(x) VX_JOIN(x, LL)
177
+ # define UINT64_C(x) VX_JOIN(x, ULL)
178
+
179
+ // #include Libraries required for the following function adaption
180
+ # include <sys/time.h>
181
+ #endif // _WRS_VXWORKS_MAJOR < 7
182
+
183
+ #include <ioLib.h>
184
+ #include <tickLib.h>
185
+
186
+ #if defined(_WRS_KERNEL) && (_CPPLIB_VER < 700)
187
+ // recent kernels use Dinkum clib v7.00+
188
+ // with widechar but older kernels
189
+ // do not have the <cwchar>-header,
190
+ // but apparently they do have an intrinsic wchar_t meanwhile!
191
+ # define BOOST_NO_CWCHAR
192
+
193
+ // Lots of wide-functions and -headers are unavailable for DKMs as well:
194
+ # define BOOST_NO_CWCTYPE
195
+ # define BOOST_NO_SWPRINTF
196
+ # define BOOST_NO_STD_WSTRING
197
+ # define BOOST_NO_STD_WSTREAMBUF
198
+ #endif
199
+
200
+
201
+ // Use C-linkage for the following helper functions
202
+ #ifdef __cplusplus
203
+ extern "C" {
204
+ #endif
205
+
206
+ // vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
207
+ // But we have the similar functions getprlimit() and setprlimit(),
208
+ // which may serve the purpose.
209
+ // Problem: The vxWorks-documentation regarding these functions
210
+ // doesn't deserve its name! It isn't documented what the first two
211
+ // parameters idtype and id mean, so we must fall back to an educated
212
+ // guess - null, argh... :-/
213
+
214
+ // TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
215
+ // Thus for DKMs there would have to be another implementation.
216
+ #if defined ( __RTP__) && (_WRS_VXWORKS_MAJOR < 7)
217
+ inline int getrlimit(int resource, struct rlimit *rlp){
218
+ return getprlimit(0, 0, resource, rlp);
219
+ }
220
+
221
+ inline int setrlimit(int resource, const struct rlimit *rlp){
222
+ return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
223
+ }
224
+ #endif
225
+
226
+ // vxWorks has ftruncate() only, so we do simulate truncate():
227
+ inline int truncate(const char *p, off_t l){
228
+ int fd = open(p, O_WRONLY);
229
+ if (fd == -1){
230
+ errno = EACCES;
231
+ return -1;
232
+ }
233
+ if (ftruncate(fd, l) == -1){
234
+ close(fd);
235
+ errno = EACCES;
236
+ return -1;
237
+ }
238
+ return close(fd);
239
+ }
240
+
241
+ #ifdef __GNUC__
242
+ # define ___unused __attribute__((unused))
243
+ #else
244
+ # define ___unused
245
+ #endif
246
+
247
+ // Fake symlink handling by dummy functions:
248
+ inline int symlink(const char* path1 ___unused, const char* path2 ___unused){
249
+ // vxWorks has no symlinks -> always return an error!
250
+ errno = EACCES;
251
+ return -1;
252
+ }
253
+
254
+ inline ssize_t readlink(const char* path1 ___unused, char* path2 ___unused, size_t size ___unused){
255
+ // vxWorks has no symlinks -> always return an error!
256
+ errno = EACCES;
257
+ return -1;
258
+ }
259
+
260
+ #if (_WRS_VXWORKS_MAJOR < 7)
261
+
262
+ inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
263
+ struct timespec ts;
264
+ clock_gettime(CLOCK_MONOTONIC, &ts);
265
+ tv->tv_sec = ts.tv_sec;
266
+ tv->tv_usec = ts.tv_nsec / 1000;
267
+ return 0;
268
+ }
269
+ #endif
270
+
271
+ #ifdef __cplusplus
272
+ } // extern "C"
273
+ #endif
274
+
275
+ /*
276
+ * moved to os/utils/unix/freind_h/times.h in VxWorks 7
277
+ * to avoid conflict with MPL operator times
278
+ */
279
+ #if (_WRS_VXWORKS_MAJOR < 7)
280
+ # ifdef __cplusplus
281
+
282
+ // vxWorks provides neither struct tms nor function times()!
283
+ // We implement an empty dummy-function, simply setting the user
284
+ // and system time to the half of thew actual system ticks-value
285
+ // and the child user and system time to 0.
286
+ // Rather ugly but at least it suppresses compiler errors...
287
+ // Unfortunately, this of course *does* have an severe impact on
288
+ // dependant libraries, actually this is chrono only! Here it will
289
+ // not be possible to correctly use user and system times! But
290
+ // as vxWorks is lacking the ability to calculate user and system
291
+ // process times there seems to be no other possible solution.
292
+ struct tms{
293
+ clock_t tms_utime; // User CPU time
294
+ clock_t tms_stime; // System CPU time
295
+ clock_t tms_cutime; // User CPU time of terminated child processes
296
+ clock_t tms_cstime; // System CPU time of terminated child processes
297
+ };
298
+
299
+
300
+ inline clock_t times(struct tms *t){
301
+ struct timespec ts;
302
+ clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
303
+ clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
304
+ static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
305
+ t->tms_utime = ticks/2U;
306
+ t->tms_stime = ticks/2U;
307
+ t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
308
+ t->tms_cstime = 0; // -> Set the wait times for childs to 0
309
+ return ticks;
310
+ }
311
+
312
+
313
+ namespace std {
314
+ using ::times;
315
+ }
316
+ # endif // __cplusplus
317
+ #endif // _WRS_VXWORKS_MAJOR < 7
318
+
319
+
320
+ #ifdef __cplusplus
321
+ extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
322
+
323
+ // Put the selfmade functions into the std-namespace, just in case
324
+ namespace std {
325
+ # ifdef __RTP__
326
+ using ::getrlimit;
327
+ using ::setrlimit;
328
+ # endif
329
+ using ::truncate;
330
+ using ::symlink;
331
+ using ::readlink;
332
+ # if (_WRS_VXWORKS_MAJOR < 7)
333
+ using ::gettimeofday;
334
+ # endif
335
+ }
336
+ #endif // __cplusplus
337
+
338
+ // Some more macro-magic:
339
+ // vxWorks-around: Some functions are not present or broken in vxWorks
340
+ // but may be patched to life via helper macros...
341
+
342
+ // Include signal.h which might contain a typo to be corrected here
343
+ #include <signal.h>
344
+
345
+ #if (_WRS_VXWORKS_MAJOR < 7)
346
+ # define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
347
+ inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
348
+ #endif
349
+
350
+ #ifndef S_ISSOCK
351
+ # define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
352
+ #endif
353
+ #ifndef FPE_FLTINV
354
+ # define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
355
+ #endif
356
+ #if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
357
+ # define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
358
+ #endif
359
+ typedef int locale_t; // locale_t is a POSIX-extension, currently not present in vxWorks!
360
+
361
+ // #include boilerplate code:
362
+ #include <boost/config/detail/posix_features.hpp>
363
+
364
+ // vxWorks lies about XSI conformance, there is no nl_types.h:
365
+ #undef BOOST_HAS_NL_TYPES_H
366
+
367
+ // vxWorks 7 adds C++11 support
368
+ // however it is optional, and does not match exactly the support determined
369
+ // by examining the Dinkum STL version and GCC version (or ICC and DCC)
370
+ #if !( defined( _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011) || defined(_WRS_CONFIG_LIBCPLUS_STD))
371
+ # define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location
372
+ # define BOOST_NO_CXX11_ALLOCATOR
373
+ # define BOOST_NO_CXX11_ATOMIC_SMART_PTR
374
+ # define BOOST_NO_CXX11_NUMERIC_LIMITS // max_digits10 in test/../print_helper.hpp
375
+ # define BOOST_NO_CXX11_SMART_PTR
376
+ # define BOOST_NO_CXX11_STD_ALIGN
377
+
378
+
379
+ # define BOOST_NO_CXX11_HDR_ARRAY
380
+ # define BOOST_NO_CXX11_HDR_ATOMIC
381
+ # define BOOST_NO_CXX11_HDR_CHRONO
382
+ # define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
383
+ # define BOOST_NO_CXX11_HDR_FORWARD_LIST //serialization/test/test_list.cpp
384
+ # define BOOST_NO_CXX11_HDR_FUNCTIONAL
385
+ # define BOOST_NO_CXX11_HDR_FUTURE
386
+ # define BOOST_NO_CXX11_HDR_MUTEX
387
+ # define BOOST_NO_CXX11_HDR_RANDOM //math/../test_data.hpp
388
+ # define BOOST_NO_CXX11_HDR_RATIO
389
+ # define BOOST_NO_CXX11_HDR_REGEX
390
+ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
391
+ # define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
392
+ # define BOOST_NO_CXX11_HDR_THREAD
393
+ # define BOOST_NO_CXX11_HDR_TYPEINDEX
394
+ # define BOOST_NO_CXX11_HDR_TYPE_TRAITS
395
+ # define BOOST_NO_CXX11_HDR_TUPLE
396
+ # define BOOST_NO_CXX11_HDR_UNORDERED_MAP
397
+ # define BOOST_NO_CXX11_HDR_UNORDERED_SET
398
+ #else
399
+ # ifndef BOOST_SYSTEM_NO_DEPRECATED
400
+ # define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit
401
+ # endif
402
+ #endif
403
+
404
+
405
+ // NONE is used in enums in lamda and other libraries
406
+ #undef NONE
407
+ // restrict is an iostreams class
408
+ #undef restrict
409
+ // affects some typeof tests
410
+ #undef V7
411
+
412
+ // use fake poll() from Unix layer in ASIO to get full functionality
413
+ // most libraries will use select() but this define allows 'iostream' functionality
414
+ // which is based on poll() only
415
+ #if (_WRS_VXWORKS_MAJOR > 6)
416
+ # ifndef BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
417
+ # define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
418
+ # endif
419
+ #else
420
+ # define BOOST_ASIO_DISABLE_SERIAL_PORT
421
+ #endif
422
+
@@ -0,0 +1,23 @@
1
+ // (C) Copyright John Maddock 2020.
2
+ // Use, modification and distribution are subject to the
3
+ // Boost Software License, Version 1.0. (See accompanying file
4
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+ // See http://www.boost.org for most recent version.
7
+
8
+ // WASM specific config options:
9
+
10
+ #define BOOST_PLATFORM "Wasm"
11
+
12
+ #ifdef __has_include
13
+ #if __has_include(<unistd.h>)
14
+ # define BOOST_HAS_UNISTD_H
15
+ #endif
16
+ #endif
17
+
18
+ // boilerplate code:
19
+ #include <boost/config/detail/posix_features.hpp>
20
+ //
21
+ // fenv lacks the C++11 macros:
22
+ //
23
+ #define BOOST_NO_FENV_H
@@ -0,0 +1,90 @@
1
+ // (C) Copyright John Maddock 2001 - 2003.
2
+ // (C) Copyright Bill Kempf 2001.
3
+ // (C) Copyright Aleksey Gurtovoy 2003.
4
+ // (C) Copyright Rene Rivera 2005.
5
+ // Use, modification and distribution are subject to the
6
+ // Boost Software License, Version 1.0. (See accompanying file
7
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8
+
9
+ // See http://www.boost.org for most recent version.
10
+
11
+ // Win32 specific config options:
12
+
13
+ #define BOOST_PLATFORM "Win32"
14
+
15
+ // Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
16
+ #if defined(__MINGW32__)
17
+ # include <_mingw.h>
18
+ #endif
19
+
20
+ #if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
21
+ # define BOOST_NO_SWPRINTF
22
+ #endif
23
+
24
+ // Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
25
+ // If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
26
+ // its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
27
+ // BOOST_SYMBOL_IMPORT
28
+ #ifndef BOOST_SYMBOL_EXPORT
29
+ # define BOOST_HAS_DECLSPEC
30
+ # define BOOST_SYMBOL_EXPORT __declspec(dllexport)
31
+ # define BOOST_SYMBOL_IMPORT __declspec(dllimport)
32
+ #endif
33
+
34
+ #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
35
+ # define BOOST_HAS_STDINT_H
36
+ # ifndef __STDC_LIMIT_MACROS
37
+ # define __STDC_LIMIT_MACROS
38
+ # endif
39
+ # define BOOST_HAS_DIRENT_H
40
+ # define BOOST_HAS_UNISTD_H
41
+ #endif
42
+
43
+ #if defined(__MINGW32__) && (__GNUC__ >= 4)
44
+ // Mingw has these functions but there are persistent problems
45
+ // with calls to these crashing, so disable for now:
46
+ //# define BOOST_HAS_EXPM1
47
+ //# define BOOST_HAS_LOG1P
48
+ # define BOOST_HAS_GETTIMEOFDAY
49
+ #endif
50
+ //
51
+ // Win32 will normally be using native Win32 threads,
52
+ // but there is a pthread library avaliable as an option,
53
+ // we used to disable this when BOOST_DISABLE_WIN32 was
54
+ // defined but no longer - this should allow some
55
+ // files to be compiled in strict mode - while maintaining
56
+ // a consistent setting of BOOST_HAS_THREADS across
57
+ // all translation units (needed for shared_ptr etc).
58
+ //
59
+
60
+ #ifndef BOOST_HAS_PTHREADS
61
+ # define BOOST_HAS_WINTHREADS
62
+ #endif
63
+
64
+ //
65
+ // WinCE configuration:
66
+ //
67
+ #if defined(_WIN32_WCE) || defined(UNDER_CE)
68
+ # define BOOST_NO_ANSI_APIS
69
+ // Windows CE does not have a conforming signature for swprintf
70
+ # define BOOST_NO_SWPRINTF
71
+ #else
72
+ # define BOOST_HAS_GETSYSTEMTIMEASFILETIME
73
+ # define BOOST_HAS_THREADEX
74
+ # define BOOST_HAS_GETSYSTEMTIMEASFILETIME
75
+ #endif
76
+
77
+ //
78
+ // Windows Runtime
79
+ //
80
+ #if defined(WINAPI_FAMILY) && \
81
+ (WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
82
+ # define BOOST_NO_ANSI_APIS
83
+ #endif
84
+
85
+ #ifndef BOOST_DISABLE_WIN32
86
+ // WEK: Added
87
+ #define BOOST_HAS_FTIME
88
+ #define BOOST_WINDOWS 1
89
+
90
+ #endif
@@ -0,0 +1,32 @@
1
+ // Copyright (c) 2017 Dynatrace
2
+ //
3
+ // Distributed under the Boost Software License, Version 1.0.
4
+ // See accompanying file LICENSE_1_0.txt or copy at
5
+ // http://www.boost.org/LICENSE_1_0.txt
6
+
7
+ // See http://www.boost.org for most recent version.
8
+
9
+ // Platform setup for IBM z/OS.
10
+
11
+ #define BOOST_PLATFORM "IBM z/OS"
12
+
13
+ #include <features.h> // For __UU, __C99, __TR1, ...
14
+
15
+ #if defined(__UU)
16
+ # define BOOST_HAS_GETTIMEOFDAY
17
+ #endif
18
+
19
+ #if defined(_OPEN_THREADS) || defined(__SUSV3_THR)
20
+ # define BOOST_HAS_PTHREADS
21
+ # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
22
+ # define BOOST_HAS_THREADS
23
+ #endif
24
+
25
+ #if defined(__SUSV3) || defined(__SUSV3_THR)
26
+ # define BOOST_HAS_SCHED_YIELD
27
+ #endif
28
+
29
+ #define BOOST_HAS_SIGACTION
30
+ #define BOOST_HAS_UNISTD_H
31
+ #define BOOST_HAS_DIRENT_H
32
+ #define BOOST_HAS_NL_TYPES_H
@@ -0,0 +1,31 @@
1
+ #ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
2
+ #define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
3
+
4
+ // Copyright 2017 Peter Dimov.
5
+ //
6
+ // Distributed under the Boost Software License, Version 1.0.
7
+ //
8
+ // See accompanying file LICENSE_1_0.txt or copy at
9
+ // http://www.boost.org/LICENSE_1_0.txt
10
+ //
11
+ // BOOST_PRAGMA_MESSAGE("message")
12
+ //
13
+ // Expands to the equivalent of #pragma message("message")
14
+ //
15
+ // Note that this header is C compatible.
16
+
17
+ #include <boost/config/helper_macros.hpp>
18
+
19
+ #if defined(BOOST_DISABLE_PRAGMA_MESSAGE)
20
+ # define BOOST_PRAGMA_MESSAGE(x)
21
+ #elif defined(__INTEL_COMPILER)
22
+ # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
23
+ #elif defined(__GNUC__)
24
+ # define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
25
+ #elif defined(_MSC_VER)
26
+ # define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
27
+ #else
28
+ # define BOOST_PRAGMA_MESSAGE(x)
29
+ #endif
30
+
31
+ #endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
@@ -0,0 +1,92 @@
1
+ // (C) Copyright John Maddock 2003.
2
+ // Use, modification and distribution are subject to the
3
+ // Boost Software License, Version 1.0. (See accompanying file
4
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
+
6
+
7
+ #ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
8
+ #define BOOST_CONFIG_REQUIRES_THREADS_HPP
9
+
10
+ #ifndef BOOST_CONFIG_HPP
11
+ # include <boost/config.hpp>
12
+ #endif
13
+
14
+ #if defined(BOOST_DISABLE_THREADS)
15
+
16
+ //
17
+ // special case to handle versions of gcc which don't currently support threads:
18
+ //
19
+ #if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
20
+ //
21
+ // this is checked up to gcc 3.3:
22
+ //
23
+ #if defined(__sgi) || defined(__hpux)
24
+ # error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
25
+ #endif
26
+
27
+ #endif
28
+
29
+ # error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
30
+
31
+ #elif !defined(BOOST_HAS_THREADS)
32
+
33
+ # if defined __COMO__
34
+ // Comeau C++
35
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
36
+
37
+ #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
38
+ // Intel
39
+ #ifdef _WIN32
40
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
41
+ #else
42
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
43
+ #endif
44
+
45
+ # elif defined __GNUC__
46
+ // GNU C++:
47
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
48
+
49
+ #elif defined __sgi
50
+ // SGI MIPSpro C++
51
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
52
+
53
+ #elif defined __DECCXX
54
+ // Compaq Tru64 Unix cxx
55
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
56
+
57
+ #elif defined BOOST_BORLANDC
58
+ // Borland
59
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
60
+
61
+ #elif defined __MWERKS__
62
+ // Metrowerks CodeWarrior
63
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
64
+
65
+ #elif defined __SUNPRO_CC
66
+ // Sun Workshop Compiler C++
67
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
68
+
69
+ #elif defined __HP_aCC
70
+ // HP aCC
71
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
72
+
73
+ #elif defined(__IBMCPP__)
74
+ // IBM Visual Age
75
+ # error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
76
+
77
+ #elif defined _MSC_VER
78
+ // Microsoft Visual C++
79
+ //
80
+ // Must remain the last #elif since some other vendors (Metrowerks, for
81
+ // example) also #define _MSC_VER
82
+ # error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
83
+
84
+ #else
85
+
86
+ # error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
87
+
88
+ #endif // compilers
89
+
90
+ #endif // BOOST_HAS_THREADS
91
+
92
+ #endif // BOOST_CONFIG_REQUIRES_THREADS_HPP