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.
- include/eigen3/Eigen/Cholesky +45 -0
- include/eigen3/Eigen/CholmodSupport +48 -0
- include/eigen3/Eigen/Core +384 -0
- include/eigen3/Eigen/Dense +7 -0
- include/eigen3/Eigen/Eigen +2 -0
- include/eigen3/Eigen/Eigenvalues +60 -0
- include/eigen3/Eigen/Geometry +59 -0
- include/eigen3/Eigen/Householder +29 -0
- include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- include/eigen3/Eigen/Jacobi +32 -0
- include/eigen3/Eigen/KLUSupport +41 -0
- include/eigen3/Eigen/LU +47 -0
- include/eigen3/Eigen/MetisSupport +35 -0
- include/eigen3/Eigen/OrderingMethods +70 -0
- include/eigen3/Eigen/PaStiXSupport +49 -0
- include/eigen3/Eigen/PardisoSupport +35 -0
- include/eigen3/Eigen/QR +50 -0
- include/eigen3/Eigen/QtAlignedMalloc +39 -0
- include/eigen3/Eigen/SPQRSupport +34 -0
- include/eigen3/Eigen/SVD +50 -0
- include/eigen3/Eigen/Sparse +34 -0
- include/eigen3/Eigen/SparseCholesky +37 -0
- include/eigen3/Eigen/SparseCore +69 -0
- include/eigen3/Eigen/SparseLU +50 -0
- include/eigen3/Eigen/SparseQR +36 -0
- include/eigen3/Eigen/StdDeque +27 -0
- include/eigen3/Eigen/StdList +26 -0
- include/eigen3/Eigen/StdVector +27 -0
- include/eigen3/Eigen/SuperLUSupport +64 -0
- include/eigen3/Eigen/UmfPackSupport +40 -0
- include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- include/eigen3/Eigen/src/Core/Array.h +417 -0
- include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- include/eigen3/Eigen/src/Core/Assign.h +90 -0
- include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- include/eigen3/Eigen/src/Core/Block.h +448 -0
- include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- include/eigen3/Eigen/src/Core/Dot.h +318 -0
- include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- include/eigen3/Eigen/src/Core/IO.h +258 -0
- include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- include/eigen3/Eigen/src/Core/Map.h +171 -0
- include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- include/eigen3/Eigen/src/Core/Product.h +191 -0
- include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- include/eigen3/Eigen/src/Core/Random.h +218 -0
- include/eigen3/Eigen/src/Core/Redux.h +515 -0
- include/eigen3/Eigen/src/Core/Ref.h +381 -0
- include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- include/eigen3/Eigen/src/Core/Select.h +164 -0
- include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- include/eigen3/Eigen/src/Core/Solve.h +188 -0
- include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- include/eigen3/Eigen/src/Core/Stride.h +116 -0
- include/eigen3/Eigen/src/Core/Swap.h +68 -0
- include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- include/eigen3/Eigen/src/misc/Image.h +82 -0
- include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- include/eigen3/Eigen/src/misc/blas.h +440 -0
- include/eigen3/Eigen/src/misc/lapack.h +152 -0
- include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- include/eigen3/signature_of_eigen3_matrix_library +1 -0
- include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- include/eigen3/unsupported/Eigen/BVH +95 -0
- include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- include/eigen3/unsupported/Eigen/FFT +419 -0
- include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- include/eigen3/unsupported/Eigen/Polynomials +137 -0
- include/eigen3/unsupported/Eigen/Skyline +39 -0
- include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- include/eigen3/unsupported/Eigen/Splines +35 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- qilisdk/__init__.py +26 -0
- qilisdk/__init__.pyi +16 -0
- qilisdk/_logging.py +135 -0
- qilisdk/_optionals.py +137 -0
- qilisdk/analog/__init__.py +18 -0
- qilisdk/analog/exceptions.py +17 -0
- qilisdk/analog/hamiltonian.py +1068 -0
- qilisdk/analog/schedule.py +483 -0
- qilisdk/backends/__init__.py +46 -0
- qilisdk/backends/__init__.pyi +18 -0
- qilisdk/backends/backend.py +132 -0
- qilisdk/backends/cuda_backend.py +752 -0
- qilisdk/backends/qilisim.py +148 -0
- qilisdk/backends/qutip_backend.py +504 -0
- qilisdk/core/__init__.py +70 -0
- qilisdk/core/exceptions.py +29 -0
- qilisdk/core/interpolator.py +640 -0
- qilisdk/core/model.py +1012 -0
- qilisdk/core/parameterizable.py +133 -0
- qilisdk/core/qtensor.py +684 -0
- qilisdk/core/result.py +18 -0
- qilisdk/core/types.py +49 -0
- qilisdk/core/variables.py +2035 -0
- qilisdk/cost_functions/__init__.py +18 -0
- qilisdk/cost_functions/cost_function.py +77 -0
- qilisdk/cost_functions/model_cost_function.py +152 -0
- qilisdk/cost_functions/observable_cost_function.py +112 -0
- qilisdk/digital/__init__.py +67 -0
- qilisdk/digital/ansatz.py +382 -0
- qilisdk/digital/circuit.py +371 -0
- qilisdk/digital/circuit_transpiler.py +46 -0
- qilisdk/digital/circuit_transpiler_passes/__init__.py +18 -0
- qilisdk/digital/circuit_transpiler_passes/circuit_transpiler_pass.py +36 -0
- qilisdk/digital/circuit_transpiler_passes/decompose_multi_controlled_gates_pass.py +220 -0
- qilisdk/digital/circuit_transpiler_passes/numeric_helpers.py +82 -0
- qilisdk/digital/exceptions.py +37 -0
- qilisdk/digital/gates.py +1308 -0
- qilisdk/experiments/__init__.py +36 -0
- qilisdk/experiments/experiment_functional.py +212 -0
- qilisdk/experiments/experiment_result.py +247 -0
- qilisdk/functionals/__init__.py +29 -0
- qilisdk/functionals/functional.py +39 -0
- qilisdk/functionals/functional_result.py +18 -0
- qilisdk/functionals/sampling.py +89 -0
- qilisdk/functionals/sampling_result.py +92 -0
- qilisdk/functionals/time_evolution.py +111 -0
- qilisdk/functionals/time_evolution_result.py +91 -0
- qilisdk/functionals/variational_program.py +138 -0
- qilisdk/functionals/variational_program_result.py +69 -0
- qilisdk/logging_config.yaml +16 -0
- qilisdk/noise/__init__.py +56 -0
- qilisdk/noise/amplitude_damping.py +71 -0
- qilisdk/noise/bit_flip.py +45 -0
- qilisdk/noise/dephasing.py +69 -0
- qilisdk/noise/depolarizing.py +44 -0
- qilisdk/noise/gaussian_perturbation.py +69 -0
- qilisdk/noise/noise.py +20 -0
- qilisdk/noise/noise_abc.py +31 -0
- qilisdk/noise/noise_config.py +77 -0
- qilisdk/noise/noise_model.py +259 -0
- qilisdk/noise/offset_perturbation.py +39 -0
- qilisdk/noise/parameter_perturbation.py +45 -0
- qilisdk/noise/pauli_channel.py +115 -0
- qilisdk/noise/phase_flip.py +45 -0
- qilisdk/noise/protocols.py +107 -0
- qilisdk/noise/readout_assignment.py +60 -0
- qilisdk/noise/representations.py +149 -0
- qilisdk/noise/utils.py +90 -0
- qilisdk/optimizers/__init__.py +17 -0
- qilisdk/optimizers/optimizer.py +39 -0
- qilisdk/optimizers/optimizer_result.py +101 -0
- qilisdk/optimizers/scipy_optimizer.py +118 -0
- qilisdk/py.typed +0 -0
- qilisdk/settings.py +103 -0
- qilisdk/speqtrum/__init__.py +41 -0
- qilisdk/speqtrum/__init__.pyi +18 -0
- qilisdk/speqtrum/keyring.py +58 -0
- qilisdk/speqtrum/speqtrum.py +817 -0
- qilisdk/speqtrum/speqtrum_models.py +560 -0
- qilisdk/utils/__init__.py +13 -0
- qilisdk/utils/openfermion/__init__.py +38 -0
- qilisdk/utils/openfermion/__init__.pyi +17 -0
- qilisdk/utils/openfermion/openfermion.py +45 -0
- qilisdk/utils/openqasm2.py +215 -0
- qilisdk/utils/serialization.py +128 -0
- qilisdk/utils/trotterization/__init__.py +18 -0
- qilisdk/utils/trotterization/trotterization.py +127 -0
- qilisdk/utils/visualization/PlusJakartaSans-SemiBold.ttf +0 -0
- qilisdk/utils/visualization/__init__.py +24 -0
- qilisdk/utils/visualization/circuit_renderers.py +781 -0
- qilisdk/utils/visualization/schedule_renderers.py +175 -0
- qilisdk/utils/visualization/style.py +154 -0
- qilisdk/utils/visualization/themes.py +76 -0
- qilisdk/yaml.py +260 -0
- qilisdk-0.1.8.dist-info/METADATA +657 -0
- qilisdk-0.1.8.dist-info/RECORD +633 -0
- qilisdk-0.1.8.dist-info/WHEEL +5 -0
- qilisdk-0.1.8.dist-info/licenses/LICENCE +201 -0
- qilisim_module.cp313-win_amd64.pyd +0 -0
- share/eigen3/cmake/Eigen3Config.cmake +37 -0
- share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
- share/eigen3/cmake/Eigen3Targets.cmake +106 -0
- share/eigen3/cmake/UseEigen3.cmake +6 -0
|
@@ -0,0 +1,483 @@
|
|
|
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
|
+
from copy import copy
|
|
17
|
+
from itertools import chain
|
|
18
|
+
from typing import Mapping, TypeAlias, overload
|
|
19
|
+
|
|
20
|
+
from numpy import linspace
|
|
21
|
+
|
|
22
|
+
from qilisdk.analog.hamiltonian import Hamiltonian
|
|
23
|
+
from qilisdk.core.interpolator import Interpolation, Interpolator, TimeDict
|
|
24
|
+
from qilisdk.core.parameterizable import Parameterizable
|
|
25
|
+
from qilisdk.core.variables import BaseVariable, ComparisonTerm, Domain, Parameter, Term
|
|
26
|
+
from qilisdk.settings import get_settings
|
|
27
|
+
from qilisdk.utils.visualization import ScheduleStyle
|
|
28
|
+
from qilisdk.yaml import yaml
|
|
29
|
+
|
|
30
|
+
_TIME_PARAMETER_NAME = "t"
|
|
31
|
+
PARAMETERIZED_NUMBER: TypeAlias = float | Parameter | Term
|
|
32
|
+
|
|
33
|
+
# type aliases just to keep this short
|
|
34
|
+
CoeffDict = dict[str, TimeDict]
|
|
35
|
+
InterpDict = dict[str, "Interpolator"]
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
@yaml.register_class
|
|
39
|
+
class Schedule(Parameterizable):
|
|
40
|
+
"""
|
|
41
|
+
Builds a set of time-dependent coefficients applied to a collection of Hamiltonians.
|
|
42
|
+
|
|
43
|
+
A Schedule defines the evolution of a system by associating time steps with a set
|
|
44
|
+
of Hamiltonian coefficients. Coefficients can be provided directly, defined as
|
|
45
|
+
functions of time, or specified over time intervals and interpolated (step or linear).
|
|
46
|
+
|
|
47
|
+
Example:
|
|
48
|
+
.. code-block:: python
|
|
49
|
+
|
|
50
|
+
import numpy as np
|
|
51
|
+
from qilisdk.analog import Schedule, X, Z
|
|
52
|
+
|
|
53
|
+
T, dt = 10.0, 1.0
|
|
54
|
+
|
|
55
|
+
h1 = X(0) + X(1) + X(2)
|
|
56
|
+
h2 = -Z(0) - Z(1) - 2 * Z(2) + 3 * Z(0) * Z(1)
|
|
57
|
+
|
|
58
|
+
schedule = Schedule(
|
|
59
|
+
dt=dt,
|
|
60
|
+
hamiltonians={"driver": h1, "problem": h2},
|
|
61
|
+
coefficients={
|
|
62
|
+
"driver": {(0, T): lambda t: 1 - t / T},
|
|
63
|
+
"problem": {(0, T): lambda t: t / T},
|
|
64
|
+
},
|
|
65
|
+
)
|
|
66
|
+
schedule.draw()
|
|
67
|
+
"""
|
|
68
|
+
|
|
69
|
+
def __init__(
|
|
70
|
+
self,
|
|
71
|
+
hamiltonians: dict[str, Hamiltonian] | None = None,
|
|
72
|
+
coefficients: InterpDict | CoeffDict | None = None,
|
|
73
|
+
dt: float = 0.1,
|
|
74
|
+
total_time: PARAMETERIZED_NUMBER | None = None,
|
|
75
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
76
|
+
) -> None:
|
|
77
|
+
"""Create a Schedule that assigns time-dependent coefficients to Hamiltonians.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
hamiltonians (dict[str, Hamiltonian] | None): Mapping of labels to Hamiltonian objects. If omitted, an empty schedule is created.
|
|
81
|
+
coefficients (InterpDict | CoeffDict | None): Per-Hamiltonian time definitions. Keys are time points or intervals; values are coefficients or callables. If an :class:`Interpolator` is supplied, it is used directly.
|
|
82
|
+
dt (float): Time resolution used for sampling callable/interval definitions and plotting. Must be positive.
|
|
83
|
+
total_time (float | Parameter | Term | None): Optional maximum time that rescales all defined time points proportionally.
|
|
84
|
+
interpolation (Interpolation): How to interpolate between provided time points (``LINEAR`` or ``STEP``).
|
|
85
|
+
|
|
86
|
+
Raises:
|
|
87
|
+
ValueError: if the coefficients reference an undefined hamiltonian.
|
|
88
|
+
"""
|
|
89
|
+
# THIS is the only runtime implementation
|
|
90
|
+
super(Schedule, self).__init__()
|
|
91
|
+
|
|
92
|
+
self._hamiltonians = hamiltonians if hamiltonians is not None else {}
|
|
93
|
+
self._coefficients: dict[str, Interpolator] = {}
|
|
94
|
+
self._interpolation = None
|
|
95
|
+
self._parameters: dict[str, Parameter] = {}
|
|
96
|
+
self._current_time: Parameter = Parameter(_TIME_PARAMETER_NAME, 0, Domain.REAL)
|
|
97
|
+
self.iter_time_step = 0
|
|
98
|
+
self._max_time: PARAMETERIZED_NUMBER | None = None
|
|
99
|
+
if dt <= 0:
|
|
100
|
+
raise ValueError("dt must be greater than zero.")
|
|
101
|
+
self._dt = dt
|
|
102
|
+
|
|
103
|
+
coefficients = coefficients or {}
|
|
104
|
+
|
|
105
|
+
if coefficients.keys() > self._hamiltonians.keys():
|
|
106
|
+
missing = coefficients.keys() - self._hamiltonians.keys()
|
|
107
|
+
raise ValueError(f"Missing keys in hamiltonians: {missing}")
|
|
108
|
+
|
|
109
|
+
for ham, hamiltonian in self._hamiltonians.items():
|
|
110
|
+
# Gather Hamiltonian parameters and nqubits
|
|
111
|
+
for param in hamiltonian.parameters.values():
|
|
112
|
+
self._parameters[param.label] = param
|
|
113
|
+
|
|
114
|
+
# Build hamiltonian schedule
|
|
115
|
+
if ham not in coefficients:
|
|
116
|
+
self._coefficients[ham] = Interpolator({0: 1}, interpolation=interpolation, nsamples=int(1 / dt))
|
|
117
|
+
continue
|
|
118
|
+
coeff = copy(coefficients[ham])
|
|
119
|
+
if isinstance(coeff, Interpolator):
|
|
120
|
+
self._coefficients[ham] = coeff
|
|
121
|
+
elif isinstance(coeff, dict):
|
|
122
|
+
self._coefficients[ham] = Interpolator(coeff, interpolation, nsamples=int(1 / dt))
|
|
123
|
+
|
|
124
|
+
for p_name, p_value in self._coefficients[ham].parameters.items():
|
|
125
|
+
self._parameters[p_name] = p_value
|
|
126
|
+
|
|
127
|
+
if total_time is not None:
|
|
128
|
+
self.scale_max_time(total_time)
|
|
129
|
+
|
|
130
|
+
@property
|
|
131
|
+
def hamiltonians(self) -> dict[str, Hamiltonian]:
|
|
132
|
+
"""
|
|
133
|
+
Return the Hamiltonians managed by the schedule.
|
|
134
|
+
|
|
135
|
+
Returns:
|
|
136
|
+
dict[str, Hamiltonian]: Mapping of labels to Hamiltonian instances.
|
|
137
|
+
"""
|
|
138
|
+
return self._hamiltonians
|
|
139
|
+
|
|
140
|
+
@property
|
|
141
|
+
def coefficients_dict(self) -> dict[str, dict[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER]]:
|
|
142
|
+
return {ham: self._coefficients[ham].coefficients_dict for ham in self._hamiltonians}
|
|
143
|
+
|
|
144
|
+
@property
|
|
145
|
+
def coefficients(self) -> dict[str, Interpolator]:
|
|
146
|
+
return {ham: self._coefficients[ham] for ham in self._hamiltonians}
|
|
147
|
+
|
|
148
|
+
@property
|
|
149
|
+
def T(self) -> float:
|
|
150
|
+
"""Total annealing time of the schedule."""
|
|
151
|
+
if self._max_time is not None:
|
|
152
|
+
return self._get_value(self._max_time)
|
|
153
|
+
max_t = self._get_coefficients_max_time()
|
|
154
|
+
return self._get_value(max_t)
|
|
155
|
+
|
|
156
|
+
@property
|
|
157
|
+
def tlist(self) -> list[float]:
|
|
158
|
+
T = self.T
|
|
159
|
+
return list(linspace(0, T, int(T // self.dt), dtype=float))
|
|
160
|
+
|
|
161
|
+
def _get_coefficients_max_time(self) -> float:
|
|
162
|
+
if len(self._hamiltonians) == 0:
|
|
163
|
+
return 0
|
|
164
|
+
_tlist: set[float] = set()
|
|
165
|
+
for ham in self._hamiltonians:
|
|
166
|
+
_tlist.update(self._coefficients[ham].fixed_tlist)
|
|
167
|
+
return max(_tlist)
|
|
168
|
+
|
|
169
|
+
@property
|
|
170
|
+
def dt(self) -> float:
|
|
171
|
+
return self._dt
|
|
172
|
+
|
|
173
|
+
def set_dt(self, dt: float) -> None:
|
|
174
|
+
"""
|
|
175
|
+
Set the time resolution ``dt`` used for sampling callable/interval definitions and plotting.
|
|
176
|
+
|
|
177
|
+
Args:
|
|
178
|
+
dt (float): New time resolution. Must be positive.
|
|
179
|
+
|
|
180
|
+
Raises:
|
|
181
|
+
ValueError: If ``dt`` is not a positive float.
|
|
182
|
+
"""
|
|
183
|
+
if not isinstance(dt, float):
|
|
184
|
+
raise ValueError(f"dt is only allowed to be a float but {type(dt)} was provided")
|
|
185
|
+
self._dt = dt
|
|
186
|
+
|
|
187
|
+
@property
|
|
188
|
+
def nqubits(self) -> int:
|
|
189
|
+
"""Maximum number of qubits affected by Hamiltonians contained in the schedule."""
|
|
190
|
+
if len(self._hamiltonians) == 0:
|
|
191
|
+
return 0
|
|
192
|
+
return max(self._hamiltonians.values(), key=lambda v: v.nqubits).nqubits
|
|
193
|
+
|
|
194
|
+
@property
|
|
195
|
+
def nparameters(self) -> int:
|
|
196
|
+
"""Number of symbolic parameters introduced by the Hamiltonians or coefficients."""
|
|
197
|
+
return len(self._parameters)
|
|
198
|
+
|
|
199
|
+
def _get_value(self, value: PARAMETERIZED_NUMBER | complex, t: float | None = None) -> float:
|
|
200
|
+
if isinstance(value, (int, float)):
|
|
201
|
+
return value
|
|
202
|
+
if isinstance(value, complex):
|
|
203
|
+
return value.real
|
|
204
|
+
if isinstance(value, Parameter):
|
|
205
|
+
if value.label == _TIME_PARAMETER_NAME:
|
|
206
|
+
if t is None:
|
|
207
|
+
raise ValueError("Can't evaluate Parameter because time is not provided.")
|
|
208
|
+
value.set_value(t)
|
|
209
|
+
return float(value.evaluate())
|
|
210
|
+
if isinstance(value, Term):
|
|
211
|
+
ctx: Mapping[BaseVariable, list[int] | int | float] = {self._current_time: t} if t is not None else {}
|
|
212
|
+
aux = value.evaluate(ctx)
|
|
213
|
+
|
|
214
|
+
return aux.real if isinstance(aux, complex) else float(aux)
|
|
215
|
+
raise ValueError(f"Invalid value of type {type(value)} is being evaluated.")
|
|
216
|
+
|
|
217
|
+
def _extract_parameters(self, element: PARAMETERIZED_NUMBER) -> None:
|
|
218
|
+
if isinstance(element, Parameter):
|
|
219
|
+
self._parameters[element.label] = element
|
|
220
|
+
elif isinstance(element, Term):
|
|
221
|
+
if not element.is_parameterized_term():
|
|
222
|
+
raise ValueError(
|
|
223
|
+
f"Tlist can only contain parameters and no variables, but the term {element} contains objects other than parameters."
|
|
224
|
+
)
|
|
225
|
+
for p in element.variables():
|
|
226
|
+
if isinstance(p, Parameter):
|
|
227
|
+
self._parameters[p.label] = p
|
|
228
|
+
|
|
229
|
+
def set_parameters(self, parameters: dict[str, int | float]) -> None:
|
|
230
|
+
"""Update parameter values across all Hamiltonian coefficient interpolators.
|
|
231
|
+
|
|
232
|
+
Args:
|
|
233
|
+
parameters (dict[str, int | float]): Mapping from parameter labels to numeric values.
|
|
234
|
+
|
|
235
|
+
Raises:
|
|
236
|
+
ValueError: If an unknown parameter label is provided.
|
|
237
|
+
"""
|
|
238
|
+
for label in parameters:
|
|
239
|
+
if label not in self._parameters:
|
|
240
|
+
raise ValueError(f"Parameter {label} is not defined in this Schedule.")
|
|
241
|
+
for h in self._hamiltonians:
|
|
242
|
+
self._coefficients[h].set_parameters(
|
|
243
|
+
{p: parameters[p] for p in self._coefficients[h].get_parameter_names() if p in parameters}
|
|
244
|
+
)
|
|
245
|
+
super().set_parameters(parameters)
|
|
246
|
+
|
|
247
|
+
def set_parameter_bounds(self, ranges: dict[str, tuple[float, float]]) -> None:
|
|
248
|
+
"""Propagate bound updates to all interpolators and cached parameters.
|
|
249
|
+
|
|
250
|
+
Args:
|
|
251
|
+
ranges (dict[str, tuple[float, float]]): Mapping of parameter label to ``(lower, upper)`` bounds.
|
|
252
|
+
|
|
253
|
+
Raises:
|
|
254
|
+
ValueError: If an unknown parameter label is provided.
|
|
255
|
+
"""
|
|
256
|
+
for label in ranges:
|
|
257
|
+
if label not in self._parameters:
|
|
258
|
+
raise ValueError(
|
|
259
|
+
f"The provided parameter label {label} is not defined in the list of parameters in this object."
|
|
260
|
+
)
|
|
261
|
+
for h in self._hamiltonians:
|
|
262
|
+
self._coefficients[h].set_parameter_bounds(
|
|
263
|
+
{p: ranges[p] for p in self._coefficients[h].get_parameter_names() if p in ranges}
|
|
264
|
+
)
|
|
265
|
+
super().set_parameter_bounds(ranges)
|
|
266
|
+
|
|
267
|
+
def get_constraints(self) -> list[ComparisonTerm]:
|
|
268
|
+
"""Return the set of parameter constraints arising from all interpolators."""
|
|
269
|
+
const_lists = [coeff.get_constraints() for coeff in self._coefficients.values()]
|
|
270
|
+
combined_list = chain.from_iterable(const_lists)
|
|
271
|
+
return list(set(combined_list))
|
|
272
|
+
|
|
273
|
+
def scale_max_time(self, max_time: PARAMETERIZED_NUMBER) -> None: # FIX!
|
|
274
|
+
"""
|
|
275
|
+
Rescale the schedule to a new maximum time while keeping relative points fixed.
|
|
276
|
+
|
|
277
|
+
Raises:
|
|
278
|
+
ValueError: If the max time provided is zero.
|
|
279
|
+
"""
|
|
280
|
+
if abs(self._get_value(max_time)) < get_settings().atol:
|
|
281
|
+
raise ValueError("Cannot set the total time to zero.")
|
|
282
|
+
self._extract_parameters(max_time)
|
|
283
|
+
self._max_time = max_time
|
|
284
|
+
for ham in self._hamiltonians:
|
|
285
|
+
self._coefficients[ham].set_max_time(max_time)
|
|
286
|
+
|
|
287
|
+
def _add_hamiltonian_from_dict(
|
|
288
|
+
self,
|
|
289
|
+
label: str,
|
|
290
|
+
hamiltonian: Hamiltonian,
|
|
291
|
+
coefficients: TimeDict,
|
|
292
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
293
|
+
) -> None:
|
|
294
|
+
if label in self._hamiltonians:
|
|
295
|
+
raise ValueError(f"Can't add Hamiltonian because label {label} is already associated with a Hamiltonian.")
|
|
296
|
+
self._hamiltonians[label] = hamiltonian
|
|
297
|
+
self._coefficients[label] = Interpolator(coefficients, interpolation, nsamples=int(1 / self.dt))
|
|
298
|
+
|
|
299
|
+
for p_name, p_value in self._coefficients[label].parameters.items():
|
|
300
|
+
self._parameters[p_name] = p_value
|
|
301
|
+
|
|
302
|
+
def _add_hamiltonian_from_interpolator(
|
|
303
|
+
self, label: str, hamiltonian: Hamiltonian, coefficients: Interpolator
|
|
304
|
+
) -> None:
|
|
305
|
+
if label in self._hamiltonians:
|
|
306
|
+
raise ValueError(f"Can't add Hamiltonian because label {label} is already associated with a Hamiltonian.")
|
|
307
|
+
self._hamiltonians[label] = hamiltonian
|
|
308
|
+
self._coefficients[label] = coefficients
|
|
309
|
+
|
|
310
|
+
for p_name, p_value in self._coefficients[label].parameters.items():
|
|
311
|
+
self._parameters[p_name] = p_value
|
|
312
|
+
|
|
313
|
+
@overload
|
|
314
|
+
def add_hamiltonian(
|
|
315
|
+
self,
|
|
316
|
+
label: str,
|
|
317
|
+
hamiltonian: Hamiltonian,
|
|
318
|
+
coefficients: TimeDict,
|
|
319
|
+
) -> None: ...
|
|
320
|
+
|
|
321
|
+
@overload
|
|
322
|
+
def add_hamiltonian(
|
|
323
|
+
self,
|
|
324
|
+
label: str,
|
|
325
|
+
hamiltonian: Hamiltonian,
|
|
326
|
+
coefficients: Interpolator,
|
|
327
|
+
) -> None: ...
|
|
328
|
+
|
|
329
|
+
def add_hamiltonian(
|
|
330
|
+
self,
|
|
331
|
+
label: str,
|
|
332
|
+
hamiltonian: Hamiltonian,
|
|
333
|
+
coefficients: Interpolator | TimeDict,
|
|
334
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
335
|
+
) -> None:
|
|
336
|
+
if not isinstance(hamiltonian, Hamiltonian):
|
|
337
|
+
raise ValueError(f"Expecting a Hamiltonian object but received {type(hamiltonian)} instead.")
|
|
338
|
+
|
|
339
|
+
if isinstance(coefficients, Interpolator):
|
|
340
|
+
self._add_hamiltonian_from_interpolator(label, hamiltonian, coefficients)
|
|
341
|
+
elif isinstance(coefficients, dict):
|
|
342
|
+
self._add_hamiltonian_from_dict(label, hamiltonian, coefficients, interpolation)
|
|
343
|
+
else:
|
|
344
|
+
raise ValueError("Unsupported type of coefficient.")
|
|
345
|
+
if self._max_time is not None:
|
|
346
|
+
self._coefficients[label].set_max_time(self._max_time)
|
|
347
|
+
|
|
348
|
+
def _update_hamiltonian_from_dict(
|
|
349
|
+
self,
|
|
350
|
+
label: str,
|
|
351
|
+
new_coefficients: TimeDict | None = None,
|
|
352
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
353
|
+
) -> None:
|
|
354
|
+
if new_coefficients is not None:
|
|
355
|
+
self._coefficients[label] = Interpolator(
|
|
356
|
+
new_coefficients, interpolation, nsamples=int(1 / self.dt)
|
|
357
|
+
) # TODO (ameer): allow for partial updates of the coefficients
|
|
358
|
+
|
|
359
|
+
for p_name, p_value in self._coefficients[label].parameters.items():
|
|
360
|
+
self._parameters[p_name] = p_value
|
|
361
|
+
|
|
362
|
+
def _update_hamiltonian_from_interpolator(self, label: str, new_coefficients: Interpolator | None = None) -> None:
|
|
363
|
+
if new_coefficients is not None:
|
|
364
|
+
self._coefficients[label] = new_coefficients
|
|
365
|
+
|
|
366
|
+
for p_name, p_value in self._coefficients[label].parameters.items():
|
|
367
|
+
self._parameters[p_name] = p_value
|
|
368
|
+
|
|
369
|
+
@overload
|
|
370
|
+
def update_hamiltonian(
|
|
371
|
+
self,
|
|
372
|
+
label: str,
|
|
373
|
+
new_hamiltonian: Hamiltonian | None = None,
|
|
374
|
+
new_coefficients: TimeDict | None = None,
|
|
375
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
376
|
+
) -> None: ...
|
|
377
|
+
|
|
378
|
+
@overload
|
|
379
|
+
def update_hamiltonian(
|
|
380
|
+
self,
|
|
381
|
+
label: str,
|
|
382
|
+
new_hamiltonian: Hamiltonian | None = None,
|
|
383
|
+
new_coefficients: Interpolator | None = None,
|
|
384
|
+
) -> None: ...
|
|
385
|
+
|
|
386
|
+
def update_hamiltonian(
|
|
387
|
+
self,
|
|
388
|
+
label: str,
|
|
389
|
+
new_hamiltonian: Hamiltonian | None = None,
|
|
390
|
+
new_coefficients: Interpolator | TimeDict | None = None,
|
|
391
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
392
|
+
) -> None:
|
|
393
|
+
if label not in self._hamiltonians:
|
|
394
|
+
raise ValueError(f"Can't update unknown hamiltonian {label}. Did you mean `add_hamiltonian`?")
|
|
395
|
+
if new_hamiltonian is not None:
|
|
396
|
+
if not isinstance(new_hamiltonian, Hamiltonian):
|
|
397
|
+
raise ValueError(f"Expecting a Hamiltonian object but received {type(new_hamiltonian)} instead.")
|
|
398
|
+
self._hamiltonians[label] = new_hamiltonian
|
|
399
|
+
if new_coefficients is not None:
|
|
400
|
+
if isinstance(new_coefficients, Interpolator):
|
|
401
|
+
self._update_hamiltonian_from_interpolator(label, new_coefficients)
|
|
402
|
+
elif isinstance(new_coefficients, dict):
|
|
403
|
+
self._update_hamiltonian_from_dict(label, new_coefficients, interpolation)
|
|
404
|
+
else:
|
|
405
|
+
raise ValueError("Unsupported type of coefficient.")
|
|
406
|
+
|
|
407
|
+
if self._max_time is not None:
|
|
408
|
+
self._coefficients[label].set_max_time(self._max_time)
|
|
409
|
+
|
|
410
|
+
def __getitem__(self, time_step: float) -> Hamiltonian:
|
|
411
|
+
"""
|
|
412
|
+
Retrieve the effective Hamiltonian at a given time step.
|
|
413
|
+
|
|
414
|
+
The effective Hamiltonian is computed by summing the contributions of all Hamiltonians,
|
|
415
|
+
using the latest defined coefficients at or before the given time step.
|
|
416
|
+
|
|
417
|
+
Args:
|
|
418
|
+
time_step (float): Physical time (same units as the schedule definition) at which to sample.
|
|
419
|
+
|
|
420
|
+
Returns:
|
|
421
|
+
Hamiltonian: The effective Hamiltonian at the specified time step with coefficients evaluated to numbers.
|
|
422
|
+
"""
|
|
423
|
+
final_ham = Hamiltonian()
|
|
424
|
+
for label, ham in self._hamiltonians.items():
|
|
425
|
+
final_ham += ham * self._coefficients[label][time_step]
|
|
426
|
+
return final_ham
|
|
427
|
+
|
|
428
|
+
def __len__(self) -> int:
|
|
429
|
+
"""
|
|
430
|
+
Get the total number of discrete time steps in the annealing process.
|
|
431
|
+
|
|
432
|
+
Returns:
|
|
433
|
+
int: The number of time steps, calculated as T / dt.
|
|
434
|
+
"""
|
|
435
|
+
return len(self.tlist)
|
|
436
|
+
|
|
437
|
+
def __iter__(self) -> Schedule:
|
|
438
|
+
"""
|
|
439
|
+
Return an iterator over the schedule's time steps.
|
|
440
|
+
|
|
441
|
+
Returns:
|
|
442
|
+
Schedule: The schedule instance itself as an iterator.
|
|
443
|
+
"""
|
|
444
|
+
self.iter_time_step = 0
|
|
445
|
+
return self
|
|
446
|
+
|
|
447
|
+
def __next__(self) -> Hamiltonian:
|
|
448
|
+
"""
|
|
449
|
+
Retrieve the next effective Hamiltonian in the schedule during iteration.
|
|
450
|
+
|
|
451
|
+
Returns:
|
|
452
|
+
Hamiltonian: The effective Hamiltonian at the current time step.
|
|
453
|
+
|
|
454
|
+
Raises:
|
|
455
|
+
StopIteration: When the iteration has reached beyond the total number of time steps.
|
|
456
|
+
"""
|
|
457
|
+
if self.iter_time_step < self.__len__():
|
|
458
|
+
result = self[self.tlist[self.iter_time_step]]
|
|
459
|
+
self.iter_time_step += 1
|
|
460
|
+
return result
|
|
461
|
+
raise StopIteration
|
|
462
|
+
|
|
463
|
+
def draw(self, style: ScheduleStyle | None = None, filepath: str | None = None) -> None:
|
|
464
|
+
"""Render a plot of the schedule using matplotlib and optionally save it to a file.
|
|
465
|
+
|
|
466
|
+
The schedule is rendered using the provided style configuration. If ``filepath`` is
|
|
467
|
+
given, the resulting figure is saved to disk (the output format is inferred
|
|
468
|
+
from the file extension, e.g. ``.png``, ``.pdf``, ``.svg``).
|
|
469
|
+
|
|
470
|
+
Args:
|
|
471
|
+
style (ScheduleStyle, optional): Customization options for the plot appearance.
|
|
472
|
+
Defaults to ScheduleStyle().
|
|
473
|
+
filepath (str | None, optional): If provided, saves the plot to the specified file path.
|
|
474
|
+
"""
|
|
475
|
+
from qilisdk.utils.visualization.schedule_renderers import MatplotlibScheduleRenderer # noqa: PLC0415
|
|
476
|
+
|
|
477
|
+
style = style or ScheduleStyle()
|
|
478
|
+
renderer = MatplotlibScheduleRenderer(self, style=style)
|
|
479
|
+
renderer.plot()
|
|
480
|
+
if filepath:
|
|
481
|
+
renderer.save(filepath)
|
|
482
|
+
else:
|
|
483
|
+
renderer.show()
|
|
@@ -0,0 +1,46 @@
|
|
|
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
|
+
import sys
|
|
15
|
+
|
|
16
|
+
from qilisdk._optionals import ImportedFeature, OptionalFeature, Symbol, import_optional_dependencies
|
|
17
|
+
from qilisdk.backends.qilisim import QiliSim
|
|
18
|
+
|
|
19
|
+
__all__ = ["QiliSim"]
|
|
20
|
+
|
|
21
|
+
OPTIONAL_FEATURES: list[OptionalFeature] = [
|
|
22
|
+
OptionalFeature(
|
|
23
|
+
name="cuda",
|
|
24
|
+
dependencies=["cuda-quantum-cu12"],
|
|
25
|
+
symbols=[
|
|
26
|
+
Symbol(path="qilisdk.backends.cuda_backend", name="CudaBackend"),
|
|
27
|
+
Symbol(path="qilisdk.backends.cuda_backend", name="CudaSamplingMethod"),
|
|
28
|
+
],
|
|
29
|
+
),
|
|
30
|
+
OptionalFeature(
|
|
31
|
+
name="qutip",
|
|
32
|
+
dependencies=["qutip", "qutip-qip", "matplotlib"],
|
|
33
|
+
symbols=[
|
|
34
|
+
Symbol(path="qilisdk.backends.qutip_backend", name="QutipBackend"),
|
|
35
|
+
],
|
|
36
|
+
),
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
current_module = sys.modules[__name__]
|
|
40
|
+
|
|
41
|
+
# Dynamically import (or stub) each feature's symbols and attach them
|
|
42
|
+
for feature in OPTIONAL_FEATURES:
|
|
43
|
+
imported_feature: ImportedFeature = import_optional_dependencies(feature)
|
|
44
|
+
for symbol_name, symbol_obj in imported_feature.symbols.items():
|
|
45
|
+
setattr(current_module, symbol_name, symbol_obj)
|
|
46
|
+
__all__ += [symbol_name] # noqa: PLE0604
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
|
|
15
|
+
from .cuda_backend import CudaBackend, CudaSamplingMethod
|
|
16
|
+
from .qutip_backend import QutipBackend
|
|
17
|
+
|
|
18
|
+
__all__ = ["CudaBackend", "CudaSamplingMethod", "QutipBackend"]
|
|
@@ -0,0 +1,132 @@
|
|
|
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
|
+
from abc import ABC
|
|
17
|
+
from typing import TYPE_CHECKING, Callable, TypeVar, cast, overload
|
|
18
|
+
|
|
19
|
+
from qilisdk.functionals.functional_result import FunctionalResult
|
|
20
|
+
from qilisdk.functionals.sampling import Sampling
|
|
21
|
+
from qilisdk.functionals.time_evolution import TimeEvolution
|
|
22
|
+
from qilisdk.functionals.variational_program import VariationalProgram
|
|
23
|
+
from qilisdk.functionals.variational_program_result import VariationalProgramResult
|
|
24
|
+
from qilisdk.settings import get_settings
|
|
25
|
+
|
|
26
|
+
if TYPE_CHECKING:
|
|
27
|
+
from qilisdk.functionals.functional import Functional, PrimitiveFunctional
|
|
28
|
+
from qilisdk.functionals.sampling_result import SamplingResult
|
|
29
|
+
from qilisdk.functionals.time_evolution_result import TimeEvolutionResult
|
|
30
|
+
|
|
31
|
+
TResult = TypeVar("TResult", bound=FunctionalResult)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class Backend(ABC):
|
|
35
|
+
def __init__(self) -> None:
|
|
36
|
+
self._handlers: dict[type[Functional], Callable[[Functional], FunctionalResult]] = {
|
|
37
|
+
Sampling: lambda f: self._execute_sampling(cast("Sampling", f)),
|
|
38
|
+
TimeEvolution: lambda f: self._execute_time_evolution(cast("TimeEvolution", f)),
|
|
39
|
+
VariationalProgram: lambda f: self._execute_variational_program(cast("VariationalProgram", f)),
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
@overload
|
|
43
|
+
def execute(self, functional: Sampling) -> SamplingResult: ...
|
|
44
|
+
|
|
45
|
+
@overload
|
|
46
|
+
def execute(self, functional: TimeEvolution) -> TimeEvolutionResult: ...
|
|
47
|
+
|
|
48
|
+
@overload
|
|
49
|
+
def execute(self, functional: VariationalProgram[Sampling]) -> VariationalProgramResult[SamplingResult]: ...
|
|
50
|
+
|
|
51
|
+
@overload
|
|
52
|
+
def execute(
|
|
53
|
+
self, functional: VariationalProgram[TimeEvolution]
|
|
54
|
+
) -> VariationalProgramResult[TimeEvolutionResult]: ...
|
|
55
|
+
|
|
56
|
+
@overload
|
|
57
|
+
def execute(self, functional: PrimitiveFunctional[TResult]) -> TResult: ...
|
|
58
|
+
|
|
59
|
+
def execute(self, functional: Functional) -> FunctionalResult:
|
|
60
|
+
try:
|
|
61
|
+
handler = self._handlers[type(functional)]
|
|
62
|
+
except KeyError as exc:
|
|
63
|
+
raise NotImplementedError(
|
|
64
|
+
f"{type(self).__qualname__} does not support {type(functional).__qualname__}"
|
|
65
|
+
) from exc
|
|
66
|
+
|
|
67
|
+
return handler(functional)
|
|
68
|
+
|
|
69
|
+
def _execute_sampling(self, functional: Sampling) -> SamplingResult:
|
|
70
|
+
raise NotImplementedError(f"{type(self).__qualname__} has no Sampling implementation")
|
|
71
|
+
|
|
72
|
+
def _execute_time_evolution(self, functional: TimeEvolution) -> TimeEvolutionResult:
|
|
73
|
+
raise NotImplementedError(f"{type(self).__qualname__} has no TimeEvolution implementation")
|
|
74
|
+
|
|
75
|
+
def _execute_variational_program(
|
|
76
|
+
self, functional: VariationalProgram[PrimitiveFunctional[TResult]]
|
|
77
|
+
) -> VariationalProgramResult[TResult]:
|
|
78
|
+
"""Optimize a Parameterized Program (:class:`~qilisdk.functionals.variational_program.VariationalProgram`)
|
|
79
|
+
and returns the optimal parameters and results.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
functional (VariationalProgram): The variational program to be optimized.
|
|
83
|
+
|
|
84
|
+
Returns:
|
|
85
|
+
ParameterizedProgramResults: The final optimizer and functional results.
|
|
86
|
+
|
|
87
|
+
Raises:
|
|
88
|
+
ValueError: If the functional is not parameterized.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
def evaluate_sample(parameters: list[float]) -> float:
|
|
92
|
+
param_names = functional.functional.get_parameter_names()
|
|
93
|
+
param_bounds = functional.functional.get_parameter_bounds()
|
|
94
|
+
new_param_dict = {}
|
|
95
|
+
for i, param in enumerate(parameters):
|
|
96
|
+
name = param_names[i]
|
|
97
|
+
lower_bound, upper_bound = param_bounds[name]
|
|
98
|
+
if lower_bound != upper_bound:
|
|
99
|
+
new_param_dict[name] = param
|
|
100
|
+
err = functional.check_parameter_constraints(new_param_dict)
|
|
101
|
+
if err > 0:
|
|
102
|
+
return err
|
|
103
|
+
functional.functional.set_parameters(new_param_dict)
|
|
104
|
+
results = self.execute(functional.functional)
|
|
105
|
+
final_results = functional.cost_function.compute_cost(results)
|
|
106
|
+
if isinstance(final_results, float):
|
|
107
|
+
return final_results
|
|
108
|
+
if isinstance(final_results, complex) and abs(final_results.imag) < get_settings().atol:
|
|
109
|
+
return final_results.real
|
|
110
|
+
raise ValueError(f"Unsupported result type {type(final_results)}.")
|
|
111
|
+
|
|
112
|
+
if len(functional.functional.get_parameters()) == 0:
|
|
113
|
+
raise ValueError("Functional provided is not parameterized.")
|
|
114
|
+
|
|
115
|
+
optimizer_result = functional.optimizer.optimize(
|
|
116
|
+
cost_function=evaluate_sample,
|
|
117
|
+
init_parameters=list(functional.functional.get_parameters().values()),
|
|
118
|
+
bounds=list(functional.functional.get_parameter_bounds().values()),
|
|
119
|
+
store_intermediate_results=functional.store_intermediate_results,
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
param_names = functional.functional.get_parameter_names()
|
|
123
|
+
optimal_parameter_dict = {param_names[i]: param for i, param in enumerate(optimizer_result.optimal_parameters)}
|
|
124
|
+
err = functional.check_parameter_constraints(optimal_parameter_dict)
|
|
125
|
+
if err > 0:
|
|
126
|
+
raise ValueError(
|
|
127
|
+
"Optimizer Failed at finding an optimal solution. Check the parameter constraints or try with a different optimization method."
|
|
128
|
+
)
|
|
129
|
+
functional.functional.set_parameters(optimal_parameter_dict)
|
|
130
|
+
optimal_results: TResult = self.execute(functional.functional)
|
|
131
|
+
|
|
132
|
+
return VariationalProgramResult(optimizer_result=optimizer_result, result=optimal_results)
|