qram-simulator 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (573) hide show
  1. qram_simulator-0.2.0/.gitignore +59 -0
  2. qram_simulator-0.2.0/CHANGELOG.md +425 -0
  3. qram_simulator-0.2.0/CMakeLists.txt +167 -0
  4. qram_simulator-0.2.0/CONTRIBUTING.md +239 -0
  5. qram_simulator-0.2.0/Common/CMakeLists.txt +1 -0
  6. qram_simulator-0.2.0/Common/include/basic.h +626 -0
  7. qram_simulator-0.2.0/Common/include/cuda/cuda_utils.cuh +91 -0
  8. qram_simulator-0.2.0/Common/include/error_handler.h +92 -0
  9. qram_simulator-0.2.0/Common/include/iterable.h +149 -0
  10. qram_simulator-0.2.0/Common/include/logger.h +453 -0
  11. qram_simulator-0.2.0/Common/include/matrix.h +1339 -0
  12. qram_simulator-0.2.0/Common/include/random_engine.h +164 -0
  13. qram_simulator-0.2.0/Common/include/simple_quantum_simulator.h +188 -0
  14. qram_simulator-0.2.0/Common/include/state_manipulator.h +114 -0
  15. qram_simulator-0.2.0/Common/include/typedefs.h +230 -0
  16. qram_simulator-0.2.0/Common/src/CMakeLists.txt +36 -0
  17. qram_simulator-0.2.0/Common/src/basic.cpp +60 -0
  18. qram_simulator-0.2.0/Common/src/error_handler.cpp +173 -0
  19. qram_simulator-0.2.0/Common/src/logger.cpp +78 -0
  20. qram_simulator-0.2.0/Common/src/matrix.cpp +505 -0
  21. qram_simulator-0.2.0/Common/src/simple_quantum_simulator.cpp +234 -0
  22. qram_simulator-0.2.0/Common/src/state_manipulator.cpp +194 -0
  23. qram_simulator-0.2.0/LICENSE +202 -0
  24. qram_simulator-0.2.0/PKG-INFO +237 -0
  25. qram_simulator-0.2.0/QRAM/CMakeLists.txt +1 -0
  26. qram_simulator-0.2.0/QRAM/include/cuda/qram_circuit_qutrit.cuh +56 -0
  27. qram_simulator-0.2.0/QRAM/include/qram_branch_qubit.h +366 -0
  28. qram_simulator-0.2.0/QRAM/include/qram_branch_qutrit.h +472 -0
  29. qram_simulator-0.2.0/QRAM/include/qram_circuit_qubit.h +287 -0
  30. qram_simulator-0.2.0/QRAM/include/qram_circuit_qutrit.h +288 -0
  31. qram_simulator-0.2.0/QRAM/include/time_step.h +456 -0
  32. qram_simulator-0.2.0/QRAM/src/CMakeLists.txt +34 -0
  33. qram_simulator-0.2.0/QRAM/src/qram_branch_qubit.cpp +614 -0
  34. qram_simulator-0.2.0/QRAM/src/qram_branch_qutrit.cpp +700 -0
  35. qram_simulator-0.2.0/QRAM/src/qram_circuit_qubit.cpp +859 -0
  36. qram_simulator-0.2.0/QRAM/src/qram_circuit_qutrit.cpp +965 -0
  37. qram_simulator-0.2.0/QRAM/src/time_step.cpp +605 -0
  38. qram_simulator-0.2.0/README.md +223 -0
  39. qram_simulator-0.2.0/ThirdParty/CMakeLists.txt +1 -0
  40. qram_simulator-0.2.0/ThirdParty/argparse/argparse.h +580 -0
  41. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Cholesky +45 -0
  42. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/CholmodSupport +48 -0
  43. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Core +384 -0
  44. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Dense +7 -0
  45. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Eigen +2 -0
  46. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Eigenvalues +60 -0
  47. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Geometry +59 -0
  48. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Householder +29 -0
  49. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/IterativeLinearSolvers +48 -0
  50. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Jacobi +32 -0
  51. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/KLUSupport +41 -0
  52. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/LU +47 -0
  53. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/MetisSupport +35 -0
  54. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/OrderingMethods +70 -0
  55. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/PaStiXSupport +49 -0
  56. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/PardisoSupport +35 -0
  57. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/QR +50 -0
  58. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/QtAlignedMalloc +39 -0
  59. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SPQRSupport +34 -0
  60. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SVD +50 -0
  61. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Sparse +34 -0
  62. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseCholesky +37 -0
  63. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseCore +69 -0
  64. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseLU +50 -0
  65. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseQR +36 -0
  66. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdDeque +27 -0
  67. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdList +26 -0
  68. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdVector +27 -0
  69. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SuperLUSupport +64 -0
  70. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/UmfPackSupport +40 -0
  71. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LDLT.h +688 -0
  72. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LLT.h +558 -0
  73. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  74. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  75. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArithmeticSequence.h +413 -0
  76. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Array.h +417 -0
  77. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArrayBase.h +226 -0
  78. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArrayWrapper.h +209 -0
  79. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Assign.h +90 -0
  80. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/AssignEvaluator.h +1010 -0
  81. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Assign_MKL.h +178 -0
  82. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/BandMatrix.h +353 -0
  83. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Block.h +448 -0
  84. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/BooleanRedux.h +162 -0
  85. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CommaInitializer.h +164 -0
  86. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ConditionEstimator.h +175 -0
  87. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CoreEvaluators.h +1741 -0
  88. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CoreIterators.h +132 -0
  89. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  90. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  91. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  92. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  93. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseUnaryView.h +132 -0
  94. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseBase.h +701 -0
  95. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  96. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseStorage.h +652 -0
  97. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Diagonal.h +258 -0
  98. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DiagonalMatrix.h +391 -0
  99. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DiagonalProduct.h +28 -0
  100. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Dot.h +318 -0
  101. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/EigenBase.h +160 -0
  102. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  103. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Fuzzy.h +155 -0
  104. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GeneralProduct.h +465 -0
  105. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GenericPacketMath.h +1040 -0
  106. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GlobalFunctions.h +194 -0
  107. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/IO.h +258 -0
  108. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/IndexedView.h +237 -0
  109. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Inverse.h +117 -0
  110. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Map.h +171 -0
  111. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MapBase.h +310 -0
  112. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MathFunctions.h +2057 -0
  113. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  114. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Matrix.h +565 -0
  115. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MatrixBase.h +547 -0
  116. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NestByValue.h +85 -0
  117. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NoAlias.h +109 -0
  118. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NumTraits.h +335 -0
  119. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  120. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PermutationMatrix.h +605 -0
  121. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PlainObjectBase.h +1128 -0
  122. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Product.h +191 -0
  123. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ProductEvaluators.h +1179 -0
  124. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Random.h +218 -0
  125. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Redux.h +515 -0
  126. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Ref.h +381 -0
  127. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Replicate.h +142 -0
  128. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Reshaped.h +454 -0
  129. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ReturnByValue.h +119 -0
  130. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Reverse.h +217 -0
  131. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Select.h +164 -0
  132. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SelfAdjointView.h +365 -0
  133. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  134. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Solve.h +188 -0
  135. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SolveTriangular.h +235 -0
  136. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SolverBase.h +168 -0
  137. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/StableNorm.h +251 -0
  138. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/StlIterators.h +463 -0
  139. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Stride.h +116 -0
  140. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Swap.h +68 -0
  141. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Transpose.h +464 -0
  142. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Transpositions.h +386 -0
  143. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/TriangularMatrix.h +1001 -0
  144. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/VectorBlock.h +96 -0
  145. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/VectorwiseOp.h +784 -0
  146. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Visitor.h +381 -0
  147. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  148. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  149. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  150. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  151. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  152. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  153. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  154. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  155. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  156. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  157. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  158. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  159. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  160. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  161. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  162. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  163. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  164. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  165. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  166. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/Half.h +942 -0
  167. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/Settings.h +49 -0
  168. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  169. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  170. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  171. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  172. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  173. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  174. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  175. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  176. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  177. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  178. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  179. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  180. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  181. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  182. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  183. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  184. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  185. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  186. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  187. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  188. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  189. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  190. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  191. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  192. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  193. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  194. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  195. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  196. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  197. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  198. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  199. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/StlFunctors.h +166 -0
  200. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  201. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  202. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  203. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  204. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  205. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  206. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  207. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  208. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  209. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/Parallelizer.h +180 -0
  210. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  211. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  212. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  213. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  214. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  215. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  216. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  217. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  218. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  219. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  220. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  221. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  222. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  223. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/BlasUtil.h +583 -0
  224. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  225. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Constants.h +563 -0
  226. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  227. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  228. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  229. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/IntegralConstant.h +272 -0
  230. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/MKL_support.h +137 -0
  231. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Macros.h +1464 -0
  232. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Memory.h +1163 -0
  233. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Meta.h +812 -0
  234. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/NonMPL2.h +3 -0
  235. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  236. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  237. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/StaticAssert.h +221 -0
  238. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  239. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/XprHelper.h +856 -0
  240. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  241. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  242. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  243. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  244. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  245. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  246. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  247. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  248. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  249. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  250. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  251. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  252. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  253. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  254. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/AlignedBox.h +486 -0
  255. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/AngleAxis.h +247 -0
  256. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/EulerAngles.h +114 -0
  257. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Homogeneous.h +501 -0
  258. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Hyperplane.h +282 -0
  259. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/OrthoMethods.h +235 -0
  260. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  261. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Quaternion.h +870 -0
  262. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Rotation2D.h +199 -0
  263. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/RotationBase.h +206 -0
  264. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Scaling.h +188 -0
  265. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Transform.h +1563 -0
  266. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Translation.h +202 -0
  267. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Umeyama.h +166 -0
  268. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  269. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/BlockHouseholder.h +110 -0
  270. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/Householder.h +176 -0
  271. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/HouseholderSequence.h +545 -0
  272. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  273. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  274. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  275. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  276. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  277. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  278. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  279. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  280. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Jacobi/Jacobi.h +483 -0
  281. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  282. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/Determinant.h +117 -0
  283. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/FullPivLU.h +877 -0
  284. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/InverseImpl.h +432 -0
  285. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/PartialPivLU.h +624 -0
  286. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  287. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/arch/InverseSize4.h +351 -0
  288. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  289. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Amd.h +435 -0
  290. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  291. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Ordering.h +153 -0
  292. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  293. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  294. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  295. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  296. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  297. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  298. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/HouseholderQR.h +434 -0
  299. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  300. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  301. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/BDCSVD.h +1366 -0
  302. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/JacobiSVD.h +812 -0
  303. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  304. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/SVDBase.h +376 -0
  305. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  306. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  307. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  308. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/AmbiVector.h +378 -0
  309. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  310. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  311. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  312. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseAssign.h +270 -0
  313. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseBlock.h +571 -0
  314. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  315. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  316. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  317. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  318. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  319. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  320. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDot.h +98 -0
  321. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  322. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMap.h +305 -0
  323. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  324. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  325. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  326. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseProduct.h +181 -0
  327. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseRedux.h +49 -0
  328. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseRef.h +397 -0
  329. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  330. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  331. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  332. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  333. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  334. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseUtil.h +186 -0
  335. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseVector.h +478 -0
  336. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseView.h +254 -0
  337. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  338. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU.h +923 -0
  339. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  340. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  341. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  342. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  343. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  344. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  345. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  346. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  347. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  348. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  349. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  350. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  351. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  352. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  353. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  354. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  355. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseQR/SparseQR.h +758 -0
  356. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdDeque.h +116 -0
  357. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdList.h +106 -0
  358. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdVector.h +131 -0
  359. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/details.h +84 -0
  360. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  361. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  362. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/Image.h +82 -0
  363. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/Kernel.h +79 -0
  364. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/RealSvd2x2.h +55 -0
  365. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/blas.h +440 -0
  366. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapack.h +152 -0
  367. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapacke.h +16292 -0
  368. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapacke_mangling.h +17 -0
  369. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  370. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  371. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/BlockMethods.h +1442 -0
  372. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  373. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  374. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  375. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  376. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  377. qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ReshapedMethods.h +149 -0
  378. qram_simulator-0.2.0/ThirdParty/fmt/.clang-format +14 -0
  379. qram_simulator-0.2.0/ThirdParty/fmt/CMakeLists.txt +536 -0
  380. qram_simulator-0.2.0/ThirdParty/fmt/CONTRIBUTING.md +20 -0
  381. qram_simulator-0.2.0/ThirdParty/fmt/ChangeLog.md +2950 -0
  382. qram_simulator-0.2.0/ThirdParty/fmt/LICENSE +27 -0
  383. qram_simulator-0.2.0/ThirdParty/fmt/README.md +485 -0
  384. qram_simulator-0.2.0/ThirdParty/fmt/doc/ChangeLog-old.md +3290 -0
  385. qram_simulator-0.2.0/ThirdParty/fmt/doc/api.md +681 -0
  386. qram_simulator-0.2.0/ThirdParty/fmt/doc/fmt.css +61 -0
  387. qram_simulator-0.2.0/ThirdParty/fmt/doc/fmt.js +4 -0
  388. qram_simulator-0.2.0/ThirdParty/fmt/doc/get-started.md +222 -0
  389. qram_simulator-0.2.0/ThirdParty/fmt/doc/index.md +151 -0
  390. qram_simulator-0.2.0/ThirdParty/fmt/doc/perf.svg +1 -0
  391. qram_simulator-0.2.0/ThirdParty/fmt/doc/python-license.txt +290 -0
  392. qram_simulator-0.2.0/ThirdParty/fmt/doc/syntax.md +886 -0
  393. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/404.html +430 -0
  394. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/api.html +1974 -0
  395. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/_mkdocstrings.css +0 -0
  396. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/images/favicon.png +0 -0
  397. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/bundle.081f42fc.min.js +29 -0
  398. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/bundle.081f42fc.min.js.map +7 -0
  399. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  400. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  401. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  402. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  403. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  404. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  405. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  406. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  407. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  408. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  409. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  410. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  411. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  412. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  413. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  414. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  415. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  416. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  417. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  418. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  419. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  420. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  421. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  422. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  423. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  424. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  425. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  426. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  427. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  428. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  429. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  430. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  431. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/tinyseg.js +206 -0
  432. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/wordcut.js +6708 -0
  433. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/workers/search.b8dbb3d2.min.js +42 -0
  434. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/workers/search.b8dbb3d2.min.js.map +7 -0
  435. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/main.6543a935.min.css +1 -0
  436. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/main.6543a935.min.css.map +1 -0
  437. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/palette.06af60db.min.css +1 -0
  438. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/palette.06af60db.min.css.map +1 -0
  439. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/fmt.css +61 -0
  440. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/fmt.js +4 -0
  441. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/get-started.html +800 -0
  442. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/index.html +617 -0
  443. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/perf.svg +1 -0
  444. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/python-license.txt +290 -0
  445. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/search/search_index.json +1 -0
  446. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/sitemap.xml +3 -0
  447. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/sitemap.xml.gz +0 -0
  448. qram_simulator-0.2.0/ThirdParty/fmt/doc-html/syntax.html +1361 -0
  449. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/args.h +220 -0
  450. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/base.h +2962 -0
  451. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/chrono.h +2338 -0
  452. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/color.h +610 -0
  453. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/compile.h +539 -0
  454. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/core.h +5 -0
  455. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/format-inl.h +1949 -0
  456. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/format.h +4244 -0
  457. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/os.h +427 -0
  458. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/ostream.h +166 -0
  459. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/printf.h +633 -0
  460. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/ranges.h +850 -0
  461. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/std.h +726 -0
  462. qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/xchar.h +373 -0
  463. qram_simulator-0.2.0/ThirdParty/fmt/src/fmt.cc +153 -0
  464. qram_simulator-0.2.0/ThirdParty/fmt/src/format.cc +46 -0
  465. qram_simulator-0.2.0/ThirdParty/fmt/src/os.cc +398 -0
  466. qram_simulator-0.2.0/ThirdParty/fmt/support/Android.mk +15 -0
  467. qram_simulator-0.2.0/ThirdParty/fmt/support/AndroidManifest.xml +1 -0
  468. qram_simulator-0.2.0/ThirdParty/fmt/support/C++.sublime-syntax +2061 -0
  469. qram_simulator-0.2.0/ThirdParty/fmt/support/README +4 -0
  470. qram_simulator-0.2.0/ThirdParty/fmt/support/Vagrantfile +19 -0
  471. qram_simulator-0.2.0/ThirdParty/fmt/support/appveyor-build.py +43 -0
  472. qram_simulator-0.2.0/ThirdParty/fmt/support/appveyor.yml +31 -0
  473. qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/.bazelversion +1 -0
  474. qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/BUILD.bazel +20 -0
  475. qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/MODULE.bazel +6 -0
  476. qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/README.md +28 -0
  477. qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/WORKSPACE.bazel +2 -0
  478. qram_simulator-0.2.0/ThirdParty/fmt/support/build-docs.py +58 -0
  479. qram_simulator-0.2.0/ThirdParty/fmt/support/build.gradle +132 -0
  480. qram_simulator-0.2.0/ThirdParty/fmt/support/check-commits +43 -0
  481. qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/FindSetEnv.cmake +7 -0
  482. qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/JoinPaths.cmake +26 -0
  483. qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/cxx14.cmake +70 -0
  484. qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/fmt-config.cmake.in +7 -0
  485. qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/fmt.pc.in +11 -0
  486. qram_simulator-0.2.0/ThirdParty/fmt/support/compute-powers.py +53 -0
  487. qram_simulator-0.2.0/ThirdParty/fmt/support/docopt.py +581 -0
  488. qram_simulator-0.2.0/ThirdParty/fmt/support/manage.py +297 -0
  489. qram_simulator-0.2.0/ThirdParty/fmt/support/mkdocs +76 -0
  490. qram_simulator-0.2.0/ThirdParty/fmt/support/mkdocs.yml +48 -0
  491. qram_simulator-0.2.0/ThirdParty/fmt/support/printable.py +201 -0
  492. qram_simulator-0.2.0/ThirdParty/fmt/support/python/mkdocstrings_handlers/cxx/__init__.py +338 -0
  493. qram_simulator-0.2.0/ThirdParty/fmt/support/python/mkdocstrings_handlers/cxx/templates/README +1 -0
  494. qram_simulator-0.2.0/ThirdParty/fmt/support/release.py +188 -0
  495. qram_simulator-0.2.0/ThirdParty/fmt/support/rst2md.py +159 -0
  496. qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/conf.py +7 -0
  497. qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/index.rst +2 -0
  498. qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/theme/layout.html +17 -0
  499. qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/theme/theme.conf +2 -0
  500. qram_simulator-0.2.0/ThirdParty/fmt/test/CMakeLists.txt +257 -0
  501. qram_simulator-0.2.0/ThirdParty/fmt/test/add-subdirectory-test/CMakeLists.txt +17 -0
  502. qram_simulator-0.2.0/ThirdParty/fmt/test/add-subdirectory-test/main.cc +5 -0
  503. qram_simulator-0.2.0/ThirdParty/fmt/test/args-test.cc +202 -0
  504. qram_simulator-0.2.0/ThirdParty/fmt/test/assert-test.cc +31 -0
  505. qram_simulator-0.2.0/ThirdParty/fmt/test/base-test.cc +886 -0
  506. qram_simulator-0.2.0/ThirdParty/fmt/test/chrono-test.cc +1088 -0
  507. qram_simulator-0.2.0/ThirdParty/fmt/test/color-test.cc +72 -0
  508. qram_simulator-0.2.0/ThirdParty/fmt/test/compile-error-test/CMakeLists.txt +215 -0
  509. qram_simulator-0.2.0/ThirdParty/fmt/test/compile-fp-test.cc +61 -0
  510. qram_simulator-0.2.0/ThirdParty/fmt/test/compile-test.cc +423 -0
  511. qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/CMakeLists.txt +73 -0
  512. qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/cpp14.cc +11 -0
  513. qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/cuda-cpp14.cu +28 -0
  514. qram_simulator-0.2.0/ThirdParty/fmt/test/detect-stdfs.cc +18 -0
  515. qram_simulator-0.2.0/ThirdParty/fmt/test/enforce-checks-test.cc +65 -0
  516. qram_simulator-0.2.0/ThirdParty/fmt/test/find-package-test/CMakeLists.txt +17 -0
  517. qram_simulator-0.2.0/ThirdParty/fmt/test/find-package-test/main.cc +5 -0
  518. qram_simulator-0.2.0/ThirdParty/fmt/test/format-impl-test.cc +477 -0
  519. qram_simulator-0.2.0/ThirdParty/fmt/test/format-test.cc +2586 -0
  520. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/CMakeLists.txt +30 -0
  521. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/README.md +25 -0
  522. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/build.sh +90 -0
  523. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/chrono-duration.cc +136 -0
  524. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/chrono-timepoint.cc +32 -0
  525. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/float.cc +39 -0
  526. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/fuzzer-common.h +77 -0
  527. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/main.cc +22 -0
  528. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/named-arg.cc +102 -0
  529. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/one-arg.cc +92 -0
  530. qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/two-args.cc +106 -0
  531. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/.clang-format +3 -0
  532. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/CMakeLists.txt +32 -0
  533. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gmock/gmock.h +11659 -0
  534. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gmock-gtest-all.cc +14442 -0
  535. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gtest/gtest-spi.h +238 -0
  536. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gtest/gtest.h +12399 -0
  537. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra-test.cc +410 -0
  538. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra.cc +80 -0
  539. qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra.h +165 -0
  540. qram_simulator-0.2.0/ThirdParty/fmt/test/header-only-test.cc +11 -0
  541. qram_simulator-0.2.0/ThirdParty/fmt/test/mock-allocator.h +77 -0
  542. qram_simulator-0.2.0/ThirdParty/fmt/test/module-test.cc +520 -0
  543. qram_simulator-0.2.0/ThirdParty/fmt/test/no-builtin-types-test.cc +24 -0
  544. qram_simulator-0.2.0/ThirdParty/fmt/test/noexception-test.cc +18 -0
  545. qram_simulator-0.2.0/ThirdParty/fmt/test/os-test.cc +516 -0
  546. qram_simulator-0.2.0/ThirdParty/fmt/test/ostream-test.cc +308 -0
  547. qram_simulator-0.2.0/ThirdParty/fmt/test/perf-sanity.cc +25 -0
  548. qram_simulator-0.2.0/ThirdParty/fmt/test/posix-mock-test.cc +442 -0
  549. qram_simulator-0.2.0/ThirdParty/fmt/test/posix-mock.h +75 -0
  550. qram_simulator-0.2.0/ThirdParty/fmt/test/printf-test.cc +568 -0
  551. qram_simulator-0.2.0/ThirdParty/fmt/test/ranges-odr-test.cc +18 -0
  552. qram_simulator-0.2.0/ThirdParty/fmt/test/ranges-test.cc +796 -0
  553. qram_simulator-0.2.0/ThirdParty/fmt/test/scan-test.cc +184 -0
  554. qram_simulator-0.2.0/ThirdParty/fmt/test/scan.h +669 -0
  555. qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/CMakeLists.txt +30 -0
  556. qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/library.cc +5 -0
  557. qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/main.cc +6 -0
  558. qram_simulator-0.2.0/ThirdParty/fmt/test/std-test.cc +416 -0
  559. qram_simulator-0.2.0/ThirdParty/fmt/test/test-assert.h +39 -0
  560. qram_simulator-0.2.0/ThirdParty/fmt/test/test-main.cc +43 -0
  561. qram_simulator-0.2.0/ThirdParty/fmt/test/unicode-test.cc +48 -0
  562. qram_simulator-0.2.0/ThirdParty/fmt/test/util.cc +48 -0
  563. qram_simulator-0.2.0/ThirdParty/fmt/test/util.h +83 -0
  564. qram_simulator-0.2.0/ThirdParty/fmt/test/xchar-test.cc +518 -0
  565. qram_simulator-0.2.0/banner.png +0 -0
  566. qram_simulator-0.2.0/bindings/python/CMakeLists.txt +11 -0
  567. qram_simulator-0.2.0/bindings/python/core_binding.cpp +308 -0
  568. qram_simulator-0.2.0/bindings/python/qram_simulator/__init__.py +20 -0
  569. qram_simulator-0.2.0/bindings/python/test/test_core.py +184 -0
  570. qram_simulator-0.2.0/cmake/CUDA.cmake +27 -0
  571. qram_simulator-0.2.0/cmake/FindTBB.cmake +49 -0
  572. qram_simulator-0.2.0/cmake/QRAMSimulatorConfig.cmake.in +10 -0
  573. qram_simulator-0.2.0/pyproject.toml +76 -0
@@ -0,0 +1,59 @@
1
+ # Prerequisites
2
+ *.d
3
+
4
+ # Compiled Object files
5
+ *.slo
6
+ *.lo
7
+ *.o
8
+ *.obj
9
+
10
+ # Precompiled Headers
11
+ *.gch
12
+ *.pch
13
+
14
+ # Compiled Dynamic libraries
15
+ *.so
16
+ *.dylib
17
+ *.dll
18
+
19
+ # Fortran module files
20
+ *.mod
21
+ *.smod
22
+
23
+ # Compiled Static libraries
24
+ *.lai
25
+ *.la
26
+ *.a
27
+ *.lib
28
+
29
+ # Executables
30
+ *.exe
31
+ *.out
32
+ *.app
33
+
34
+ #
35
+ .vscode/
36
+ .vs/
37
+ build*/
38
+ .zcode/
39
+ test/result/*.py
40
+ *.7z
41
+ *.rar
42
+
43
+ # python
44
+ __pycache__/
45
+ *.pyd
46
+
47
+ # Python build artifacts (qram_simulator bindings)
48
+ *.egg-info/
49
+ /wheelhouse/
50
+ /dist/
51
+
52
+ # 文档构建产物(Doxygen XML/HTML 与 Sphinx 站点,docs.yml CI 生成)
53
+ docs/api/
54
+ docs/sphinx/build/
55
+ # pybind11-stubgen 生成的 Python API 类型桩(docs.yml CI 注入)
56
+ docs/sphinx/source/api_stubs/
57
+
58
+ # 本地虚拟环境
59
+ .venv*/
@@ -0,0 +1,425 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ---
9
+
10
+ ## [Unreleased]
11
+
12
+ ## [0.2.0] - 2026-09-25
13
+
14
+ ### Added
15
+ - **pybind11 绑定层回归本仓库**:`bindings/python/`(`core_binding.cpp` +
16
+ `qram_simulator/__init__.py` + pytest 套件)导出核心工作类——
17
+ `QRAMCircuitQubit` / `QRAMCircuitQutrit` / `QRAMFullAmp` / `TimeStep`
18
+ (含 `TimeSlices` / `OperationPack` / `Operation` 轻量视图)、
19
+ `OperationType` 枚举、`ARCH_QUBIT` / `ARCH_QUTRIT` 常量与全局随机种子
20
+ 控制(`set_seed` / `get_seed`),供外部 Python 库与脚本化实验直接驱动
21
+ 完整的"构造 → 设噪声 → 运行 → 保真度"工作流
22
+ - **根 `pyproject.toml`**:scikit-build-core + pybind11 + setuptools-scm
23
+ 打包 `qram-simulator`(cp310–313,manylinux x86_64 + win_amd64),
24
+ `__version__` 运行时从 dist-info 读取(规避 scikit-build-core 按
25
+ .gitignore 过滤 wheel 文件的坑)
26
+ - **`.github/workflows/pypi-publish.yml`**:tag `v*` / GitHub Release 触发
27
+ → cibuildwheel 多平台 wheel + sdist(含自包含校验)→ PyPI trusted
28
+ publishing(OIDC);`python-bindings.yml` 守护 CI(wheel 构建安装 +
29
+ pytest,ubuntu/windows × py3.10/3.12)
30
+ - **Sphinx 文档站点**(`docs/sphinx/`):单一站点 = MyST 指南(安装/
31
+ 快速上手/架构重写)+ breathe 吸入 Doxygen C++ API + pybind11-stubgen →
32
+ autoapi 的 Python API + 论文文档迁移;`docs.yml` 重写为该流水线,
33
+ gh-pages 全量替换为 Sphinx 站点(Doxyfile 开启 `GENERATE_XML`)
34
+ - **全仓中文 Doxygen 注释**:`QRAM/include/` 五个头文件与
35
+ `Common/include/` 全部公有头(QRAMCircuit ×2、TimeStep、State/Branch
36
+ 系列、QRAMFullAmp、矩阵、随机引擎、日志等)补齐 `/** @brief @param
37
+ @return */` 注释,注释与 Doxygen/breathe/Sphinx 链路打通
38
+ - **`LICENSE`**:补齐 Apache-2.0 全文(pyproject 与 README 此前已声明该许可,
39
+ GitHub 许可检测由此生效);CONTRIBUTING 克隆示例统一为 GitHub 地址
40
+
41
+ ### Changed
42
+ - **第二轮分仓:SparQ 框架整体迁出,本仓库收敛为纯 C++ QRAM 基座**。
43
+ `SparQ/`、`SparQ_Algorithm/`、`bindings/python/`(薄绑定)、`examples/`、
44
+ 算法系实验(QDA/Grover/StatePreparation/QCNN/QFT/CKS/Shor/GHZ/
45
+ ErrorFiltration/GPUTime)与依赖 SparQ 算子的 QRAMFidelity(v1)/QRAM_Qubit
46
+ 全部迁至 SparQSim 仓库;CommonTest 按归属拆分(算法块随完整版留在
47
+ SparQSim,本仓库保留 Common 与纯 QRAM 部分)。依赖方向固化为
48
+ **SparQSim → QRAM-Simulator**;本仓库不再包含任何 SparQ 代码与 Python 组件,
49
+ `qram-simulator` 包改由 SparQSim 仓库构建发布
50
+ (注:该决定后被本次 Unreleased 的绑定层回归条目取代——`qram-simulator`
51
+ 改由本仓库独立构建发布)
52
+ - 伞形 `SparQ` CMake 目标随 SparQ_Algorithm 迁出(现定义于 SparQSim 根
53
+ CMakeLists);本仓库导出目标收敛为 `SparQ_Common` + `SparQ_QRAMSimulator`
54
+ (平铺头文件 BUILD_INTERFACE 随目标暴露,供 SparQSim 组合),
55
+ `SparQ_Common` 补 PUBLIC 链接 fmt
56
+ - 构建开关收敛为 `QRAM_BUILD_TESTS` / `QRAM_BUILD_EXPERIMENTS`
57
+ (`QRAM_BUILD_PYTHON_BINDINGS` 与 `BUILD_EXAMPLES` 移除);
58
+ consumer-mode CI 改 `--target SparQ_QRAMSimulator`
59
+ - **第一轮拆分**:本仓库(QRAM-Simulator monorepo)拆分为两个独立仓库,
60
+ 本仓库名保留 QRAM-Simulator,转为纯 C++ 核心仓库独立发版;
61
+ PySparQ/pysparq 全功能 Python 框架迁移至 **SparQSim** 仓库,以 git
62
+ submodule(相对 URL `../QRAM-Simulator.git`)引用并编译本仓库核心。
63
+ 本条目之前的 PySparQ 相关历史条目见 SparQSim 仓库 CHANGELOG 及本文件
64
+ git 历史(路径已随拆分移除,`git log --follow` 可追溯)
65
+ - 根 CMakeLists 新增 `QRAM_BUILD_TESTS` / `QRAM_BUILD_EXPERIMENTS` /
66
+ `QRAM_BUILD_PYTHON_BINDINGS` 开关,供 SparQSim 以 add_subdirectory
67
+ 方式消费(测试/实验默认 ON,绑定默认 OFF)
68
+
69
+ ### Removed
70
+ - `PySparQ/`、旧 `pyproject.toml`、`.cibuildwheel-hooks/`、`docs/sphinx/`、
71
+ Python 示例与各 workflow 中的 Python 作业(全部迁往 SparQSim)
72
+
73
+ ### Added
74
+ - **qram_simulator 薄 Python 绑定**(`bindings/python/`):刻意最小化的
75
+ 核心原语 API——System/SparseState 寄存器管理、Init/Hadamard/X、
76
+ Add 算术族、QFT、MeasureZ/Reset/Probability、PartialTrace、
77
+ QRAMCircuit_qutrit/QRAMLoad、StatePrint;含 pytest 冒烟测试
78
+ - 根 `pyproject.toml`(qram-simulator 包):scikit-build-core + setuptools-scm,
79
+ wheel 构建经 cmake.define 关闭 tests/experiments,sdist 保持自包含
80
+ - **宽度与截断约定**(`docs/operators.md` 新章,权威契约):LSB 对齐;读扩展由
81
+ 名字槽位承载(`_UInt_` 零扩展 / `_SInt_` 符号扩展 / `AnyInt` 按寄存器声明
82
+ 类型),release 构建同样成立;结果 `mod 2^out_width` XOR 写入,输出宽度可与
83
+ 输入任意不同;域外全量化(除零→商 0);flag 谓词在全精度域求值;宽度
84
+ 1..64 全支持;唯一行为变更是 `Add_AnyInt_AnyInt_InPlace` 的 AnyInt 槽语义
85
+ - **16 个新算术算子**(CPU+CUDA+PySparQ 绑定,整数核+flag 谓词族,服务
86
+ pyqecclang QFVM 算术自动编译的去 compile_operator 化):
87
+ `Sub_UInt_UInt`、`Neg_UInt`、`Abs_SInt`、`Mul_UInt_UInt`、`Div_UInt_UInt`、
88
+ `Sqrt_UInt`、`Select_Bool_UInt_UInt`、`And/Or/Xor_UInt_UInt`、
89
+ `Less_SInt_SInt`、`Carry_UInt_UInt`、`Overflow_SInt_SInt`、
90
+ `MulOverflow_UInt_UInt`、`IsZero_UInt`、`Negative_SInt`
91
+ - **Common/include/basic.h**:`width_mask` / `isqrt_u64`(HOST_DEVICE,
92
+ 整数位对算法,CPU/CPU-CUDA 位一致)
93
+ - **PySparQ/pysparq/conformance.py**:`two_complement_decode` / `sign_extend`
94
+ / `WIDTH_BOUNDARIES` / 声明式 `width_matrix_case`(宽度组合 × 独立模型 ×
95
+ 非零输出起点碰撞 × 双序 dagger × 叠加线性 × 控制矩阵一站式 runner);
96
+ **PySparQ/test/test_width_conventions.py**:16 新算子 + 存量 Add/Assign/
97
+ Compare 的宽度边界矩阵(含 63/64 位边界)
98
+ - **SparQ/test/quantum_arithmetic.cpp**:16 新算子混合宽度真值表 + 参数化
99
+ 宽度扫描 + Add_AnyInt 新语义专项;**test/GPUTest/ArithmeticTest**:CUDA
100
+ 修复项的一致性用例(新)
101
+ - **docs/naming_conventions.md**:槽位语义承载规则与谓词算子族命名规则增补
102
+
103
+ ### Changed
104
+ - **CUDA 可逆性/UB 修复**:`Add_UInt_UInt` 无条件路径由覆盖写改为 XOR+宽度
105
+ 掩码(此前对非零输出寄存器不可逆);`Add_UInt_UInt_InPlace`/`Add_Mult`/
106
+ `Assign` CUDA 路径补宽度掩码(消除 CPU/GPU 不等宽行为分歧);全部
107
+ `%=(1<<w)`/`1<<w` 于 w=64 的 UB 改为 `width_mask`;`cu_as_uint64/double/
108
+ bool/int64` 与 `CuConditionSatisfied` 的 `1ULL<<64` UB 修复(64 位寄存器
109
+ CUDA 读取此前掩码为 0)
110
+ - **`Add_AnyInt_AnyInt_InPlace` 语义迁移(唯一行为变更)**:AnyInt 槽按寄存器
111
+ 声明类型扩展(SInt 操作数此前按无符号位模式读);宽度/类型改执行期读取;
112
+ 补 `lhs==rhs` 别名拒绝(always-on)。等宽非负使用不受影响
113
+ - **`CustomArithmetic`**:输出 XOR 补宽度掩码(此前裸写可越宽)
114
+ - **`consumer_runtime_inventory.json`**:accepted 清单增补 16 个新算子
115
+ (xor_into);契约测试增补 Sub/Div/Select 独立模型用例
116
+ - **docs/naming_conventions.md** (naming-refactor task): authoritative operator
117
+ naming ruleset — symbol layers, the `Family_Slots_Variants` grammar with closed type-tag /
118
+ modifier / variant vocabularies, slot and `_Bool` semantics, the `_InPlace`
119
+ naming contract, dagger-first inversion principle, gate-family rules
120
+ (`<Axis>_Bool` without the `gate` infix), RPN composition reading, the
121
+ deprecation/alias mechanism, and the full rename audit table
122
+ - **SparQ/src/qft.cpp**, **SparQ/include/qft.h**: `QFT::dag()` now applies
123
+ the inverse transform (delegating to `InverseQFT` with control conditions
124
+ preserved) and is exposed in PySparQ via `BIND_DAG_METHODS(QFT)`
125
+ - **PySparQ/pysparq/__init__.py**: PEP 562 module `__getattr__` providing
126
+ old spellings of the 18 renamed Python operator names as deprecated aliases
127
+ (`DeprecationWarning`), keeping external consumers (pyqecclang, qfvm)
128
+ working during migration; `PySparQ/consumer_runtime_inventory.json` gains a
129
+ `deprecated_aliases` section documenting the mapping
130
+ - **PySparQ/pysparq/rir.py**: native execution of QECC.Lang RIR JSON documents
131
+ (schema versions 0.1–0.3) on PySparQ sparse states — module-graph expansion at
132
+ interpretation time (`Call` inlining via register renaming, `Repeat` replay,
133
+ `Adjoint` inversion, multi-bit `Control` accumulation) with native operator
134
+ dispatch (`Add_ConstUInt_InPlace`, `GlobalPhase`, `QRAMLoad`) whenever an
135
+ RIR operand aligns with a whole register; exposed as `run_rir`, `run_rir_file`,
136
+ `load_rir`, `RIRResult`, `RIRError`
137
+ - **PySparQ/test/test_rir.py**: regression tests for RIR loading, gate-level
138
+ execution, module expansion, register-view arithmetic and QRAM loading
139
+ - **docs/sphinx/source/guide/rir.rst**, **docs/sphinx/source/api/rir.rst**,
140
+ **docs/pysparq.md**: documentation of PySparQ as the natural RIR interpreter,
141
+ with worked examples (Bell state, `Call`/`Repeat`/`Adjoint` module graphs,
142
+ register views, QRAM loading)
143
+ - **SparQ/include/measurement.h**, **SparQ/src/measurement.cpp**: First-class
144
+ seedable sparse-state operations for a dynamic executor: `MeasureZ`
145
+ (projective Z-basis measurement: Born-rule sampling + collapse +
146
+ renormalize), `Reset` (measurement + classical conditioned flip to a
147
+ target value), `Probability` (read-only Born-rule query + full
148
+ single-register outcome distribution)
149
+ - **PySparQ/core.cpp**: pybind11 bindings for `MeasureZ`, `Reset`,
150
+ `Probability`, and the global seedable RNG (`set_seed`, `get_seed`,
151
+ `reseed`, `time_seed`)
152
+ - **PySparQ/pysparq/conformance.py**: Reusable semantic conformance harness
153
+ (arbitrary nonzero outputs, basis-exhaustive/spot-sampled coverage,
154
+ output-collision detection, superposition linearity, positive/negative/
155
+ multi-register controls, forward+dagger and dagger+forward identity)
156
+ - **PySparQ/test/test_semantic_conformance.py**: Conformance matrix applied
157
+ to representative built-ins (`Add_UInt_UInt`, `Add_UInt_UInt_InPlace`,
158
+ `Assign`, `Compare_UInt_UInt`, `CustomArithmetic`, `Swap_General_General`,
159
+ `Xgate_Bool`, `FlipBools`, `QRAMLoad`), plus a negative-control test
160
+ proving the harness rejects a destructive overwrite/clearing-dagger
161
+ implementation
162
+ - **PySparQ/test/test_measurement.py**: `MeasureZ`/`Reset`/`Probability`
163
+ tests, including determinism under `set_seed` and Born-rule cross-checks
164
+ against a dense-state reference
165
+ - **PySparQ/pysparq/conformance.py**: `assert_collision_free_for_output_starts`
166
+ strengthens collision detection for `xor_into` operators by re-checking
167
+ injectivity with the output register(s) seeded at several arbitrary
168
+ (including nonzero) starting values, not only the conventional
169
+ clean/zero-ancilla start; applied to `Add_UInt_UInt`, `Assign`,
170
+ `Compare_UInt_UInt`, `CustomArithmetic`, and `QRAMLoad` in
171
+ `test_semantic_conformance.py`, plus a negative-control test proving it
172
+ rejects the destructive overwrite implementation at nonzero starts too
173
+ - **PySparQ/test/test_measurement.py**: `TestMeasureZNormalizationValidation`
174
+ and `TestRegisterValidation` cover the C++ hardening below (non-normalized
175
+ input rejection, unknown/out-of-range/inactive/duplicate register
176
+ rejection, out-of-width-range Reset target/Probability value rejection)
177
+
178
+ ### Fixed
179
+ - **SparQ/include/measurement.h**, **SparQ/src/measurement.cpp**:
180
+ - `MeasureZ` now validates that the input state's total Born-rule
181
+ probability is finite and within `kNormalizationThreshold` (`1e-5`,
182
+ matching `CheckNormalization`'s default) of 1.0 before sampling, and
183
+ raises instead of silently biasing towards/falling back to the last
184
+ branch when a caller passes a non-normalized state. `Reset` inherits
185
+ this guard since it delegates to `MeasureZ`.
186
+ - `MeasureZ`/`Reset`/`Probability` constructors now validate every
187
+ register name/id: unknown names and out-of-range or inactive
188
+ (removed) ids raise `invalid_argument` instead of silently resolving
189
+ to `SIZE_MAX`/an unchecked id (previously undefined behavior on use);
190
+ duplicate registers within one call (e.g. `Reset(["a", "a"], [1, 2])`)
191
+ are rejected instead of silently applying a contradictory target.
192
+ - `Reset` targets and `Probability` values are validated against
193
+ `System::size_of(id)` and now raise `invalid_argument` if they do not
194
+ fit the register's bit width, instead of being silently truncated.
195
+
196
+ ### Changed
197
+ - **Naming refactor (19 operator renames, per docs/naming_conventions.md)**:
198
+ the gate family loses the `gate` infix (`Xgate_Bool` → `X_Bool`, 11 gates);
199
+ `inverseQFT` → `InverseQFT` (last lowercase-initial class name); truthless
200
+ type tags fixed (`GlobalPhase_Int` → `GlobalPhase`,
201
+ `Div_Sqrt_Arccos_Int_Int` → `Div_Sqrt_Arccos_UInt_UInt`,
202
+ `Sqrt_Div_Arccos_Int_Int` → `Sqrt_Div_Arccos_Int_UInt`);
203
+ `AddAssign_AnyInt_AnyInt_InPlace` → `Add_AnyInt_AnyInt_InPlace`;
204
+ `Hadamard_PartialQubit` → `Hadamard_Partial`;
205
+ `CondRot_General_Bool_fast` → `CondRot_General_Bool_Fast` (C++ only);
206
+ `QuantumBinarySearchFast` → `QuantumBinarySearch_Fast`. Old C++ spellings
207
+ remain available as `[[deprecated]] using` aliases and old Python spellings
208
+ via the deprecation aliases above; all in-repo consumers (SparQ,
209
+ SparQ_Algorithm, Experiments, tests, examples, PySparQ, docs) use the new
210
+ names. `GetRotateAngle_Int_Int` was verified truthful (signed
211
+ interpretation) and unchanged
212
+ - **docs**: sphinx operator pages drift fixed (short names missing `_InPlace`
213
+ for `Add_ConstUInt_InPlace`/`Add_Mult_UInt_ConstUInt_InPlace`/
214
+ `Mod_Mult_UInt_ConstUInt_InPlace`/`Shift*_InPlace`; removed the phantom
215
+ `CheckNormalization_Renormalize`; corrected the false
216
+ "ShiftLeft.dag() not implemented" claim); CLAUDE.md no longer claims
217
+ nonexistent CNOT/Toffoli classes; CONTRIBUTING.md's function-naming example
218
+ corrected to the real `noise_free_impl` and now links the naming ruleset
219
+ - **SparQ/include/basic_components.h**, **SparQ/src/basic_components.cpp**:
220
+ CPU basis-state register storage now uses `std::vector<StateStorage>`.
221
+ `CACHED_REGISTER_SIZE` is the initial reserved block rather than a hard CPU
222
+ limit; storage grows on demand and removed slots are reused. CUDA retains
223
+ its fixed layout and 64-register ceiling required by device kernels and
224
+ their `uint64_t` active-register bitmap.
225
+ - **PySparQ/pysparq/dynamic_operator/__init__.py**,
226
+ **PySparQ/pysparq/dynamic_operator/README.md**: Documented that
227
+ `compile_operator()` cannot prove unitarity and is forbidden on the
228
+ supported QCFD path (QECC.Lang-driven qfvm/qnls/qham); QCFD semantics
229
+ must use named PySparQ built-ins validated by `pysparq.conformance`
230
+ - **README.md**: Documented the new seedable measurement/reset/probability
231
+ API in the Register Level key-API section
232
+
233
+ ---
234
+
235
+ ## [0.1.1] - 2026-05-01
236
+
237
+ ### Added
238
+ - **PySparQ/core.cpp**: Native C++ bindings for CKS primitives:
239
+ `CondRot_General_Bool_QW`, `QuantumBinarySearchFast`, `GetRowAddr`,
240
+ `GetDataAddr`; `SparseMatrix` named constructor arguments and
241
+ read-only properties (`nnz_col`, `n_row`, `data_size`, `sparsity`)
242
+ - **PySparQ/pysparq/__init__.py**: Export 4 new CKS primitives
243
+ - **PySparQ/pysparq/algorithms/cks_solver.py**: Full refactor:
244
+ `_CKSWalkEnvironment` class with bytecode-based unpacking, global caches
245
+ (`_CKS_ENV_CACHE`, `_CKS_STATE_STEP_CACHE`), `SparseMatrix.from_dense()`
246
+ with L2-normalization, `TOperator` oracle call order aligned to C++,
247
+ `QuantumWalkNSteps` power-of-two padding
248
+ - **PySparQ/pysparq/algorithms/qda_solver.py**: `BlockEncodingHs.dag()`
249
+ implemented (21-operation reverse sequence); `qda_solve()` rewritten
250
+ with correct `n_bits` and step formula
251
+ - **PySparQ/test/algorithms/test_cks_integration.py**: Full end-to-end
252
+ quantum walk execution against C++ reference matrices
253
+ - **PySparQ/test/algorithms/test_qda_integration.py**: `WalkS` fidelity
254
+ tests against C++ `CorrectnessTest_QDA_CompareList.inl` reference values
255
+
256
+ ### Changed
257
+ - **PySparQ/src/qda_algo.cpp**: Conditional rotation primitives refactored
258
+ to `CondRot_Fixed_Bool` and `CondRot_General_Bool_fast`; old
259
+ function-based API removed
260
+ - **PySparQ/**: `block_encoding.py`, `state_preparation.py`,
261
+ `dynamic_operator/compiler.py`, `dynamic_operator/operator_wrapper.py`
262
+ updated to new condrot API
263
+ - **SparQ/src/condrot.cpp**: Internal condrot implementation aligned
264
+ - **SparQ_Algorithm/**: `hamiltonian_simulation.h/cpp` aligned with new
265
+ condrot API
266
+ - **docs/paper/reproduction.md**: Updated CUDA build instructions;
267
+ upstream repo URL fixed
268
+ - **CONTRIBUTING.md**: Updated clone instructions to upstream;
269
+ added `uv venv` guidance
270
+ - **CLAUDE.md**: Added CKS/QDA Python porting status and open issues
271
+
272
+ ### Fixed
273
+ - **PySparQ/src/qda_algo.cpp**: Trailing newline added
274
+
275
+ ### Removed
276
+ - **PySparQ/**: Old function-based conditional rotation Python API
277
+ hidden from `__init__.py`
278
+
279
+ ### Documentation
280
+ - **docs/paper/reproduction.md**: Fix repository URL from fork to upstream
281
+ - **CONTRIBUTING.md**: Fix clone URL from fork to upstream
282
+ - **CLAUDE.md**: Add CKS/QDA Python porting status and known open issues
283
+
284
+ ---
285
+
286
+ ## [0.1.0] - 2025-04-15
287
+
288
+ ### Added
289
+
290
+ #### 核心模拟器
291
+ - **稀疏态量子模拟器核心(SparQ)**
292
+ - 基于稀疏向量表示的量子态存储
293
+ - 高效的门操作执行引擎
294
+ - 支持任意数量的量子比特
295
+ - 内置归一化验证和状态检查
296
+
297
+ #### QRAM 实现
298
+ - **Qutrit-based QRAM 电路**
299
+ - 层次化的树形结构表示
300
+ - 支持可配置的地址线和数据线位数
301
+ - 时步逻辑生成量子操作序列
302
+ - 分支概率追踪和采样
303
+
304
+ - **Qubit-based QRAM 电路**
305
+ - 硬件兼容的实现方式
306
+ - 与 qutrit 版本共享相同 API
307
+
308
+ - **CUDA GPU 加速支持**
309
+ - GPU 内存管理(`thrust::device_vector`)
310
+ - 并行门操作内核
311
+ - 异步执行支持
312
+ - CPU-GPU 混合执行策略
313
+
314
+ #### 基础量子门
315
+ - **单比特门**:H(Hadamard)、X、Y、Z、S、T
316
+ - **旋转门**:RX、RY、RZ、通用旋转门
317
+ - **多比特门**:CNOT、Toffoli、多控制门
318
+ - **条件门**:条件旋转、条件交换
319
+ - **相位门**:S、T、相位旋转、并行相位操作
320
+
321
+ #### 高级量子算法
322
+ - **量子傅里叶变换(QFT)**
323
+ - **Grover 搜索算法**
324
+ - **量子算术运算**
325
+ - 量子加法器
326
+ - 量子乘法器
327
+ - 量子比较器
328
+ - **块编码(Block Encoding)**
329
+ - **态制备(State Preparation)**
330
+ - **量子随机漫步**
331
+ - **哈密顿量模拟**
332
+
333
+ #### 噪声模型
334
+ - **去极化噪声(Depolarizing)**
335
+ - **振幅阻尼噪声(Amplitude Damping)**
336
+ - **噪声参数可配置**
337
+ - **噪声影响分析工具**
338
+
339
+ #### Python 绑定(PySparQ)
340
+ - **完整的 Python API**
341
+ - 所有核心类暴露到 Python
342
+ - 类型提示支持(`_core.pyi`)
343
+ - **Pybind11 封装**
344
+ - 高效的 C++-Python 互操作
345
+ - 自动内存管理
346
+ - **pip 安装支持**
347
+ - `pyproject.toml` 配置
348
+ - 预编译 wheel 分发
349
+
350
+ #### 实验代码
351
+ - **QRAM 保真度测试**
352
+ - `QRAMFidelityTest.cpp`:主模拟 + 性能分析
353
+ - `QRAMSimulatorTest.cpp`:完整 vs 普通模拟器对比
354
+ - **误差过滤实验**
355
+ - `testMultiEFQRAM.cpp`:多误差过滤 QRAM
356
+ - **算法验证**
357
+ - QFT、Grover、Shor 算法
358
+ - 量子卷积神经网络(QCNN)
359
+ - 量子微分算法(QDA)
360
+ - GHZ 态制备
361
+
362
+ #### 基础设施
363
+ - **CMake 构建系统**
364
+ - 跨平台支持(Linux、Windows、macOS)
365
+ - 自动依赖检测
366
+ - CUDA 可选编译
367
+ - **Eigen 集成**
368
+ - 头文件形式嵌入(ThirdParty/eigen-3.4.0)
369
+ - 稀疏/稠密矩阵运算支持
370
+ - **日志系统**
371
+ - 分级日志(DEBUG、INFO、WARN、ERROR)
372
+ - 性能计时支持
373
+ - **单元测试框架**
374
+ - 核心模块测试覆盖
375
+ - CI/CD 集成(GitHub Actions)
376
+
377
+ ### Changed
378
+ - 无(初始版本)
379
+
380
+ ### Deprecated
381
+ - 无
382
+
383
+ ### Removed
384
+ - 无
385
+
386
+ ### Fixed
387
+ - 无(初始版本)
388
+
389
+ ### Security
390
+ - 无
391
+
392
+ ---
393
+
394
+ ## 版本历史概览
395
+
396
+ | 版本 | 日期 | 主要更新 |
397
+ |------|------|----------|
398
+ | 0.1.1 | 2026-05-01 | CKS/QDA Python primitive alignment, native C++ bindings, integration tests activated |
399
+ | 0.1.0 | 2025-04-15 | 首次发布,包含完整的 QRAM 模拟器、稀疏态模拟核心、Python 绑定和实验代码 |
400
+
401
+ ---
402
+
403
+ ## 未来计划
404
+
405
+ ### [1.1.0] - 计划
406
+
407
+ #### 预期新增功能
408
+ - [ ] 更多噪声模型(相位阻尼、比特翻转等)
409
+ - [ ] 可视化工具(量子态演化图)
410
+ - [ ] 性能优化(向量化、更高效的稀疏操作)
411
+ - [ ] 更多算法实现(VQE、QAOA)
412
+ - [ ] 交互式 Jupyter Notebook 教程
413
+
414
+ #### 预期改进
415
+ - [ ] Python API 文档完善
416
+ - [ ] 更多使用示例
417
+ - [ ] 性能基准测试套件
418
+
419
+ ---
420
+
421
+ ## 参考
422
+
423
+ - [Keep a Changelog](https://keepachangelog.com/)
424
+ - [Semantic Versioning](https://semver.org/)
425
+ - 项目文档:[README.md](README.md) | [ARCHITECTURE.md](docs/architecture.md)
@@ -0,0 +1,167 @@
1
+ cmake_minimum_required(VERSION 3.18)
2
+
3
+ project(QRAMSimulator)
4
+
5
+ include_directories(${PROJECT_SOURCE_DIR}/Common/include
6
+ ${PROJECT_SOURCE_DIR}/QRAM/include
7
+ ${PROJECT_SOURCE_DIR}/ThirdParty
8
+ ${PROJECT_SOURCE_DIR}/ThirdParty/argparse
9
+ ${PROJECT_SOURCE_DIR}/ThirdParty/fmt/include
10
+ ${PROJECT_SOURCE_DIR}/ThirdParty/eigen-3.4.0
11
+ )
12
+
13
+ set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
14
+ set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
15
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/bin)
16
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/bin)
17
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR}/lib)
18
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR}/lib)
19
+ set(CMAKE_CXX_STANDARD 17)
20
+ set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
21
+
22
+ # Enable testing (only when the test targets are built; consumers embedding
23
+ # this project via add_subdirectory, e.g. SparQSim, turn QRAM_BUILD_TESTS OFF)
24
+ option(QRAM_BUILD_TESTS "Build C++ test targets (test/)" ON)
25
+ option(QRAM_BUILD_EXPERIMENTS "Build QRAM experiment programs (Experiments/)" ON)
26
+ option(QRAM_BUILD_PYTHON_BINDINGS "Build pybind11 Python bindings (bindings/python/)" OFF)
27
+ if(QRAM_BUILD_TESTS)
28
+ enable_testing()
29
+ endif()
30
+
31
+ option(QRAM_ENABLE_CUDA "Enable CUDA GPU support" OFF)
32
+
33
+ if(CACHED_REGISTER_SIZE)
34
+ # CPU: initial std::vector reservation, not a hard register limit.
35
+ # CUDA: fixed device layout and therefore still a hard limit (<= 64).
36
+ add_compile_definitions(CACHED_REGISTER_SIZE=${CACHED_REGISTER_SIZE})
37
+ endif()
38
+
39
+ add_compile_definitions(FMT_UNICODE=0)
40
+
41
+ if(QRAM_ENABLE_CUDA)
42
+ message(STATUS "CUDA support is temporarily disabled for the CondRot primitive refactor")
43
+ endif()
44
+ set(CUDA_FOUND FALSE)
45
+ message(STATUS "CUDA support disabled - building CPU-only")
46
+
47
+ option(CMAKE_BUILD_TYPE "Release")
48
+
49
+ message(STATUS "PROJECT_BINARY_DIR = ${PROJECT_BINARY_DIR}")
50
+ message(STATUS "CMAKE_BUILD_TYPE = ${CMAKE_BUILD_TYPE}")
51
+
52
+ find_package(OpenMP REQUIRED)
53
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
54
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
55
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
56
+
57
+ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
58
+ # TBB is optional - used for parallel algorithms if available
59
+ find_package(TBB QUIET)
60
+ if(TBB_FOUND)
61
+ message(STATUS "Found TBB: ${TBB_VERSION}")
62
+ else()
63
+ message(STATUS "TBB not found - using OpenMP for parallelization")
64
+ endif()
65
+
66
+ if (UNIX)
67
+ add_compile_options(-fPIC)
68
+ endif(UNIX)
69
+
70
+ # MSVC: force UTF-8 source interpretation. Headers carry UTF-8 Chinese
71
+ # comments; on legacy code pages (e.g. CP936) MSVC mis-decodes them, which
72
+ # can merge an #ifdef line into a preceding comment and break the build.
73
+ if (MSVC)
74
+ add_compile_options(/utf-8)
75
+ endif()
76
+
77
+ add_subdirectory(Common)
78
+ add_subdirectory(QRAM)
79
+
80
+ # Expose the flat header layout to consumers that link these libraries from
81
+ # OUTSIDE this subtree (e.g. SparQSim, which embeds the repo as a git
82
+ # submodule and builds its own SparQ umbrella target on top).
83
+ # The include_directories() call at the top of this file only reaches targets
84
+ # inside this directory tree. BUILD_INTERFACE serves add_subdirectory
85
+ # consumers; INSTALL_INTERFACE matches the flat include/ layout installed by
86
+ # the install(DIRECTORY ...) rules at the bottom of this file.
87
+ include(GNUInstallDirs)
88
+ set(QRAM_CORE_INCLUDE_DIRS
89
+ ${PROJECT_SOURCE_DIR}/Common/include
90
+ ${PROJECT_SOURCE_DIR}/QRAM/include
91
+ ${PROJECT_SOURCE_DIR}/ThirdParty
92
+ ${PROJECT_SOURCE_DIR}/ThirdParty/argparse
93
+ ${PROJECT_SOURCE_DIR}/ThirdParty/fmt/include
94
+ ${PROJECT_SOURCE_DIR}/ThirdParty/eigen-3.4.0
95
+ )
96
+ target_include_directories(SparQ_QRAMSimulator INTERFACE
97
+ "$<BUILD_INTERFACE:${QRAM_CORE_INCLUDE_DIRS}>"
98
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
99
+ )
100
+ target_include_directories(SparQ_Common INTERFACE
101
+ "$<BUILD_INTERFACE:${QRAM_CORE_INCLUDE_DIRS}>"
102
+ "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
103
+ )
104
+
105
+ add_subdirectory(ThirdParty EXCLUDE_FROM_ALL)
106
+
107
+ # Python 绑定(pybind11):默认 OFF,嵌入消费方(SparQSim 的
108
+ # add_subdirectory)与纯 C++ CI 不受影响。开启时 pybind11 由
109
+ # scikit-build-core 的构建隔离环境(pip)或系统安装提供。
110
+ # 注意:pybind11 的 imported target 是目录作用域,find_package 必须
111
+ # 在本目录内完成,不能依赖上层消费者代为查找。
112
+ if(QRAM_BUILD_PYTHON_BINDINGS)
113
+ find_package(pybind11 CONFIG REQUIRED)
114
+ add_subdirectory(bindings/python)
115
+ endif()
116
+
117
+ if(QRAM_BUILD_TESTS)
118
+ add_subdirectory(test)
119
+ endif()
120
+
121
+ if(QRAM_BUILD_EXPERIMENTS)
122
+ add_subdirectory(Experiments)
123
+ endif()
124
+
125
+ # --- Install rules ---
126
+ # (GNUInstallDirs is included above, before the INTERFACE includes)
127
+ #
128
+ # C++ 开发包安装规则(静态库 + 平铺头文件 + CMake package config)。
129
+ # wheel 构建(QRAM_BUILD_PYTHON_BINDINGS=ON,scikit-build-core 把安装前缀
130
+ # 指向 wheel 的 platlib)时跳过,避免把 include/、lib/ 灌进 site-packages;
131
+ # 此时仅有 bindings/python 里 _core 扩展的 install 规则生效。
132
+ if(NOT QRAM_BUILD_PYTHON_BINDINGS)
133
+
134
+ set(INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/QRAMSimulator")
135
+
136
+ install(TARGETS SparQ_Common SparQ_QRAMSimulator
137
+ EXPORT QRAMSimulatorTargets
138
+ INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
139
+ )
140
+
141
+ install(DIRECTORY
142
+ Common/include/
143
+ QRAM/include/
144
+ ThirdParty/eigen-3.4.0/
145
+ ThirdParty/fmt/include/
146
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
147
+ )
148
+
149
+ install(EXPORT QRAMSimulatorTargets
150
+ FILE QRAMSimulatorTargets.cmake
151
+ NAMESPACE QRAMSimulator::
152
+ DESTINATION ${INSTALL_CONFIGDIR}
153
+ )
154
+
155
+ include(CMakePackageConfigHelpers)
156
+ configure_package_config_file(
157
+ ${CMAKE_CURRENT_SOURCE_DIR}/cmake/QRAMSimulatorConfig.cmake.in
158
+ ${CMAKE_CURRENT_BINARY_DIR}/QRAMSimulatorConfig.cmake
159
+ INSTALL_DESTINATION ${INSTALL_CONFIGDIR}
160
+ )
161
+
162
+ install(FILES
163
+ ${CMAKE_CURRENT_BINARY_DIR}/QRAMSimulatorConfig.cmake
164
+ DESTINATION ${INSTALL_CONFIGDIR}
165
+ )
166
+
167
+ endif() # NOT QRAM_BUILD_PYTHON_BINDINGS(跳过 C++ 开发包安装)