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.
- qram_simulator-0.2.0/.gitignore +59 -0
- qram_simulator-0.2.0/CHANGELOG.md +425 -0
- qram_simulator-0.2.0/CMakeLists.txt +167 -0
- qram_simulator-0.2.0/CONTRIBUTING.md +239 -0
- qram_simulator-0.2.0/Common/CMakeLists.txt +1 -0
- qram_simulator-0.2.0/Common/include/basic.h +626 -0
- qram_simulator-0.2.0/Common/include/cuda/cuda_utils.cuh +91 -0
- qram_simulator-0.2.0/Common/include/error_handler.h +92 -0
- qram_simulator-0.2.0/Common/include/iterable.h +149 -0
- qram_simulator-0.2.0/Common/include/logger.h +453 -0
- qram_simulator-0.2.0/Common/include/matrix.h +1339 -0
- qram_simulator-0.2.0/Common/include/random_engine.h +164 -0
- qram_simulator-0.2.0/Common/include/simple_quantum_simulator.h +188 -0
- qram_simulator-0.2.0/Common/include/state_manipulator.h +114 -0
- qram_simulator-0.2.0/Common/include/typedefs.h +230 -0
- qram_simulator-0.2.0/Common/src/CMakeLists.txt +36 -0
- qram_simulator-0.2.0/Common/src/basic.cpp +60 -0
- qram_simulator-0.2.0/Common/src/error_handler.cpp +173 -0
- qram_simulator-0.2.0/Common/src/logger.cpp +78 -0
- qram_simulator-0.2.0/Common/src/matrix.cpp +505 -0
- qram_simulator-0.2.0/Common/src/simple_quantum_simulator.cpp +234 -0
- qram_simulator-0.2.0/Common/src/state_manipulator.cpp +194 -0
- qram_simulator-0.2.0/LICENSE +202 -0
- qram_simulator-0.2.0/PKG-INFO +237 -0
- qram_simulator-0.2.0/QRAM/CMakeLists.txt +1 -0
- qram_simulator-0.2.0/QRAM/include/cuda/qram_circuit_qutrit.cuh +56 -0
- qram_simulator-0.2.0/QRAM/include/qram_branch_qubit.h +366 -0
- qram_simulator-0.2.0/QRAM/include/qram_branch_qutrit.h +472 -0
- qram_simulator-0.2.0/QRAM/include/qram_circuit_qubit.h +287 -0
- qram_simulator-0.2.0/QRAM/include/qram_circuit_qutrit.h +288 -0
- qram_simulator-0.2.0/QRAM/include/time_step.h +456 -0
- qram_simulator-0.2.0/QRAM/src/CMakeLists.txt +34 -0
- qram_simulator-0.2.0/QRAM/src/qram_branch_qubit.cpp +614 -0
- qram_simulator-0.2.0/QRAM/src/qram_branch_qutrit.cpp +700 -0
- qram_simulator-0.2.0/QRAM/src/qram_circuit_qubit.cpp +859 -0
- qram_simulator-0.2.0/QRAM/src/qram_circuit_qutrit.cpp +965 -0
- qram_simulator-0.2.0/QRAM/src/time_step.cpp +605 -0
- qram_simulator-0.2.0/README.md +223 -0
- qram_simulator-0.2.0/ThirdParty/CMakeLists.txt +1 -0
- qram_simulator-0.2.0/ThirdParty/argparse/argparse.h +580 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Cholesky +45 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/CholmodSupport +48 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Core +384 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Dense +7 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Eigen +2 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Eigenvalues +60 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Geometry +59 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Householder +29 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/IterativeLinearSolvers +48 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Jacobi +32 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/KLUSupport +41 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/LU +47 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/MetisSupport +35 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/OrderingMethods +70 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/PaStiXSupport +49 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/PardisoSupport +35 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/QR +50 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/QtAlignedMalloc +39 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SPQRSupport +34 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SVD +50 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/Sparse +34 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseCholesky +37 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseCore +69 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseLU +50 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SparseQR +36 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdDeque +27 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdList +26 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/StdVector +27 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/SuperLUSupport +64 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/UmfPackSupport +40 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LDLT.h +688 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LLT.h +558 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArithmeticSequence.h +413 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Array.h +417 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArrayBase.h +226 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ArrayWrapper.h +209 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Assign.h +90 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/AssignEvaluator.h +1010 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Assign_MKL.h +178 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/BandMatrix.h +353 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Block.h +448 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/BooleanRedux.h +162 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CommaInitializer.h +164 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ConditionEstimator.h +175 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CoreEvaluators.h +1741 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CoreIterators.h +132 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/CwiseUnaryView.h +132 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseBase.h +701 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DenseStorage.h +652 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Diagonal.h +258 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DiagonalMatrix.h +391 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/DiagonalProduct.h +28 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Dot.h +318 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/EigenBase.h +160 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Fuzzy.h +155 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GeneralProduct.h +465 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GenericPacketMath.h +1040 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/GlobalFunctions.h +194 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/IO.h +258 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/IndexedView.h +237 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Inverse.h +117 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Map.h +171 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MapBase.h +310 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MathFunctions.h +2057 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Matrix.h +565 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/MatrixBase.h +547 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NestByValue.h +85 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NoAlias.h +109 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/NumTraits.h +335 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PermutationMatrix.h +605 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/PlainObjectBase.h +1128 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Product.h +191 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ProductEvaluators.h +1179 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Random.h +218 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Redux.h +515 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Ref.h +381 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Replicate.h +142 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Reshaped.h +454 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/ReturnByValue.h +119 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Reverse.h +217 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Select.h +164 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SelfAdjointView.h +365 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Solve.h +188 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SolveTriangular.h +235 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/SolverBase.h +168 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/StableNorm.h +251 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/StlIterators.h +463 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Stride.h +116 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Swap.h +68 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Transpose.h +464 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Transpositions.h +386 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/TriangularMatrix.h +1001 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/VectorBlock.h +96 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/VectorwiseOp.h +784 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/Visitor.h +381 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/Half.h +942 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/Settings.h +49 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/StlFunctors.h +166 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/Parallelizer.h +180 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/BlasUtil.h +583 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Constants.h +563 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/IntegralConstant.h +272 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/MKL_support.h +137 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Macros.h +1464 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Memory.h +1163 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/Meta.h +812 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/NonMPL2.h +3 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/StaticAssert.h +221 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Core/util/XprHelper.h +856 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/AlignedBox.h +486 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/AngleAxis.h +247 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/EulerAngles.h +114 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Homogeneous.h +501 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Hyperplane.h +282 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/OrthoMethods.h +235 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Quaternion.h +870 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Rotation2D.h +199 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/RotationBase.h +206 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Scaling.h +188 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Transform.h +1563 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Translation.h +202 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/Umeyama.h +166 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/BlockHouseholder.h +110 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/Householder.h +176 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Householder/HouseholderSequence.h +545 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/Jacobi/Jacobi.h +483 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/Determinant.h +117 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/FullPivLU.h +877 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/InverseImpl.h +432 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/PartialPivLU.h +624 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/LU/arch/InverseSize4.h +351 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Amd.h +435 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/OrderingMethods/Ordering.h +153 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/HouseholderQR.h +434 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/BDCSVD.h +1366 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/JacobiSVD.h +812 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/SVDBase.h +376 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/AmbiVector.h +378 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseAssign.h +270 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseBlock.h +571 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseDot.h +98 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMap.h +305 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseProduct.h +181 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseRedux.h +49 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseRef.h +397 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseUtil.h +186 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseVector.h +478 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/SparseView.h +254 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU.h +923 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SparseQR/SparseQR.h +758 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdDeque.h +116 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdList.h +106 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/StdVector.h +131 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/StlSupport/details.h +84 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/Image.h +82 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/Kernel.h +79 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/RealSvd2x2.h +55 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/blas.h +440 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapack.h +152 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapacke.h +16292 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/misc/lapacke_mangling.h +17 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/BlockMethods.h +1442 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- qram_simulator-0.2.0/ThirdParty/eigen-3.4.0/Eigen/src/plugins/ReshapedMethods.h +149 -0
- qram_simulator-0.2.0/ThirdParty/fmt/.clang-format +14 -0
- qram_simulator-0.2.0/ThirdParty/fmt/CMakeLists.txt +536 -0
- qram_simulator-0.2.0/ThirdParty/fmt/CONTRIBUTING.md +20 -0
- qram_simulator-0.2.0/ThirdParty/fmt/ChangeLog.md +2950 -0
- qram_simulator-0.2.0/ThirdParty/fmt/LICENSE +27 -0
- qram_simulator-0.2.0/ThirdParty/fmt/README.md +485 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/ChangeLog-old.md +3290 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/api.md +681 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/fmt.css +61 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/fmt.js +4 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/get-started.md +222 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/index.md +151 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/perf.svg +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/python-license.txt +290 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc/syntax.md +886 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/404.html +430 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/api.html +1974 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/_mkdocstrings.css +0 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/images/favicon.png +0 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/bundle.081f42fc.min.js +29 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/bundle.081f42fc.min.js.map +7 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/tinyseg.js +206 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/lunr/wordcut.js +6708 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/workers/search.b8dbb3d2.min.js +42 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/javascripts/workers/search.b8dbb3d2.min.js.map +7 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/main.6543a935.min.css +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/main.6543a935.min.css.map +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/palette.06af60db.min.css +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/assets/stylesheets/palette.06af60db.min.css.map +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/fmt.css +61 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/fmt.js +4 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/get-started.html +800 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/index.html +617 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/perf.svg +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/python-license.txt +290 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/search/search_index.json +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/sitemap.xml +3 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/sitemap.xml.gz +0 -0
- qram_simulator-0.2.0/ThirdParty/fmt/doc-html/syntax.html +1361 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/args.h +220 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/base.h +2962 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/chrono.h +2338 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/color.h +610 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/compile.h +539 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/core.h +5 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/format-inl.h +1949 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/format.h +4244 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/os.h +427 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/ostream.h +166 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/printf.h +633 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/ranges.h +850 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/std.h +726 -0
- qram_simulator-0.2.0/ThirdParty/fmt/include/fmt/xchar.h +373 -0
- qram_simulator-0.2.0/ThirdParty/fmt/src/fmt.cc +153 -0
- qram_simulator-0.2.0/ThirdParty/fmt/src/format.cc +46 -0
- qram_simulator-0.2.0/ThirdParty/fmt/src/os.cc +398 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/Android.mk +15 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/AndroidManifest.xml +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/C++.sublime-syntax +2061 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/README +4 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/Vagrantfile +19 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/appveyor-build.py +43 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/appveyor.yml +31 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/.bazelversion +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/BUILD.bazel +20 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/MODULE.bazel +6 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/README.md +28 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/bazel/WORKSPACE.bazel +2 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/build-docs.py +58 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/build.gradle +132 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/check-commits +43 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/FindSetEnv.cmake +7 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/JoinPaths.cmake +26 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/cxx14.cmake +70 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/fmt-config.cmake.in +7 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/cmake/fmt.pc.in +11 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/compute-powers.py +53 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/docopt.py +581 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/manage.py +297 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/mkdocs +76 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/mkdocs.yml +48 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/printable.py +201 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/python/mkdocstrings_handlers/cxx/__init__.py +338 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/python/mkdocstrings_handlers/cxx/templates/README +1 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/release.py +188 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/rst2md.py +159 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/conf.py +7 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/index.rst +2 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/theme/layout.html +17 -0
- qram_simulator-0.2.0/ThirdParty/fmt/support/rtd/theme/theme.conf +2 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/CMakeLists.txt +257 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/add-subdirectory-test/CMakeLists.txt +17 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/add-subdirectory-test/main.cc +5 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/args-test.cc +202 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/assert-test.cc +31 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/base-test.cc +886 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/chrono-test.cc +1088 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/color-test.cc +72 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/compile-error-test/CMakeLists.txt +215 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/compile-fp-test.cc +61 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/compile-test.cc +423 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/CMakeLists.txt +73 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/cpp14.cc +11 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/cuda-test/cuda-cpp14.cu +28 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/detect-stdfs.cc +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/enforce-checks-test.cc +65 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/find-package-test/CMakeLists.txt +17 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/find-package-test/main.cc +5 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/format-impl-test.cc +477 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/format-test.cc +2586 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/CMakeLists.txt +30 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/README.md +25 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/build.sh +90 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/chrono-duration.cc +136 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/chrono-timepoint.cc +32 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/float.cc +39 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/fuzzer-common.h +77 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/main.cc +22 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/named-arg.cc +102 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/one-arg.cc +92 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/fuzzing/two-args.cc +106 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/.clang-format +3 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/CMakeLists.txt +32 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gmock/gmock.h +11659 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gmock-gtest-all.cc +14442 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gtest/gtest-spi.h +238 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest/gtest/gtest.h +12399 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra-test.cc +410 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra.cc +80 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/gtest-extra.h +165 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/header-only-test.cc +11 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/mock-allocator.h +77 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/module-test.cc +520 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/no-builtin-types-test.cc +24 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/noexception-test.cc +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/os-test.cc +516 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/ostream-test.cc +308 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/perf-sanity.cc +25 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/posix-mock-test.cc +442 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/posix-mock.h +75 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/printf-test.cc +568 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/ranges-odr-test.cc +18 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/ranges-test.cc +796 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/scan-test.cc +184 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/scan.h +669 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/CMakeLists.txt +30 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/library.cc +5 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/static-export-test/main.cc +6 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/std-test.cc +416 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/test-assert.h +39 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/test-main.cc +43 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/unicode-test.cc +48 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/util.cc +48 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/util.h +83 -0
- qram_simulator-0.2.0/ThirdParty/fmt/test/xchar-test.cc +518 -0
- qram_simulator-0.2.0/banner.png +0 -0
- qram_simulator-0.2.0/bindings/python/CMakeLists.txt +11 -0
- qram_simulator-0.2.0/bindings/python/core_binding.cpp +308 -0
- qram_simulator-0.2.0/bindings/python/qram_simulator/__init__.py +20 -0
- qram_simulator-0.2.0/bindings/python/test/test_core.py +184 -0
- qram_simulator-0.2.0/cmake/CUDA.cmake +27 -0
- qram_simulator-0.2.0/cmake/FindTBB.cmake +49 -0
- qram_simulator-0.2.0/cmake/QRAMSimulatorConfig.cmake.in +10 -0
- 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++ 开发包安装)
|