qilisdk 0.1.8__cp313-cp313-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (633) hide show
  1. include/eigen3/Eigen/Cholesky +45 -0
  2. include/eigen3/Eigen/CholmodSupport +48 -0
  3. include/eigen3/Eigen/Core +384 -0
  4. include/eigen3/Eigen/Dense +7 -0
  5. include/eigen3/Eigen/Eigen +2 -0
  6. include/eigen3/Eigen/Eigenvalues +60 -0
  7. include/eigen3/Eigen/Geometry +59 -0
  8. include/eigen3/Eigen/Householder +29 -0
  9. include/eigen3/Eigen/IterativeLinearSolvers +48 -0
  10. include/eigen3/Eigen/Jacobi +32 -0
  11. include/eigen3/Eigen/KLUSupport +41 -0
  12. include/eigen3/Eigen/LU +47 -0
  13. include/eigen3/Eigen/MetisSupport +35 -0
  14. include/eigen3/Eigen/OrderingMethods +70 -0
  15. include/eigen3/Eigen/PaStiXSupport +49 -0
  16. include/eigen3/Eigen/PardisoSupport +35 -0
  17. include/eigen3/Eigen/QR +50 -0
  18. include/eigen3/Eigen/QtAlignedMalloc +39 -0
  19. include/eigen3/Eigen/SPQRSupport +34 -0
  20. include/eigen3/Eigen/SVD +50 -0
  21. include/eigen3/Eigen/Sparse +34 -0
  22. include/eigen3/Eigen/SparseCholesky +37 -0
  23. include/eigen3/Eigen/SparseCore +69 -0
  24. include/eigen3/Eigen/SparseLU +50 -0
  25. include/eigen3/Eigen/SparseQR +36 -0
  26. include/eigen3/Eigen/StdDeque +27 -0
  27. include/eigen3/Eigen/StdList +26 -0
  28. include/eigen3/Eigen/StdVector +27 -0
  29. include/eigen3/Eigen/SuperLUSupport +64 -0
  30. include/eigen3/Eigen/UmfPackSupport +40 -0
  31. include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
  32. include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
  33. include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
  34. include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
  35. include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
  36. include/eigen3/Eigen/src/Core/Array.h +417 -0
  37. include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  38. include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
  39. include/eigen3/Eigen/src/Core/Assign.h +90 -0
  40. include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
  41. include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
  42. include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
  43. include/eigen3/Eigen/src/Core/Block.h +448 -0
  44. include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
  45. include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
  46. include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
  47. include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
  48. include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
  49. include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
  50. include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
  51. include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
  52. include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
  53. include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
  54. include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
  55. include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
  56. include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
  57. include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
  58. include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
  59. include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
  60. include/eigen3/Eigen/src/Core/Dot.h +318 -0
  61. include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
  62. include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
  63. include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
  64. include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
  65. include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
  66. include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
  67. include/eigen3/Eigen/src/Core/IO.h +258 -0
  68. include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
  69. include/eigen3/Eigen/src/Core/Inverse.h +117 -0
  70. include/eigen3/Eigen/src/Core/Map.h +171 -0
  71. include/eigen3/Eigen/src/Core/MapBase.h +310 -0
  72. include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
  73. include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
  74. include/eigen3/Eigen/src/Core/Matrix.h +565 -0
  75. include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
  76. include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
  77. include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
  78. include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
  79. include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  80. include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
  81. include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
  82. include/eigen3/Eigen/src/Core/Product.h +191 -0
  83. include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
  84. include/eigen3/Eigen/src/Core/Random.h +218 -0
  85. include/eigen3/Eigen/src/Core/Redux.h +515 -0
  86. include/eigen3/Eigen/src/Core/Ref.h +381 -0
  87. include/eigen3/Eigen/src/Core/Replicate.h +142 -0
  88. include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
  89. include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
  90. include/eigen3/Eigen/src/Core/Reverse.h +217 -0
  91. include/eigen3/Eigen/src/Core/Select.h +164 -0
  92. include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
  93. include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
  94. include/eigen3/Eigen/src/Core/Solve.h +188 -0
  95. include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
  96. include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
  97. include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
  98. include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
  99. include/eigen3/Eigen/src/Core/Stride.h +116 -0
  100. include/eigen3/Eigen/src/Core/Swap.h +68 -0
  101. include/eigen3/Eigen/src/Core/Transpose.h +464 -0
  102. include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
  103. include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
  104. include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
  105. include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
  106. include/eigen3/Eigen/src/Core/Visitor.h +381 -0
  107. include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
  108. include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
  109. include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
  110. include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
  111. include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  112. include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
  113. include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
  114. include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  115. include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
  116. include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
  117. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  118. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  119. include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  120. include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
  121. include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
  122. include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  123. include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
  124. include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  125. include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  126. include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
  127. include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  128. include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  129. include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
  130. include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  131. include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  132. include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  133. include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  134. include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  135. include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  136. include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
  137. include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  138. include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
  139. include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
  140. include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  141. include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
  142. include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
  143. include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
  144. include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
  145. include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  146. include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  147. include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  148. include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  149. include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  150. include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  151. include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  152. include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  153. include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
  154. include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
  155. include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
  156. include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
  157. include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
  158. include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
  159. include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
  160. include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
  161. include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
  162. include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
  163. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
  164. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
  165. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
  166. include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
  167. include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
  168. include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
  169. include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
  170. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
  171. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
  172. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
  173. include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
  174. include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
  175. include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
  176. include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
  177. include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
  178. include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
  179. include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
  180. include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
  181. include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
  182. include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
  183. include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
  184. include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  185. include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
  186. include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
  187. include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
  188. include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  189. include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
  190. include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
  191. include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
  192. include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
  193. include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
  194. include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  195. include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
  196. include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  197. include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
  198. include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  199. include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
  200. include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
  201. include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
  202. include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
  203. include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
  204. include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
  205. include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
  206. include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
  207. include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
  208. include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
  209. include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
  210. include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
  211. include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
  212. include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
  213. include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
  214. include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
  215. include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
  216. include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
  217. include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
  218. include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
  219. include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
  220. include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
  221. include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
  222. include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
  223. include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  224. include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
  225. include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
  226. include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
  227. include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
  228. include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  229. include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
  230. include/eigen3/Eigen/src/Householder/Householder.h +176 -0
  231. include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
  232. include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
  233. include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
  234. include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
  235. include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
  236. include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
  237. include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
  238. include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
  239. include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
  240. include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
  241. include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  242. include/eigen3/Eigen/src/LU/Determinant.h +117 -0
  243. include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
  244. include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
  245. include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
  246. include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
  247. include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
  248. include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  249. include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
  250. include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
  251. include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
  252. include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
  253. include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
  254. include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
  255. include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
  256. include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
  257. include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
  258. include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
  259. include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
  260. include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
  261. include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
  262. include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
  263. include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
  264. include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
  265. include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
  266. include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
  267. include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
  268. include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
  269. include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
  270. include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
  271. include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
  272. include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
  273. include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
  274. include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  275. include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
  276. include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
  277. include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
  278. include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
  279. include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
  280. include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
  281. include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
  282. include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
  283. include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
  284. include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
  285. include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
  286. include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
  287. include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
  288. include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
  289. include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
  290. include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
  291. include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
  292. include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
  293. include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
  294. include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
  295. include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
  296. include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
  297. include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
  298. include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
  299. include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  300. include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
  301. include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
  302. include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
  303. include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  304. include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
  305. include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
  306. include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
  307. include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
  308. include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
  309. include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  310. include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  311. include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  312. include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  313. include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
  314. include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  315. include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
  316. include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
  317. include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
  318. include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
  319. include/eigen3/Eigen/src/StlSupport/details.h +84 -0
  320. include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
  321. include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
  322. include/eigen3/Eigen/src/misc/Image.h +82 -0
  323. include/eigen3/Eigen/src/misc/Kernel.h +79 -0
  324. include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
  325. include/eigen3/Eigen/src/misc/blas.h +440 -0
  326. include/eigen3/Eigen/src/misc/lapack.h +152 -0
  327. include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
  328. include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
  329. include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
  330. include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
  331. include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
  332. include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
  333. include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
  334. include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  335. include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
  336. include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
  337. include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
  338. include/eigen3/signature_of_eigen3_matrix_library +1 -0
  339. include/eigen3/unsupported/Eigen/AdolcForward +159 -0
  340. include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
  341. include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
  342. include/eigen3/unsupported/Eigen/AutoDiff +46 -0
  343. include/eigen3/unsupported/Eigen/BVH +95 -0
  344. include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
  345. include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
  346. include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
  347. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
  348. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
  349. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
  350. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
  351. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
  352. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
  353. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
  354. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
  355. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
  356. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
  357. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
  358. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
  359. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
  360. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
  361. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
  362. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
  363. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
  364. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
  365. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
  366. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
  367. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
  368. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
  369. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
  370. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
  371. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
  372. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
  373. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
  374. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
  375. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
  376. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
  377. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
  378. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
  379. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
  380. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
  381. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
  382. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
  383. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
  384. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
  385. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
  386. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
  387. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
  388. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
  389. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
  390. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
  391. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
  392. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
  393. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
  394. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
  395. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
  396. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
  397. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
  398. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
  399. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
  400. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
  401. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
  402. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
  403. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
  404. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
  405. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
  406. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
  407. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
  408. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
  409. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
  410. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
  411. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
  412. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
  413. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
  414. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
  415. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
  416. include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
  417. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
  418. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
  419. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
  420. include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
  421. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
  422. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
  423. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
  424. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
  425. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
  426. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
  427. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
  428. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
  429. include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
  430. include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
  431. include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
  432. include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
  433. include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
  434. include/eigen3/unsupported/Eigen/EulerAngles +43 -0
  435. include/eigen3/unsupported/Eigen/FFT +419 -0
  436. include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
  437. include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
  438. include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
  439. include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
  440. include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
  441. include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
  442. include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
  443. include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
  444. include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
  445. include/eigen3/unsupported/Eigen/Polynomials +137 -0
  446. include/eigen3/unsupported/Eigen/Skyline +39 -0
  447. include/eigen3/unsupported/Eigen/SparseExtra +54 -0
  448. include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
  449. include/eigen3/unsupported/Eigen/Splines +35 -0
  450. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
  451. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
  452. include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
  453. include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
  454. include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
  455. include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
  456. include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
  457. include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
  458. include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
  459. include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
  460. include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
  461. include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
  462. include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
  463. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
  464. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
  465. include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
  466. include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
  467. include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
  468. include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
  469. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
  470. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
  471. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
  472. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
  473. include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
  474. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
  475. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
  476. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
  477. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
  478. include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
  479. include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
  480. include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
  481. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
  482. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
  483. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
  484. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
  485. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
  486. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
  487. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
  488. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
  489. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
  490. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
  491. include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
  492. include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
  493. include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
  494. include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
  495. include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
  496. include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
  497. include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
  498. include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
  499. include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
  500. include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
  501. include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
  502. include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
  503. include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
  504. include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
  505. include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
  506. include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
  507. include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
  508. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
  509. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
  510. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
  511. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
  512. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
  513. include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
  514. include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
  515. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
  516. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
  517. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
  518. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
  519. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
  520. include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
  521. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
  522. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
  523. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
  524. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
  525. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
  526. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
  527. include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
  528. include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
  529. include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
  530. include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
  531. qilisdk/__init__.py +26 -0
  532. qilisdk/__init__.pyi +16 -0
  533. qilisdk/_logging.py +135 -0
  534. qilisdk/_optionals.py +137 -0
  535. qilisdk/analog/__init__.py +18 -0
  536. qilisdk/analog/exceptions.py +17 -0
  537. qilisdk/analog/hamiltonian.py +1068 -0
  538. qilisdk/analog/schedule.py +483 -0
  539. qilisdk/backends/__init__.py +46 -0
  540. qilisdk/backends/__init__.pyi +18 -0
  541. qilisdk/backends/backend.py +132 -0
  542. qilisdk/backends/cuda_backend.py +752 -0
  543. qilisdk/backends/qilisim.py +148 -0
  544. qilisdk/backends/qutip_backend.py +504 -0
  545. qilisdk/core/__init__.py +70 -0
  546. qilisdk/core/exceptions.py +29 -0
  547. qilisdk/core/interpolator.py +640 -0
  548. qilisdk/core/model.py +1012 -0
  549. qilisdk/core/parameterizable.py +133 -0
  550. qilisdk/core/qtensor.py +684 -0
  551. qilisdk/core/result.py +18 -0
  552. qilisdk/core/types.py +49 -0
  553. qilisdk/core/variables.py +2035 -0
  554. qilisdk/cost_functions/__init__.py +18 -0
  555. qilisdk/cost_functions/cost_function.py +77 -0
  556. qilisdk/cost_functions/model_cost_function.py +152 -0
  557. qilisdk/cost_functions/observable_cost_function.py +112 -0
  558. qilisdk/digital/__init__.py +67 -0
  559. qilisdk/digital/ansatz.py +382 -0
  560. qilisdk/digital/circuit.py +371 -0
  561. qilisdk/digital/circuit_transpiler.py +46 -0
  562. qilisdk/digital/circuit_transpiler_passes/__init__.py +18 -0
  563. qilisdk/digital/circuit_transpiler_passes/circuit_transpiler_pass.py +36 -0
  564. qilisdk/digital/circuit_transpiler_passes/decompose_multi_controlled_gates_pass.py +220 -0
  565. qilisdk/digital/circuit_transpiler_passes/numeric_helpers.py +82 -0
  566. qilisdk/digital/exceptions.py +37 -0
  567. qilisdk/digital/gates.py +1308 -0
  568. qilisdk/experiments/__init__.py +36 -0
  569. qilisdk/experiments/experiment_functional.py +212 -0
  570. qilisdk/experiments/experiment_result.py +247 -0
  571. qilisdk/functionals/__init__.py +29 -0
  572. qilisdk/functionals/functional.py +39 -0
  573. qilisdk/functionals/functional_result.py +18 -0
  574. qilisdk/functionals/sampling.py +89 -0
  575. qilisdk/functionals/sampling_result.py +92 -0
  576. qilisdk/functionals/time_evolution.py +111 -0
  577. qilisdk/functionals/time_evolution_result.py +91 -0
  578. qilisdk/functionals/variational_program.py +138 -0
  579. qilisdk/functionals/variational_program_result.py +69 -0
  580. qilisdk/logging_config.yaml +16 -0
  581. qilisdk/noise/__init__.py +56 -0
  582. qilisdk/noise/amplitude_damping.py +71 -0
  583. qilisdk/noise/bit_flip.py +45 -0
  584. qilisdk/noise/dephasing.py +69 -0
  585. qilisdk/noise/depolarizing.py +44 -0
  586. qilisdk/noise/gaussian_perturbation.py +69 -0
  587. qilisdk/noise/noise.py +20 -0
  588. qilisdk/noise/noise_abc.py +31 -0
  589. qilisdk/noise/noise_config.py +77 -0
  590. qilisdk/noise/noise_model.py +259 -0
  591. qilisdk/noise/offset_perturbation.py +39 -0
  592. qilisdk/noise/parameter_perturbation.py +45 -0
  593. qilisdk/noise/pauli_channel.py +115 -0
  594. qilisdk/noise/phase_flip.py +45 -0
  595. qilisdk/noise/protocols.py +107 -0
  596. qilisdk/noise/readout_assignment.py +60 -0
  597. qilisdk/noise/representations.py +149 -0
  598. qilisdk/noise/utils.py +90 -0
  599. qilisdk/optimizers/__init__.py +17 -0
  600. qilisdk/optimizers/optimizer.py +39 -0
  601. qilisdk/optimizers/optimizer_result.py +101 -0
  602. qilisdk/optimizers/scipy_optimizer.py +118 -0
  603. qilisdk/py.typed +0 -0
  604. qilisdk/settings.py +103 -0
  605. qilisdk/speqtrum/__init__.py +41 -0
  606. qilisdk/speqtrum/__init__.pyi +18 -0
  607. qilisdk/speqtrum/keyring.py +58 -0
  608. qilisdk/speqtrum/speqtrum.py +817 -0
  609. qilisdk/speqtrum/speqtrum_models.py +560 -0
  610. qilisdk/utils/__init__.py +13 -0
  611. qilisdk/utils/openfermion/__init__.py +38 -0
  612. qilisdk/utils/openfermion/__init__.pyi +17 -0
  613. qilisdk/utils/openfermion/openfermion.py +45 -0
  614. qilisdk/utils/openqasm2.py +215 -0
  615. qilisdk/utils/serialization.py +128 -0
  616. qilisdk/utils/trotterization/__init__.py +18 -0
  617. qilisdk/utils/trotterization/trotterization.py +127 -0
  618. qilisdk/utils/visualization/PlusJakartaSans-SemiBold.ttf +0 -0
  619. qilisdk/utils/visualization/__init__.py +24 -0
  620. qilisdk/utils/visualization/circuit_renderers.py +781 -0
  621. qilisdk/utils/visualization/schedule_renderers.py +175 -0
  622. qilisdk/utils/visualization/style.py +154 -0
  623. qilisdk/utils/visualization/themes.py +76 -0
  624. qilisdk/yaml.py +260 -0
  625. qilisdk-0.1.8.dist-info/METADATA +657 -0
  626. qilisdk-0.1.8.dist-info/RECORD +633 -0
  627. qilisdk-0.1.8.dist-info/WHEEL +5 -0
  628. qilisdk-0.1.8.dist-info/licenses/LICENCE +201 -0
  629. qilisim_module.cp313-win_amd64.pyd +0 -0
  630. share/eigen3/cmake/Eigen3Config.cmake +37 -0
  631. share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
  632. share/eigen3/cmake/Eigen3Targets.cmake +106 -0
  633. share/eigen3/cmake/UseEigen3.cmake +6 -0
@@ -0,0 +1,817 @@
1
+ # Copyright 2025 Qilimanjaro Quantum Tech
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ from __future__ import annotations
15
+
16
+ import base64
17
+ import binascii
18
+ import json
19
+ import time
20
+ from base64 import urlsafe_b64encode
21
+ from datetime import datetime, timezone
22
+ from typing import TYPE_CHECKING, Any, Callable, Generator, TypeAlias, TypeVar, cast, overload
23
+
24
+ import httpx
25
+ from loguru import logger
26
+ from pydantic import TypeAdapter, ValidationError
27
+
28
+ from qilisdk.experiments import (
29
+ RabiExperiment,
30
+ RabiExperimentResult,
31
+ T1Experiment,
32
+ T1ExperimentResult,
33
+ T2Experiment,
34
+ T2ExperimentResult,
35
+ TwoTonesExperiment,
36
+ TwoTonesExperimentResult,
37
+ )
38
+ from qilisdk.functionals import (
39
+ Sampling,
40
+ SamplingResult,
41
+ TimeEvolution,
42
+ TimeEvolutionResult,
43
+ VariationalProgram,
44
+ VariationalProgramResult,
45
+ )
46
+ from qilisdk.functionals.functional_result import FunctionalResult
47
+ from qilisdk.settings import get_settings
48
+
49
+ from .keyring import delete_credentials, load_credentials, store_credentials
50
+ from .speqtrum_models import (
51
+ Device,
52
+ ExecutePayload,
53
+ ExecuteType,
54
+ JobDetail,
55
+ JobHandle,
56
+ JobId,
57
+ JobInfo,
58
+ JobStatus,
59
+ JobType,
60
+ RabiExperimentPayload,
61
+ SamplingPayload,
62
+ T1ExperimentPayload,
63
+ T2ExperimentPayload,
64
+ TimeEvolutionPayload,
65
+ Token,
66
+ TwoTonesExperimentPayload,
67
+ TypedJobDetail,
68
+ VariationalProgramPayload,
69
+ )
70
+
71
+ if TYPE_CHECKING:
72
+ from qilisdk.functionals.functional import Functional, PrimitiveFunctional
73
+
74
+
75
+ TFunctionalResult = TypeVar("TFunctionalResult", bound=FunctionalResult)
76
+ JSONValue: TypeAlias = dict[str, "JSONValue"] | list["JSONValue"] | str | int | float | bool | None
77
+
78
+ _SKIP_ENSURE_OK_EXTENSION = "qilisdk.skip_ensure_ok"
79
+ _CONTEXT_EXTENSION = "qilisdk.request_context"
80
+
81
+
82
+ class SpeQtrumAPIError(httpx.HTTPStatusError):
83
+ """Raised when the SpeQtrum API responds with a non-success HTTP status."""
84
+
85
+ def __init__(self, message: str, *, request: httpx.Request, response: httpx.Response) -> None:
86
+ super().__init__(message, request=request, response=response)
87
+
88
+
89
+ def _safe_json_loads(value: str, *, context: str) -> JSONValue | None:
90
+ try:
91
+ result = json.loads(value)
92
+ return cast("JSONValue", result)
93
+ except json.JSONDecodeError as exc:
94
+ logger.warning("Failed to decode JSON for {}: {}", context, exc)
95
+ return None
96
+
97
+
98
+ def _safe_b64_decode(value: str, *, context: str) -> str | None:
99
+ try:
100
+ decoded_bytes = base64.b64decode(value)
101
+ except (binascii.Error, ValueError) as exc:
102
+ logger.warning("Failed to base64 decode {}: {}", context, exc)
103
+ return None
104
+ try:
105
+ return decoded_bytes.decode("utf-8")
106
+ except UnicodeDecodeError as exc:
107
+ logger.warning("Failed to UTF-8 decode {}: {}", context, exc)
108
+ return None
109
+
110
+
111
+ def _safe_b64_json(value: str, *, context: str) -> JSONValue | None:
112
+ decoded_text = _safe_b64_decode(value, context=context)
113
+ if decoded_text is None:
114
+ return None
115
+ return _safe_json_loads(decoded_text, context=context)
116
+
117
+
118
+ def _request_extensions(*, context: str | None = None, skip_ensure_ok: bool = False) -> dict[str, Any] | None:
119
+ extensions: dict[str, Any] = {}
120
+ if context:
121
+ extensions[_CONTEXT_EXTENSION] = context
122
+ if skip_ensure_ok:
123
+ extensions[_SKIP_ENSURE_OK_EXTENSION] = True
124
+ return extensions or None
125
+
126
+
127
+ def _response_context(response: httpx.Response) -> str:
128
+ request = response.request
129
+ if request is None:
130
+ return "SpeQtrum API call"
131
+ context = request.extensions.get(_CONTEXT_EXTENSION)
132
+ if isinstance(context, str) and context.strip():
133
+ return context
134
+ return f"{request.method} {request.url}"
135
+
136
+
137
+ def _stringify_payload(payload: JSONValue | None) -> str | None:
138
+ if payload is None:
139
+ return None
140
+ if isinstance(payload, dict):
141
+ for key in ("message", "detail", "error", "error_description", "title"):
142
+ value = payload.get(key)
143
+ if isinstance(value, str) and value.strip():
144
+ code = payload.get("code") or payload.get("error_code") or payload.get("errorCode")
145
+ code_suffix = f" (code={code})" if isinstance(code, (str, int)) else ""
146
+ return value.strip() + code_suffix
147
+ try:
148
+ return json.dumps(payload, sort_keys=True)
149
+ except (TypeError, ValueError):
150
+ return str(payload)
151
+ if isinstance(payload, list):
152
+ preview = ", ".join(str(item) for item in payload[:3])
153
+ return preview or str(payload)
154
+ if isinstance(payload, (str, int, float, bool)):
155
+ return str(payload)
156
+ return None
157
+
158
+
159
+ def _summarize_error_payload(response: httpx.Response) -> str:
160
+ context = _response_context(response)
161
+ try:
162
+ body_text = response.text or ""
163
+ except httpx.ResponseNotRead:
164
+ try:
165
+ response.read() # ensure body is buffered so we can reuse it later
166
+ body_text = response.text or ""
167
+ except Exception as exc: # noqa: BLE001
168
+ logger.debug("Failed to read response body for {}: {}", context, exc)
169
+ body_text = ""
170
+ payload = _safe_json_loads(body_text, context=f"{context} error body") if body_text else None
171
+ detail = _stringify_payload(payload)
172
+ if detail:
173
+ return detail
174
+ if body_text.strip():
175
+ return body_text.strip()
176
+ return "no response body"
177
+
178
+
179
+ def _ensure_ok(response: httpx.Response) -> None:
180
+ request = response.request
181
+ if request is not None and request.extensions.get(_SKIP_ENSURE_OK_EXTENSION):
182
+ return
183
+ if response.status_code == httpx.codes.UNAUTHORIZED:
184
+ return
185
+ try:
186
+ response.raise_for_status()
187
+ except httpx.HTTPStatusError:
188
+ context = _response_context(response)
189
+ detail = _summarize_error_payload(response)
190
+ logger.error(
191
+ "{} failed with status {} {}: {}",
192
+ context,
193
+ response.status_code,
194
+ response.reason_phrase,
195
+ detail,
196
+ )
197
+ message = f"{context} failed with status {response.status_code}: {detail}"
198
+ raise SpeQtrumAPIError(message, request=response.request, response=response) from None
199
+
200
+
201
+ class _BearerAuth(httpx.Auth):
202
+ """Bearer token auth handler with automatic refresh support."""
203
+
204
+ requires_response_body = True
205
+
206
+ def __init__(self, client: SpeQtrum) -> None:
207
+ self._client = client
208
+
209
+ def auth_flow(self, request: httpx.Request) -> Generator[httpx.Request, httpx.Response, None]:
210
+ request.headers["Authorization"] = f"Bearer {self._client.token.access_token}"
211
+ response = yield request
212
+
213
+ if response.status_code == httpx.codes.UNAUTHORIZED:
214
+ settings = get_settings()
215
+ refresh_request = httpx.Request(
216
+ "POST",
217
+ settings.speqtrum_api_url + "/authorisation-tokens/refresh",
218
+ headers={"Authorization": f"Bearer {self._client.token.refresh_token}"},
219
+ extensions=_request_extensions(context="Refreshing SpeQtrum token", skip_ensure_ok=True),
220
+ )
221
+ refresh_response = yield refresh_request
222
+
223
+ try:
224
+ refresh_response.raise_for_status()
225
+ except httpx.HTTPStatusError as exc:
226
+ logger.error(
227
+ "Token refresh failed with status {} {}",
228
+ exc.response.status_code,
229
+ exc.response.reason_phrase,
230
+ )
231
+ raise
232
+
233
+ try:
234
+ payload = refresh_response.json()
235
+ except json.JSONDecodeError as exc:
236
+ logger.error("Token refresh returned invalid JSON: {}", exc)
237
+ raise RuntimeError("SpeQtrum token refresh failed: invalid JSON payload") from exc
238
+
239
+ if not isinstance(payload, dict):
240
+ logger.error("Token refresh returned non-object payload: {}", type(payload).__name__)
241
+ raise RuntimeError("SpeQtrum token refresh failed: malformed token payload")
242
+
243
+ payload.pop("refreshToken", None)
244
+
245
+ try:
246
+ token = Token(**payload, refreshToken=self._client.token.refresh_token)
247
+ except (TypeError, ValidationError) as exc:
248
+ logger.error("Token refresh returned malformed payload: {}", exc)
249
+ raise RuntimeError("SpeQtrum token refresh failed: malformed token payload") from exc
250
+
251
+ self._client.token = token
252
+ store_credentials(self._client.username, self._client.token)
253
+ request.headers["Authorization"] = f"Bearer {self._client.token.access_token}"
254
+ yield request
255
+
256
+
257
+ class SpeQtrum:
258
+ """Synchronous client for the Qilimanjaro SpeQtrum API."""
259
+
260
+ def __init__(self) -> None:
261
+ logger.debug("Initializing SpeQtrum client")
262
+ credentials = load_credentials()
263
+ if credentials is None:
264
+ logger.error("No credentials found. Call `SpeQtrum.login()` before instantiation.")
265
+ raise RuntimeError("Missing credentials - invoke SpeQtrum.login() first.")
266
+ self.username, self.token = credentials
267
+ logger.success("SpeQtrum client initialised for user '{}'", self.username)
268
+
269
+ @classmethod
270
+ def _get_headers(cls) -> dict:
271
+ from qilisdk import __version__ # noqa: PLC0415
272
+
273
+ return {"User-Agent": f"qilisdk/{__version__}"}
274
+
275
+ def _create_client(self) -> httpx.Client:
276
+ """Return a freshly configured HTTP client for SpeQtrum interactions."""
277
+ settings = get_settings()
278
+ return httpx.Client(
279
+ base_url=settings.speqtrum_api_url,
280
+ headers=self._get_headers(),
281
+ auth=_BearerAuth(self),
282
+ event_hooks={"response": [_ensure_ok]},
283
+ )
284
+
285
+ @classmethod
286
+ def login(
287
+ cls,
288
+ username: str | None = None,
289
+ apikey: str | None = None,
290
+ ) -> bool:
291
+ """Authenticate and cache credentials in the system keyring.
292
+
293
+ Args:
294
+ username: SpeQtrum account user name. If ``None``, the value is read
295
+ from the environment.
296
+ apikey: SpeQtrum API key. If ``None``, the value is read from the
297
+ environment.
298
+
299
+ Returns:
300
+ ``True`` if authentication succeeds, otherwise ``False``.
301
+
302
+ Note:
303
+ The resulting tokens are stored securely in the OS keyring so that future
304
+ :class:`SpeQtrum` constructions require no explicit credentials.
305
+ """
306
+ # Use provided parameters or fall back to environment variables via Settings()
307
+ settings = get_settings()
308
+ username = username or settings.speqtrum_username
309
+ apikey = apikey or settings.speqtrum_apikey
310
+
311
+ if not username or not apikey:
312
+ logger.error("Login called without credentials.")
313
+ return False
314
+
315
+ # Send login request to QaaS
316
+ logger.debug("Attempting login for user '{}'", username)
317
+ try:
318
+ assertion = {
319
+ "username": username,
320
+ "api_key": apikey,
321
+ "audience": settings.speqtrum_audience,
322
+ "iat": int(datetime.now(timezone.utc).timestamp()),
323
+ }
324
+ encoded_assertion = urlsafe_b64encode(json.dumps(assertion, indent=2).encode("utf-8")).decode("utf-8")
325
+ with httpx.Client(
326
+ base_url=settings.speqtrum_api_url,
327
+ headers=cls._get_headers(),
328
+ timeout=10.0,
329
+ event_hooks={"response": [_ensure_ok]},
330
+ ) as client:
331
+ response = client.post(
332
+ "/authorisation-tokens",
333
+ json={
334
+ "grantType": "urn:ietf:params:oauth:grant-type:jwt-bearer",
335
+ "assertion": encoded_assertion,
336
+ "scope": "user profile",
337
+ },
338
+ extensions=_request_extensions(context="Authenticating user"),
339
+ )
340
+ response.raise_for_status()
341
+ token = Token(**response.json())
342
+ except httpx.HTTPError:
343
+ return False
344
+
345
+ store_credentials(username=username, token=token)
346
+ logger.success("Login successful for user '{}'", username)
347
+ return True
348
+
349
+ @classmethod
350
+ def logout(cls) -> None:
351
+ """Delete cached credentials from the keyring."""
352
+ delete_credentials()
353
+ logger.info("Cached credentials removed - user logged out")
354
+
355
+ def list_devices(self, where: Callable[[Device], bool] | None = None) -> list[Device]:
356
+ """Return all visible devices, optionally filtered.
357
+
358
+ Args:
359
+ where: A predicate that retains a device when it evaluates to
360
+ ``True``. Pass ``None`` to disable filtering.
361
+
362
+ Returns:
363
+ A list of :class:`~qilisdk.models.Device` objects.
364
+ """
365
+ logger.debug("Fetching device list from server…")
366
+ with self._create_client() as client:
367
+ response = client.get("/devices", extensions=_request_extensions(context="Fetching device list"))
368
+ devices = TypeAdapter(list[Device]).validate_python(response.json()["items"])
369
+ logger.success("{} devices retrieved", len(devices))
370
+ return [d for d in devices if where(d)] if where else devices
371
+
372
+ def list_jobs(self, where: Callable[[JobInfo], bool] | None = None) -> list[JobInfo]:
373
+ """Return lightweight job summaries.
374
+
375
+ Args:
376
+ where: Optional predicate applied client-side. A
377
+ :class:`~qilisdk.models.JobInfo` remains in the list if the
378
+ predicate returns ``True``. ``None`` disables filtering.
379
+
380
+ Returns:
381
+ A list of :class:`~qilisdk.models.JobInfo` objects.
382
+ """
383
+ logger.debug("Fetching job list…")
384
+ with self._create_client() as client:
385
+ response = client.get("/jobs", extensions=_request_extensions(context="Fetching job list"))
386
+ jobs = TypeAdapter(list[JobInfo]).validate_python(response.json()["items"])
387
+ logger.success("{} jobs retrieved", len(jobs))
388
+ return [j for j in jobs if where(j)] if where else jobs
389
+
390
+ @overload
391
+ def get_job(self, job: JobHandle[TFunctionalResult]) -> TypedJobDetail[TFunctionalResult]: ...
392
+
393
+ @overload
394
+ def get_job(self, job: int) -> JobDetail: ...
395
+
396
+ def get_job(self, job: int | JobHandle[Any]) -> JobDetail | TypedJobDetail[Any]:
397
+ """Fetch the complete record of *job*.
398
+
399
+ Args:
400
+ job: Either the integer identifier or a previously returned `JobHandle`.
401
+
402
+ Returns:
403
+ A :class:`~qilisdk.models.JobDetail` snapshot. When a handle is supplied the
404
+ result is wrapped in :class:`~qilisdk.models.TypedJobDetail` to expose typed accessors.
405
+ """
406
+ job_id = job.id if isinstance(job, JobHandle) else job
407
+ logger.debug("Retrieving job {} details", job_id)
408
+ with self._create_client() as client:
409
+ response = client.get(
410
+ f"/jobs/{job_id}",
411
+ params={
412
+ "payload": True,
413
+ "result": True,
414
+ "logs": True,
415
+ "error_logs": True,
416
+ "error": True,
417
+ },
418
+ extensions=_request_extensions(context=f"Fetching job {job_id}"),
419
+ )
420
+ data = response.json()
421
+ raw_payload = data.get("payload")
422
+ if isinstance(raw_payload, str):
423
+ data["payload"] = _safe_json_loads(raw_payload, context=f"job {job_id} payload")
424
+
425
+ raw_result = data.get("result")
426
+ if isinstance(raw_result, str):
427
+ data["result"] = _safe_b64_json(raw_result, context=f"job {job_id} result")
428
+
429
+ raw_error = data.get("error")
430
+ if isinstance(raw_error, str):
431
+ data["error"] = _safe_b64_decode(raw_error, context=f"job {job_id} error")
432
+
433
+ raw_logs = data.get("logs")
434
+ if isinstance(raw_logs, str):
435
+ data["logs"] = _safe_b64_decode(raw_logs, context=f"job {job_id} logs")
436
+
437
+ raw_error_logs = data.get("error_logs")
438
+ if isinstance(raw_error_logs, str):
439
+ data["error_logs"] = _safe_b64_decode(raw_error_logs, context=f"job {job_id} error logs")
440
+
441
+ job_detail = TypeAdapter(JobDetail).validate_python(data)
442
+ logger.debug("Job {} details retrieved (status {})", job_id, job_detail.status.value)
443
+ if isinstance(job, JobHandle):
444
+ return job.bind(job_detail)
445
+ return job_detail
446
+
447
+ @overload
448
+ def wait_for_job(
449
+ self,
450
+ job: JobHandle[TFunctionalResult],
451
+ *,
452
+ poll_interval: float = 5.0,
453
+ timeout: float | None = None,
454
+ ) -> TypedJobDetail[TFunctionalResult]: ...
455
+
456
+ @overload
457
+ def wait_for_job(
458
+ self,
459
+ job: int,
460
+ *,
461
+ poll_interval: float = 5.0,
462
+ timeout: float | None = None,
463
+ ) -> JobDetail: ...
464
+
465
+ def wait_for_job(
466
+ self,
467
+ job: int | JobHandle[Any],
468
+ *,
469
+ poll_interval: float = 5.0,
470
+ timeout: float | None = None,
471
+ ) -> JobDetail | TypedJobDetail[Any]:
472
+ """Block until the job referenced by *job* reaches a terminal state.
473
+
474
+ Args:
475
+ job: Either the integer job identifier or a previously returned `JobHandle`.
476
+ poll_interval: Seconds between successive polls. Defaults to ``5``.
477
+ timeout: Maximum wait time in seconds. ``None`` waits indefinitely.
478
+
479
+ Returns:
480
+ Final :class:`~qilisdk.models.JobDetail` snapshot, optionally wrapped with type-safe accessors.
481
+
482
+ Raises:
483
+ TimeoutError: If *timeout* elapses before the job finishes.
484
+ """
485
+ job_id = job.id if isinstance(job, JobHandle) else job
486
+ logger.info("Waiting for job {} (poll={}s, timeout={}s)…", job_id, poll_interval, timeout)
487
+ start_t = time.monotonic()
488
+ terminal_states = {
489
+ JobStatus.COMPLETED,
490
+ JobStatus.ERROR,
491
+ JobStatus.CANCELLED,
492
+ }
493
+
494
+ # poll until we hit a terminal state or timeout
495
+ while True:
496
+ current = self.get_job(job_id)
497
+
498
+ if current.status in terminal_states:
499
+ logger.success("Job {} reached terminal state {}", job_id, current.status.value)
500
+ if isinstance(job, JobHandle):
501
+ return job.bind(current)
502
+ return current
503
+
504
+ if timeout is not None and (time.monotonic() - start_t) >= timeout:
505
+ logger.error(
506
+ "Timeout while waiting for job {} after {}s (last status {})",
507
+ job_id,
508
+ timeout,
509
+ current.status.value,
510
+ )
511
+ raise TimeoutError(
512
+ f"Timed out after {timeout}s while waiting for job {job_id} (last status {current.status.value!r})"
513
+ )
514
+
515
+ logger.debug("Job {} still {}, sleeping {}s", job_id, current.status.value, poll_interval)
516
+ time.sleep(poll_interval)
517
+
518
+ @overload
519
+ def submit(self, functional: Sampling, device: str, job_name: str | None = None) -> JobHandle[SamplingResult]: ...
520
+
521
+ @overload
522
+ def submit(
523
+ self, functional: TimeEvolution, device: str, job_name: str | None = None
524
+ ) -> JobHandle[TimeEvolutionResult]: ...
525
+
526
+ @overload
527
+ def submit(
528
+ self, functional: VariationalProgram[Sampling], device: str, job_name: str | None = None
529
+ ) -> JobHandle[VariationalProgramResult[SamplingResult]]: ...
530
+
531
+ @overload
532
+ def submit(
533
+ self, functional: VariationalProgram[TimeEvolution], device: str, job_name: str | None = None
534
+ ) -> JobHandle[VariationalProgramResult[TimeEvolutionResult]]: ...
535
+
536
+ @overload
537
+ def submit(
538
+ self,
539
+ functional: VariationalProgram[PrimitiveFunctional[TFunctionalResult]],
540
+ device: str,
541
+ job_name: str | None = None,
542
+ ) -> JobHandle[VariationalProgramResult[TFunctionalResult]]: ...
543
+
544
+ @overload
545
+ def submit(
546
+ self, functional: RabiExperiment, device: str, job_name: str | None = None
547
+ ) -> JobHandle[RabiExperimentResult]: ...
548
+
549
+ @overload
550
+ def submit(
551
+ self, functional: T1Experiment, device: str, job_name: str | None = None
552
+ ) -> JobHandle[T1ExperimentResult]: ...
553
+
554
+ def submit(self, functional: Functional, device: str, job_name: str | None = None) -> JobHandle[FunctionalResult]:
555
+ """
556
+ Submit a quantum functional for execution on the selected device.
557
+
558
+ The concrete subclass of
559
+ :class:`~qilisdk.functionals.functional.Functional` provided in
560
+ *functional* determines which private ``_execute_*`` routine is
561
+ invoked. Supported types are:
562
+
563
+ * :class:`~qilisdk.functionals.sampling.Sampling`
564
+ * :class:`~qilisdk.functionals.time_evolution.TimeEvolution`
565
+ * :class:`~qilisdk.functionals.variational_program.VariationalProgram`
566
+ * :class:`~qilisdk.speqtrum.experiments.experiment_functional.RabiExperiment`
567
+ * :class:`~qilisdk.speqtrum.experiments.experiment_functional.T1Experiment`
568
+
569
+ A backend device must be selected beforehand with
570
+ :py:meth:`set_device`.
571
+
572
+ Args:
573
+ functional: A fully configured functional instance (e.g.,
574
+ ``Sampling`` or ``TimeEvolution``) that defines the quantum
575
+ workload to be executed.
576
+ device: Device code returned by :py:meth:`list_devices`.
577
+ job_name (optional): The name of the job, this can help you identify different jobs easier. Default: None.
578
+
579
+ Returns:
580
+ JobHandle: A typed handle carrying the numeric job identifier and result type metadata.
581
+
582
+ Raises:
583
+ NotImplementedError: If *functional* is not of a supported type.
584
+ """
585
+ if isinstance(functional, VariationalProgram):
586
+ inner = functional.functional
587
+ if isinstance(inner, Sampling):
588
+ return self._submit_variational_program(
589
+ cast("VariationalProgram[Sampling]", functional), device, job_name
590
+ )
591
+ if isinstance(inner, TimeEvolution):
592
+ return self._submit_variational_program(
593
+ cast("VariationalProgram[TimeEvolution]", functional), device, job_name
594
+ )
595
+
596
+ # Fallback to untyped handle for custom primitives.
597
+ job_handle = self._submit_variational_program(cast("VariationalProgram[Any]", functional), device, job_name)
598
+ return cast("JobHandle[FunctionalResult]", job_handle)
599
+
600
+ if isinstance(functional, Sampling):
601
+ return self._submit_sampling(functional, device, job_name)
602
+
603
+ if isinstance(functional, TimeEvolution):
604
+ return self._submit_time_evolution(functional, device, job_name)
605
+
606
+ if isinstance(functional, RabiExperiment):
607
+ return self._submit_rabi(functional, device, job_name)
608
+
609
+ if isinstance(functional, T1Experiment):
610
+ return self._submit_t1(functional, device, job_name)
611
+
612
+ if isinstance(functional, T2Experiment):
613
+ return self._submit_t2(functional, device, job_name)
614
+
615
+ if isinstance(functional, TwoTonesExperiment):
616
+ return self._submit_two_tones(functional, device, job_name)
617
+
618
+ logger.error("Unsupported functional type: {}", type(functional).__qualname__)
619
+ raise NotImplementedError(f"{type(self).__qualname__} does not support {type(functional).__qualname__}")
620
+
621
+ def _submit_sampling(
622
+ self, sampling: Sampling, device: str, job_name: str | None = None
623
+ ) -> JobHandle[SamplingResult]:
624
+ payload = ExecutePayload(
625
+ type=ExecuteType.SAMPLING,
626
+ sampling_payload=SamplingPayload(sampling=sampling),
627
+ )
628
+ json = {
629
+ "device_code": device,
630
+ "payload": payload.model_dump_json(),
631
+ "job_type": JobType.DIGITAL,
632
+ "meta": {},
633
+ }
634
+ if job_name:
635
+ json["name"] = job_name
636
+ logger.debug("Executing Sampling on device {}", device)
637
+ with self._create_client() as client:
638
+ response = client.post("/execute", json=json, extensions=_request_extensions(context="Executing Sampling"))
639
+ job = JobId(**response.json())
640
+ logger.info("Sampling job submitted: {}", job.id)
641
+ return JobHandle.sampling(job.id)
642
+
643
+ def _submit_rabi(
644
+ self, rabi_experiment: RabiExperiment, device: str, job_name: str | None = None
645
+ ) -> JobHandle[RabiExperimentResult]:
646
+ payload = ExecutePayload(
647
+ type=ExecuteType.RABI_EXPERIMENT,
648
+ rabi_experiment_payload=RabiExperimentPayload(rabi_experiment=rabi_experiment),
649
+ )
650
+ json = {
651
+ "device_code": device,
652
+ "payload": payload.model_dump_json(),
653
+ "job_type": JobType.PULSE,
654
+ "meta": {},
655
+ }
656
+ if job_name:
657
+ json["name"] = job_name
658
+ logger.debug("Executing Rabi experiment on device {}", device)
659
+ with self._create_client() as client:
660
+ response = client.post(
661
+ "/execute",
662
+ json=json,
663
+ extensions=_request_extensions(context="Executing Rabi experiment"),
664
+ )
665
+ job = JobId(**response.json())
666
+ logger.info("Rabi experiment job submitted: {}", job.id)
667
+ return JobHandle.rabi_experiment(job.id)
668
+
669
+ def _submit_t1(
670
+ self, t1_experiment: T1Experiment, device: str, job_name: str | None = None
671
+ ) -> JobHandle[T1ExperimentResult]:
672
+ payload = ExecutePayload(
673
+ type=ExecuteType.T1_EXPERIMENT,
674
+ t1_experiment_payload=T1ExperimentPayload(t1_experiment=t1_experiment),
675
+ )
676
+ json = {
677
+ "device_code": device,
678
+ "payload": payload.model_dump_json(),
679
+ "job_type": JobType.PULSE,
680
+ "meta": {},
681
+ }
682
+ if job_name:
683
+ json["name"] = job_name
684
+ logger.debug("Executing T1 experiment on device {}", device)
685
+ with self._create_client() as client:
686
+ response = client.post(
687
+ "/execute",
688
+ json=json,
689
+ extensions=_request_extensions(context="Executing T1 experiment"),
690
+ )
691
+ job = JobId(**response.json())
692
+ logger.info("T1 experiment job submitted: {}", job.id)
693
+ return JobHandle.t1_experiment(job.id)
694
+
695
+ def _submit_t2(
696
+ self, t2_experiment: T2Experiment, device: str, job_name: str | None = None
697
+ ) -> JobHandle[T2ExperimentResult]:
698
+ payload = ExecutePayload(
699
+ type=ExecuteType.T2_EXPERIMENT,
700
+ t2_experiment_payload=T2ExperimentPayload(t2_experiment=t2_experiment),
701
+ )
702
+ json = {
703
+ "device_code": device,
704
+ "payload": payload.model_dump_json(),
705
+ "job_type": JobType.PULSE,
706
+ "meta": {},
707
+ }
708
+ if job_name:
709
+ json["name"] = job_name
710
+ logger.debug("Executing T2 experiment on device {}", device)
711
+ with self._create_client() as client:
712
+ response = client.post(
713
+ "/execute",
714
+ json=json,
715
+ extensions=_request_extensions(context="Executing T2 experiment"),
716
+ )
717
+ job = JobId(**response.json())
718
+ logger.info("T2 experiment job submitted: {}", job.id)
719
+ return JobHandle.t2_experiment(job.id)
720
+
721
+ def _submit_two_tones(
722
+ self, two_tones_experiment: TwoTonesExperiment, device: str, job_name: str | None = None
723
+ ) -> JobHandle[TwoTonesExperimentResult]:
724
+ payload = ExecutePayload(
725
+ type=ExecuteType.TWO_TONES_EXPERIMENT,
726
+ two_tones_experiment_payload=TwoTonesExperimentPayload(two_tones_experiment=two_tones_experiment),
727
+ )
728
+ json = {
729
+ "device_code": device,
730
+ "payload": payload.model_dump_json(),
731
+ "job_type": JobType.PULSE,
732
+ "meta": {},
733
+ }
734
+ if job_name:
735
+ json["name"] = job_name
736
+ logger.debug("Executing Two-Tones experiment on device {}", device)
737
+ with self._create_client() as client:
738
+ response = client.post(
739
+ "/execute",
740
+ json=json,
741
+ extensions=_request_extensions(context="Executing Two-Tones experiment"),
742
+ )
743
+ job = JobId(**response.json())
744
+ logger.info("Two-Tones experiment job submitted: {}", job.id)
745
+ return JobHandle.two_tones_experiment(job.id)
746
+
747
+ def _submit_time_evolution(
748
+ self, time_evolution: TimeEvolution, device: str, job_name: str | None = None
749
+ ) -> JobHandle[TimeEvolutionResult]:
750
+ payload = ExecutePayload(
751
+ type=ExecuteType.TIME_EVOLUTION,
752
+ time_evolution_payload=TimeEvolutionPayload(time_evolution=time_evolution),
753
+ )
754
+ json = {
755
+ "device_code": device,
756
+ "payload": payload.model_dump_json(),
757
+ "job_type": JobType.ANALOG,
758
+ "meta": {},
759
+ }
760
+ if job_name:
761
+ json["name"] = job_name
762
+ logger.debug("Executing time evolution on device {}", device)
763
+ with self._create_client() as client:
764
+ response = client.post(
765
+ "/execute",
766
+ json=json,
767
+ extensions=_request_extensions(context="Executing time evolution"),
768
+ )
769
+ job = JobId(**response.json())
770
+ logger.info("Time Evolution job submitted: {}", job.id)
771
+ return JobHandle.time_evolution(job.id)
772
+
773
+ @overload
774
+ def _submit_variational_program(
775
+ self, variational_program: VariationalProgram[Sampling], device: str, job_name: str | None = None
776
+ ) -> JobHandle[VariationalProgramResult[SamplingResult]]: ...
777
+
778
+ @overload
779
+ def _submit_variational_program(
780
+ self, variational_program: VariationalProgram[TimeEvolution], device: str, job_name: str | None = None
781
+ ) -> JobHandle[VariationalProgramResult[TimeEvolutionResult]]: ...
782
+
783
+ @overload
784
+ def _submit_variational_program(
785
+ self, variational_program: VariationalProgram[Any], device: str, job_name: str | None = None
786
+ ) -> JobHandle[VariationalProgramResult]: ...
787
+
788
+ def _submit_variational_program(
789
+ self, variational_program: VariationalProgram[Any], device: str, job_name: str | None = None
790
+ ) -> JobHandle[VariationalProgramResult]:
791
+ payload = ExecutePayload(
792
+ type=ExecuteType.VARIATIONAL_PROGRAM,
793
+ variational_program_payload=VariationalProgramPayload(variational_program=variational_program),
794
+ )
795
+ json = {
796
+ "device_code": device,
797
+ "payload": payload.model_dump_json(),
798
+ "job_type": JobType.VARIATIONAL,
799
+ "meta": {},
800
+ }
801
+ if job_name:
802
+ json["name"] = job_name
803
+ logger.debug("Executing variational program on device {}", device)
804
+ with self._create_client() as client:
805
+ response = client.post(
806
+ "/execute",
807
+ json=json,
808
+ extensions=_request_extensions(context="Executing variational program"),
809
+ )
810
+ job = JobId(**response.json())
811
+ logger.info("Variational program job submitted: {}", job.id)
812
+ inner = variational_program.functional
813
+ if isinstance(inner, Sampling):
814
+ return JobHandle.variational_program(job.id, result_type=SamplingResult)
815
+ if isinstance(inner, TimeEvolution):
816
+ return JobHandle.variational_program(job.id, result_type=TimeEvolutionResult)
817
+ return JobHandle.variational_program(job.id)