qilisdk 0.1.8__cp312-cp312-macosx_10_9_x86_64.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 +634 -0
- qilisdk-0.1.8.dist-info/WHEEL +5 -0
- qilisdk-0.1.8.dist-info/licenses/LICENCE +201 -0
- qilisim_module.cpython-312-darwin.so +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
- share/pkgconfig/eigen3.pc +9 -0
|
@@ -0,0 +1,640 @@
|
|
|
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 inspect
|
|
17
|
+
from bisect import bisect_right
|
|
18
|
+
from collections.abc import Callable
|
|
19
|
+
from copy import copy
|
|
20
|
+
from enum import Enum
|
|
21
|
+
from typing import TYPE_CHECKING, Any, Mapping, TypeAlias
|
|
22
|
+
|
|
23
|
+
import numpy as np
|
|
24
|
+
|
|
25
|
+
from qilisdk.core.parameterizable import Parameterizable
|
|
26
|
+
from qilisdk.core.variables import LEQ, BaseVariable, Parameter, Term
|
|
27
|
+
from qilisdk.settings import get_settings
|
|
28
|
+
from qilisdk.yaml import yaml
|
|
29
|
+
|
|
30
|
+
if TYPE_CHECKING:
|
|
31
|
+
from qilisdk.core.types import Number
|
|
32
|
+
|
|
33
|
+
_TIME_PARAMETER_NAME = "t"
|
|
34
|
+
PARAMETERIZED_NUMBER: TypeAlias = float | Parameter | Term
|
|
35
|
+
|
|
36
|
+
# type aliases just to keep this short
|
|
37
|
+
TimeDict = dict[PARAMETERIZED_NUMBER | tuple[float, float], PARAMETERIZED_NUMBER | Callable[..., PARAMETERIZED_NUMBER]]
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class Interpolation(str, Enum):
|
|
41
|
+
STEP = "Step function interpolation between schedule points"
|
|
42
|
+
LINEAR = "linear interpolation between schedule points"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _process_callable(
|
|
46
|
+
function: Callable[[], PARAMETERIZED_NUMBER], current_time: Parameter, **kwargs: Any
|
|
47
|
+
) -> tuple[PARAMETERIZED_NUMBER, dict[str, Parameter]]:
|
|
48
|
+
"""
|
|
49
|
+
Evaluate a coefficient-producing callable and collect any parameters it exposes.
|
|
50
|
+
|
|
51
|
+
Args:
|
|
52
|
+
function (Callable[..., PARAMETERIZED_NUMBER]): Callable that returns a coefficient expression.
|
|
53
|
+
current_time (Parameter): Time parameter to bind when evaluating the callable.
|
|
54
|
+
**kwargs: Additional keyword arguments passed to the callable.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
tuple[PARAMETERIZED_NUMBER, dict[str, Parameter]]: Evaluated expression and parameters discovered.
|
|
58
|
+
|
|
59
|
+
Raises:
|
|
60
|
+
ValueError: If the callable uses variables other than time or ``Parameter`` instances.
|
|
61
|
+
"""
|
|
62
|
+
# Define variables
|
|
63
|
+
parameters: dict[str, Parameter] = {}
|
|
64
|
+
|
|
65
|
+
# get callable parameters
|
|
66
|
+
c_params = inspect.signature(function).parameters
|
|
67
|
+
EMPTY = inspect.Parameter.empty
|
|
68
|
+
# process callable parameters
|
|
69
|
+
for param_name, param_info in c_params.items():
|
|
70
|
+
# parameter type extraction
|
|
71
|
+
if param_info.annotation is not EMPTY and param_info.annotation is Parameter:
|
|
72
|
+
if param_info.default is not EMPTY:
|
|
73
|
+
parameters[param_info.default.label] = copy(param_info.default)
|
|
74
|
+
else:
|
|
75
|
+
value = kwargs.get(param_name, 0)
|
|
76
|
+
if isinstance(value, (float, int)):
|
|
77
|
+
parameters[param_name] = Parameter(param_name, value)
|
|
78
|
+
# needed since it could be that the kwargs don't contain param_name and we don't have a default
|
|
79
|
+
# and in that case the below function() call would fail
|
|
80
|
+
kwargs[param_name] = parameters[param_name]
|
|
81
|
+
elif isinstance(value, Parameter):
|
|
82
|
+
parameters[value.label] = value
|
|
83
|
+
|
|
84
|
+
if _TIME_PARAMETER_NAME in c_params:
|
|
85
|
+
kwargs[_TIME_PARAMETER_NAME] = current_time
|
|
86
|
+
term = function(**kwargs)
|
|
87
|
+
if isinstance(term, Term) and not all(
|
|
88
|
+
(isinstance(v, Parameter) or v.label == _TIME_PARAMETER_NAME) for v in term.variables()
|
|
89
|
+
):
|
|
90
|
+
raise ValueError("function contains variables that are not time. Only Parameters are allowed.")
|
|
91
|
+
if isinstance(term, BaseVariable) and not (isinstance(term, Parameter) or term.label == _TIME_PARAMETER_NAME):
|
|
92
|
+
raise ValueError("function contains variables that are not time. Only Parameters are allowed.")
|
|
93
|
+
return term, parameters
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
@yaml.register_class
|
|
97
|
+
class Interpolator(Parameterizable):
|
|
98
|
+
"""It's a dictionary that can interpolate between defined indecies."""
|
|
99
|
+
|
|
100
|
+
def __init__(
|
|
101
|
+
self,
|
|
102
|
+
time_dict: TimeDict,
|
|
103
|
+
interpolation: Interpolation = Interpolation.LINEAR,
|
|
104
|
+
nsamples: int = 100,
|
|
105
|
+
) -> None:
|
|
106
|
+
"""Initialize an interpolator over discrete points or intervals.
|
|
107
|
+
|
|
108
|
+
Args:
|
|
109
|
+
time_dict (TimeDict): Mapping from time points or intervals to coefficients or callables.
|
|
110
|
+
interpolation (Interpolation): Interpolation rule between provided points (``LINEAR`` or ``STEP``).
|
|
111
|
+
nsamples (int): Number of samples used to expand interval definitions.
|
|
112
|
+
|
|
113
|
+
Raises:
|
|
114
|
+
ValueError: If the time intervals contain a number of points different than 2.
|
|
115
|
+
"""
|
|
116
|
+
super(Interpolator, self).__init__()
|
|
117
|
+
self._interpolation = interpolation
|
|
118
|
+
self._time_dict: dict[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER] = {}
|
|
119
|
+
self._current_time = Parameter("t", 0)
|
|
120
|
+
self._total_time: float | None = None
|
|
121
|
+
self.iter_time_step = 0
|
|
122
|
+
self._cached = False
|
|
123
|
+
self._cached_time: dict[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER | Number] = {}
|
|
124
|
+
self._tlist: list[PARAMETERIZED_NUMBER] | None = None
|
|
125
|
+
self._fixed_tlist: list[float] | None = None
|
|
126
|
+
self._max_time: PARAMETERIZED_NUMBER | None = None
|
|
127
|
+
self._time_scale_cache: float | None = None
|
|
128
|
+
|
|
129
|
+
fixed_times = sorted(
|
|
130
|
+
time_dict.keys(),
|
|
131
|
+
key=lambda t: (
|
|
132
|
+
self._get_value(t) if not isinstance(t, tuple) else self._get_value(min(t, key=self._get_value))
|
|
133
|
+
),
|
|
134
|
+
)
|
|
135
|
+
|
|
136
|
+
for i in range(len(fixed_times) - 1):
|
|
137
|
+
ti = fixed_times[i]
|
|
138
|
+
tj = fixed_times[i + 1]
|
|
139
|
+
t0 = self._get_value(ti) if not isinstance(ti, tuple) else self._get_value(ti[1]) # ty:ignore[invalid-argument-type]
|
|
140
|
+
t1 = self._get_value(tj) if not isinstance(tj, tuple) else self._get_value(tj[0]) # ty:ignore[invalid-argument-type]
|
|
141
|
+
if abs(t0 - t1) < get_settings().atol:
|
|
142
|
+
raise ValueError(f"The time point {t0} is defined twice.")
|
|
143
|
+
if t0 > t1:
|
|
144
|
+
raise ValueError(f"Can't provide a point that intersects an interval (issue in: {ti} and {tj}).")
|
|
145
|
+
|
|
146
|
+
for time, coefficient in time_dict.items():
|
|
147
|
+
if isinstance(time, tuple):
|
|
148
|
+
if len(time) != 2: # noqa: PLR2004
|
|
149
|
+
raise ValueError(
|
|
150
|
+
f"time intervals need to be defined by two points, but this interval was provided: {time}"
|
|
151
|
+
)
|
|
152
|
+
self.add_time_point(time[0], coefficient) # ty:ignore[invalid-argument-type]
|
|
153
|
+
self.add_time_point(time[1], coefficient) # ty:ignore[invalid-argument-type]
|
|
154
|
+
else:
|
|
155
|
+
self.add_time_point(time, coefficient)
|
|
156
|
+
self._tlist = self._generate_tlist()
|
|
157
|
+
|
|
158
|
+
time_insertion_list = sorted(
|
|
159
|
+
[k for item in time_dict for k in (item if isinstance(item, tuple) else (item,))],
|
|
160
|
+
key=self._get_value,
|
|
161
|
+
) # ty:ignore[no-matching-overload]
|
|
162
|
+
l = len(time_insertion_list)
|
|
163
|
+
for i in range(l):
|
|
164
|
+
t = time_insertion_list[i]
|
|
165
|
+
if isinstance(t, (Parameter, Term)):
|
|
166
|
+
if i > 0:
|
|
167
|
+
term = LEQ(time_insertion_list[i - 1], t)
|
|
168
|
+
if term not in self._parameter_constraints:
|
|
169
|
+
self._parameter_constraints.append(term)
|
|
170
|
+
if i < l - 1:
|
|
171
|
+
term = LEQ(t, time_insertion_list[i + 1])
|
|
172
|
+
if term not in self._parameter_constraints:
|
|
173
|
+
self._parameter_constraints.append(term)
|
|
174
|
+
|
|
175
|
+
def _generate_tlist(self) -> list[PARAMETERIZED_NUMBER]:
|
|
176
|
+
"""
|
|
177
|
+
Generate a sorted list of the registered time keys.
|
|
178
|
+
|
|
179
|
+
Returns:
|
|
180
|
+
list[PARAMETERIZED_NUMBER]: Sorted time indices based on their evaluated value.
|
|
181
|
+
"""
|
|
182
|
+
return sorted((self._time_dict.keys()), key=self._get_value) # ty:ignore[invalid-return-type]
|
|
183
|
+
|
|
184
|
+
@property
|
|
185
|
+
def _time_scale(self) -> float:
|
|
186
|
+
"""
|
|
187
|
+
Return the scaling factor applied to time points when ``max_time`` is set.
|
|
188
|
+
This handles the caching, so self._time_scale_cache should never be accessed directly.
|
|
189
|
+
|
|
190
|
+
Returns:
|
|
191
|
+
float: Scaling factor.
|
|
192
|
+
"""
|
|
193
|
+
|
|
194
|
+
# If we don't have a cached value, compute it
|
|
195
|
+
if self._time_scale_cache is None:
|
|
196
|
+
# Make sure we have a max time set
|
|
197
|
+
if self._max_time is not None:
|
|
198
|
+
# Generate the tlist if we haven't already
|
|
199
|
+
if self._tlist is None:
|
|
200
|
+
self._tlist = self._generate_tlist()
|
|
201
|
+
|
|
202
|
+
# Find the maximum time value in the tlist
|
|
203
|
+
max_t = 0.0
|
|
204
|
+
for t in self._tlist:
|
|
205
|
+
max_t = max(max_t, self._get_value(t))
|
|
206
|
+
max_t = max_t if abs(max_t) > get_settings().atol else 1.0
|
|
207
|
+
|
|
208
|
+
# Compute the time scale
|
|
209
|
+
self._time_scale_cache = self._get_value(self._max_time) / max_t
|
|
210
|
+
|
|
211
|
+
# Otherwise set the scale to 1.0
|
|
212
|
+
else:
|
|
213
|
+
self._time_scale_cache = 1.0
|
|
214
|
+
|
|
215
|
+
return self._time_scale_cache
|
|
216
|
+
|
|
217
|
+
@property
|
|
218
|
+
def tlist(self) -> list[PARAMETERIZED_NUMBER]:
|
|
219
|
+
"""
|
|
220
|
+
Return the (possibly rescaled) list of time points used for interpolation.
|
|
221
|
+
|
|
222
|
+
Returns:
|
|
223
|
+
list[PARAMETERIZED_NUMBER]: Interpolation time points, rescaled if ``max_time`` is set.
|
|
224
|
+
"""
|
|
225
|
+
if self._tlist is None:
|
|
226
|
+
self._tlist = self._generate_tlist()
|
|
227
|
+
if self._max_time is not None:
|
|
228
|
+
return [t * self._time_scale for t in self._tlist]
|
|
229
|
+
return self._tlist
|
|
230
|
+
|
|
231
|
+
@property
|
|
232
|
+
def fixed_tlist(self) -> list[float]:
|
|
233
|
+
"""
|
|
234
|
+
Return the list of time points as plain floats.
|
|
235
|
+
|
|
236
|
+
Returns:
|
|
237
|
+
list[float]: Evaluated time points.
|
|
238
|
+
"""
|
|
239
|
+
if self._fixed_tlist:
|
|
240
|
+
return self._fixed_tlist
|
|
241
|
+
self._fixed_tlist = [self._get_value(k) for k in self.tlist]
|
|
242
|
+
return self._fixed_tlist
|
|
243
|
+
|
|
244
|
+
@property
|
|
245
|
+
def total_time(self) -> float:
|
|
246
|
+
"""
|
|
247
|
+
Return the maximum time among all points.
|
|
248
|
+
|
|
249
|
+
Returns:
|
|
250
|
+
float: Largest time value in ``fixed_tlist``.
|
|
251
|
+
"""
|
|
252
|
+
if not self._total_time:
|
|
253
|
+
self._total_time = max(self.fixed_tlist)
|
|
254
|
+
return self._total_time
|
|
255
|
+
|
|
256
|
+
def items(self) -> list[tuple[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER]]:
|
|
257
|
+
"""
|
|
258
|
+
Return (time, coefficient) pairs, rescaling time if a max is set.
|
|
259
|
+
|
|
260
|
+
Returns:
|
|
261
|
+
list[tuple[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER]]: Time and coefficient pairs.
|
|
262
|
+
"""
|
|
263
|
+
if self._max_time is not None:
|
|
264
|
+
return [(k * self._time_scale, v) for k, v in self._time_dict.items()]
|
|
265
|
+
return list(self._time_dict.items())
|
|
266
|
+
|
|
267
|
+
def fixed_items(self) -> list[tuple[float, float]]:
|
|
268
|
+
"""
|
|
269
|
+
Return (time, coefficient) pairs evaluated to floats.
|
|
270
|
+
|
|
271
|
+
Returns:
|
|
272
|
+
list[tuple[float, float]]: Evaluated time and coefficient pairs.
|
|
273
|
+
"""
|
|
274
|
+
return [(t, self._get_value(self[t], t)) for t in self.fixed_tlist]
|
|
275
|
+
|
|
276
|
+
@property
|
|
277
|
+
def coefficients(self) -> list[PARAMETERIZED_NUMBER]:
|
|
278
|
+
"""
|
|
279
|
+
Return coefficients in the order of ``tlist`` without evaluation.
|
|
280
|
+
|
|
281
|
+
Returns:
|
|
282
|
+
list[PARAMETERIZED_NUMBER]: Coefficients aligned with ``tlist``.
|
|
283
|
+
"""
|
|
284
|
+
return list(self._time_dict.values())
|
|
285
|
+
|
|
286
|
+
@property
|
|
287
|
+
def coefficients_dict(self) -> dict[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER]:
|
|
288
|
+
"""
|
|
289
|
+
Return a shallow copy of the internal time-to-coefficient mapping.
|
|
290
|
+
|
|
291
|
+
Returns:
|
|
292
|
+
dict[PARAMETERIZED_NUMBER, PARAMETERIZED_NUMBER]: Mapping from time to coefficient expressions.
|
|
293
|
+
"""
|
|
294
|
+
return copy(self._time_dict)
|
|
295
|
+
|
|
296
|
+
@property
|
|
297
|
+
def fixed_coefficients(self) -> list[float]:
|
|
298
|
+
"""
|
|
299
|
+
Return coefficients evaluated to floats in the order of ``fixed_tlist``.
|
|
300
|
+
|
|
301
|
+
Returns:
|
|
302
|
+
list[float]: Evaluated coefficients.
|
|
303
|
+
"""
|
|
304
|
+
return [self._get_value(self[t]) for t in self.fixed_tlist]
|
|
305
|
+
|
|
306
|
+
@property
|
|
307
|
+
def parameters(self) -> dict[str, Parameter]:
|
|
308
|
+
"""
|
|
309
|
+
Return the parameters discovered while building the interpolator.
|
|
310
|
+
|
|
311
|
+
Returns:
|
|
312
|
+
dict[str, Parameter]: Parameters collected from time points and coefficients.
|
|
313
|
+
"""
|
|
314
|
+
return self._parameters
|
|
315
|
+
|
|
316
|
+
def set_max_time(self, max_time: PARAMETERIZED_NUMBER) -> None:
|
|
317
|
+
"""
|
|
318
|
+
Rescale all time points to a new maximum duration while keeping relative spacing.
|
|
319
|
+
|
|
320
|
+
Args:
|
|
321
|
+
max_time (PARAMETERIZED_NUMBER): Desired maximum time after rescaling.
|
|
322
|
+
|
|
323
|
+
Raises:
|
|
324
|
+
ValueError: If the max time is set to zero.
|
|
325
|
+
"""
|
|
326
|
+
if abs(self._get_value(max_time)) < get_settings().atol:
|
|
327
|
+
raise ValueError("Cannot set the max time to zero.")
|
|
328
|
+
self._delete_cache()
|
|
329
|
+
self._max_time = max_time
|
|
330
|
+
|
|
331
|
+
def _delete_cache(self) -> None:
|
|
332
|
+
"""Clear cached evaluations and derived lists."""
|
|
333
|
+
self._cached = False
|
|
334
|
+
self._total_time = None
|
|
335
|
+
self._cached_time = {}
|
|
336
|
+
self._tlist = None
|
|
337
|
+
self._fixed_tlist = None
|
|
338
|
+
self._time_scale_cache = None
|
|
339
|
+
|
|
340
|
+
def _get_value(self, value: PARAMETERIZED_NUMBER | complex, t: float | None = None) -> float:
|
|
341
|
+
"""
|
|
342
|
+
Evaluate a numeric, parameter, or term into a concrete float.
|
|
343
|
+
|
|
344
|
+
Args:
|
|
345
|
+
value (PARAMETERIZED_NUMBER | complex): Value or expression to evaluate.
|
|
346
|
+
t (float | None): Time value to bind when evaluating time-dependent expressions.
|
|
347
|
+
|
|
348
|
+
Returns:
|
|
349
|
+
float: Evaluated numeric value.
|
|
350
|
+
|
|
351
|
+
Raises:
|
|
352
|
+
ValueError: If evaluating a time parameter without a provided time, or an unsupported type is used.
|
|
353
|
+
"""
|
|
354
|
+
if isinstance(value, (int, float)):
|
|
355
|
+
return value
|
|
356
|
+
if isinstance(value, complex):
|
|
357
|
+
return value.real
|
|
358
|
+
if isinstance(value, Parameter):
|
|
359
|
+
if value.label == _TIME_PARAMETER_NAME:
|
|
360
|
+
if t is None:
|
|
361
|
+
raise ValueError("Can't evaluate Parameter because time is not provided.")
|
|
362
|
+
value.set_value(t)
|
|
363
|
+
return float(value.evaluate())
|
|
364
|
+
if isinstance(value, Term):
|
|
365
|
+
ctx: Mapping[BaseVariable, list[int] | int | float] = {self._current_time: t} if t is not None else {}
|
|
366
|
+
aux = value.evaluate(ctx)
|
|
367
|
+
|
|
368
|
+
return aux.real if isinstance(aux, complex) else float(aux)
|
|
369
|
+
raise ValueError(f"Invalid value of type {type(value)} is being evaluated.")
|
|
370
|
+
|
|
371
|
+
def _extract_parameters(self, element: PARAMETERIZED_NUMBER) -> None:
|
|
372
|
+
"""
|
|
373
|
+
Collect parameters from an element, ensuring only allowed variables are used.
|
|
374
|
+
|
|
375
|
+
Args:
|
|
376
|
+
element (PARAMETERIZED_NUMBER): Element to inspect for parameters.
|
|
377
|
+
|
|
378
|
+
Raises:
|
|
379
|
+
ValueError: If the element contains variables that are not parameters.
|
|
380
|
+
"""
|
|
381
|
+
if isinstance(element, Parameter) and element.label != _TIME_PARAMETER_NAME:
|
|
382
|
+
self._parameters[element.label] = element
|
|
383
|
+
elif isinstance(element, Term):
|
|
384
|
+
if not element.is_parameterized_term():
|
|
385
|
+
raise ValueError(
|
|
386
|
+
f"Tlist can only contain parameters and no variables, but the term {element} contains objects other than parameters."
|
|
387
|
+
)
|
|
388
|
+
for p in element.variables():
|
|
389
|
+
if isinstance(p, Parameter) and p.label != _TIME_PARAMETER_NAME:
|
|
390
|
+
self._parameters[p.label] = p
|
|
391
|
+
|
|
392
|
+
def add_time_point(
|
|
393
|
+
self,
|
|
394
|
+
time: PARAMETERIZED_NUMBER,
|
|
395
|
+
coefficient: PARAMETERIZED_NUMBER | Callable[..., PARAMETERIZED_NUMBER],
|
|
396
|
+
) -> None:
|
|
397
|
+
"""
|
|
398
|
+
Add or update a coefficient associated with a time point, processing callables if needed.
|
|
399
|
+
|
|
400
|
+
Args:
|
|
401
|
+
time (PARAMETERIZED_NUMBER): Time point for the coefficient.
|
|
402
|
+
coefficient (PARAMETERIZED_NUMBER | Callable[..., PARAMETERIZED_NUMBER]): Coefficient value or callable.
|
|
403
|
+
|
|
404
|
+
Raises:
|
|
405
|
+
ValueError: If the coefficient type is unsupported or the callable uses invalid variables.
|
|
406
|
+
"""
|
|
407
|
+
self._extract_parameters(time)
|
|
408
|
+
coeff = coefficient
|
|
409
|
+
if callable(coeff):
|
|
410
|
+
self._current_time.set_value(self._get_value(time))
|
|
411
|
+
coeff, _params = _process_callable(coeff, self._current_time) # ty:ignore[invalid-argument-type]
|
|
412
|
+
self._extract_parameters(coeff)
|
|
413
|
+
if len(_params) > 0:
|
|
414
|
+
self._parameters.update(_params)
|
|
415
|
+
elif isinstance(coeff, (int, float, Parameter, Term)):
|
|
416
|
+
self._extract_parameters(coeff)
|
|
417
|
+
else:
|
|
418
|
+
raise ValueError(
|
|
419
|
+
"Coefficient must be a number, Parameter, Term, or callable that returns one of these types."
|
|
420
|
+
)
|
|
421
|
+
self._time_dict[time / self._time_scale] = coeff
|
|
422
|
+
self._delete_cache()
|
|
423
|
+
|
|
424
|
+
def set_parameter_values(self, values: list[float]) -> None:
|
|
425
|
+
"""
|
|
426
|
+
Assign parameter values by position and clear caches.
|
|
427
|
+
|
|
428
|
+
Args:
|
|
429
|
+
values (list[float]): New values ordered consistently with ``get_parameter_names()``.
|
|
430
|
+
"""
|
|
431
|
+
self._delete_cache()
|
|
432
|
+
super().set_parameter_values(values)
|
|
433
|
+
|
|
434
|
+
def set_parameters(self, parameters: dict[str, int | float]) -> None:
|
|
435
|
+
"""
|
|
436
|
+
Assign parameter values by name and clear caches.
|
|
437
|
+
|
|
438
|
+
Args:
|
|
439
|
+
parameters (dict[str, int | float]): Mapping from parameter labels to numeric values.
|
|
440
|
+
"""
|
|
441
|
+
self._delete_cache()
|
|
442
|
+
super().set_parameters(parameters)
|
|
443
|
+
|
|
444
|
+
def set_parameter_bounds(self, ranges: dict[str, tuple[float, float]]) -> None:
|
|
445
|
+
"""
|
|
446
|
+
Update parameter bounds and clear caches.
|
|
447
|
+
|
|
448
|
+
Args:
|
|
449
|
+
ranges (dict[str, tuple[float, float]]): Bounds keyed by parameter label.
|
|
450
|
+
"""
|
|
451
|
+
self._delete_cache()
|
|
452
|
+
super().set_parameter_bounds(ranges)
|
|
453
|
+
|
|
454
|
+
def get_coefficient(self, time_step: float) -> float:
|
|
455
|
+
"""
|
|
456
|
+
Return the numeric coefficient at a given time, applying interpolation and scaling.
|
|
457
|
+
|
|
458
|
+
Args:
|
|
459
|
+
time_step (float): Time at which to evaluate the coefficient.
|
|
460
|
+
|
|
461
|
+
Returns:
|
|
462
|
+
float: Evaluated coefficient.
|
|
463
|
+
"""
|
|
464
|
+
time_step = time_step.item() if isinstance(time_step, np.generic) else self._get_value(time_step) # ty:ignore[invalid-assignment]
|
|
465
|
+
val = self.get_coefficient_expression(time_step=time_step)
|
|
466
|
+
|
|
467
|
+
if self._max_time is not None:
|
|
468
|
+
if self._tlist is None:
|
|
469
|
+
self._tlist = self._generate_tlist()
|
|
470
|
+
time_step /= self._time_scale
|
|
471
|
+
|
|
472
|
+
return self._get_value(val, time_step)
|
|
473
|
+
|
|
474
|
+
def get_coefficient_expression(self, time_step: float) -> Number | Term | Parameter:
|
|
475
|
+
"""
|
|
476
|
+
Return the raw expression for the coefficient at ``time_step`` without final evaluation.
|
|
477
|
+
|
|
478
|
+
Args:
|
|
479
|
+
time_step (float): Time at which to retrieve the coefficient expression.
|
|
480
|
+
|
|
481
|
+
Returns:
|
|
482
|
+
Number | Term | Parameter: Coefficient expression before numeric evaluation.
|
|
483
|
+
|
|
484
|
+
Raises:
|
|
485
|
+
ValueError: If the interpolation mode is unsupported or evaluation fails.
|
|
486
|
+
"""
|
|
487
|
+
time_step = time_step.item() if isinstance(time_step, np.generic) else self._get_value(time_step) # ty:ignore[invalid-assignment]
|
|
488
|
+
|
|
489
|
+
# generate the tlist
|
|
490
|
+
self._tlist = self._generate_tlist()
|
|
491
|
+
|
|
492
|
+
if time_step in self.fixed_tlist:
|
|
493
|
+
indx = self.fixed_tlist.index(time_step)
|
|
494
|
+
return self._time_dict[self._tlist[indx]]
|
|
495
|
+
if time_step in self._cached_time:
|
|
496
|
+
return self._cached_time[time_step]
|
|
497
|
+
|
|
498
|
+
if self._max_time is not None:
|
|
499
|
+
time_step /= self._time_scale
|
|
500
|
+
factor = self._time_scale_cache or 1.0
|
|
501
|
+
|
|
502
|
+
result = None
|
|
503
|
+
if self._interpolation is Interpolation.STEP:
|
|
504
|
+
result = self._get_coefficient_expression_step(time_step)
|
|
505
|
+
if self._interpolation is Interpolation.LINEAR:
|
|
506
|
+
result = self._get_coefficient_expression_linear(time_step)
|
|
507
|
+
|
|
508
|
+
if result is None:
|
|
509
|
+
raise ValueError(f"Interpolation type {self._interpolation.value} is not supported.")
|
|
510
|
+
self._cached_time[time_step * factor] = result
|
|
511
|
+
return result
|
|
512
|
+
|
|
513
|
+
def _get_coefficient_expression_step(self, time_step: float) -> Number | Term | Parameter:
|
|
514
|
+
"""
|
|
515
|
+
Return the step-interpolated coefficient expression for ``time_step``.
|
|
516
|
+
|
|
517
|
+
Args:
|
|
518
|
+
time_step (float): Time at which to retrieve the coefficient.
|
|
519
|
+
|
|
520
|
+
Returns:
|
|
521
|
+
Number | Term | Parameter: Coefficient expression for the previous time point.
|
|
522
|
+
"""
|
|
523
|
+
self._tlist = self._generate_tlist()
|
|
524
|
+
prev_indx = bisect_right(self._tlist, time_step, key=self._get_value) - 1
|
|
525
|
+
prev_indx = -1 if prev_indx >= len(self._tlist) else prev_indx
|
|
526
|
+
prev_time_step = self._tlist[prev_indx]
|
|
527
|
+
return self._time_dict[prev_time_step]
|
|
528
|
+
|
|
529
|
+
def _get_coefficient_expression_linear(self, time_step: float) -> Number | Term | Parameter:
|
|
530
|
+
"""
|
|
531
|
+
Return the linearly interpolated coefficient expression for ``time_step``.
|
|
532
|
+
|
|
533
|
+
Args:
|
|
534
|
+
time_step (float): Time at which to interpolate.
|
|
535
|
+
|
|
536
|
+
Returns:
|
|
537
|
+
Number | Term | Parameter: Coefficient expression interpolated between neighbor points.
|
|
538
|
+
|
|
539
|
+
Raises: # noqa: DOC502
|
|
540
|
+
ValueError: If two points share the same time or an unexpected interpolation state is reached.
|
|
541
|
+
"""
|
|
542
|
+
self._tlist = self._generate_tlist()
|
|
543
|
+
insert_pos = bisect_right(self._tlist, time_step, key=self._get_value)
|
|
544
|
+
|
|
545
|
+
def _linear_value(
|
|
546
|
+
t0: PARAMETERIZED_NUMBER, v0: PARAMETERIZED_NUMBER, t1: PARAMETERIZED_NUMBER, v1: PARAMETERIZED_NUMBER
|
|
547
|
+
) -> PARAMETERIZED_NUMBER:
|
|
548
|
+
t0_val = self._get_value(t0)
|
|
549
|
+
t1_val = self._get_value(t1)
|
|
550
|
+
if t0_val == t1_val:
|
|
551
|
+
raise ValueError(
|
|
552
|
+
f"Ambiguous evaluation: The same time step {t0_val} has two different coefficient assignation ({v0} and {v1})."
|
|
553
|
+
)
|
|
554
|
+
alpha: float = (time_step - t0_val) / (t1_val - t0_val)
|
|
555
|
+
next_is_term = isinstance(v1, (Term, Parameter))
|
|
556
|
+
prev_is_term = isinstance(v0, (Term, Parameter))
|
|
557
|
+
if next_is_term and prev_is_term and v1 != v0:
|
|
558
|
+
v1 = self._get_value(v1, t1_val)
|
|
559
|
+
v0 = self._get_value(v0, t0_val)
|
|
560
|
+
elif next_is_term and not prev_is_term:
|
|
561
|
+
v1 = self._get_value(v1, t1_val)
|
|
562
|
+
elif prev_is_term and not next_is_term:
|
|
563
|
+
v0 = self._get_value(v0, t0_val)
|
|
564
|
+
|
|
565
|
+
return v1 * alpha + v0 * (1 - alpha)
|
|
566
|
+
|
|
567
|
+
# this is done in order to prevent setting the indices to none and causing type errors
|
|
568
|
+
has_prev = insert_pos >= 1
|
|
569
|
+
has_next = insert_pos < len(self._tlist)
|
|
570
|
+
prev_idx = self._tlist[insert_pos - 1] if has_prev else 0
|
|
571
|
+
prev_expr = self._time_dict[prev_idx] if has_prev else 0
|
|
572
|
+
next_idx = self._tlist[insert_pos] if has_next else 0
|
|
573
|
+
next_expr = self._time_dict[next_idx] if has_next else 0
|
|
574
|
+
|
|
575
|
+
if not has_prev and has_next:
|
|
576
|
+
if len(self._tlist) == 1:
|
|
577
|
+
return next_expr
|
|
578
|
+
first_idx = self._tlist[0]
|
|
579
|
+
second_idx = self._tlist[1]
|
|
580
|
+
return _linear_value(first_idx, self._time_dict[first_idx], second_idx, self._time_dict[second_idx])
|
|
581
|
+
|
|
582
|
+
if not has_next and has_prev:
|
|
583
|
+
if len(self._tlist) == 1:
|
|
584
|
+
return prev_expr
|
|
585
|
+
last_idx = self._tlist[-1]
|
|
586
|
+
penultimate_idx = self._tlist[-2]
|
|
587
|
+
return _linear_value(penultimate_idx, self._time_dict[penultimate_idx], last_idx, self._time_dict[last_idx])
|
|
588
|
+
|
|
589
|
+
if not has_next and not has_prev:
|
|
590
|
+
return 0
|
|
591
|
+
|
|
592
|
+
# this can only be reached if both has_next and has_prev are true, meaning they will not be the default 0s
|
|
593
|
+
return _linear_value(prev_idx, prev_expr, next_idx, next_expr)
|
|
594
|
+
|
|
595
|
+
def __getitem__(self, time_step: float) -> float:
|
|
596
|
+
"""
|
|
597
|
+
Enable bracket access to coefficients: ``interp[t]``.
|
|
598
|
+
|
|
599
|
+
Args:
|
|
600
|
+
time_step (float): Time at which to evaluate the coefficient.
|
|
601
|
+
|
|
602
|
+
Returns:
|
|
603
|
+
float: Evaluated coefficient.
|
|
604
|
+
"""
|
|
605
|
+
return self.get_coefficient(time_step)
|
|
606
|
+
|
|
607
|
+
def __len__(self) -> int:
|
|
608
|
+
"""
|
|
609
|
+
Return the number of defined time points.
|
|
610
|
+
|
|
611
|
+
Returns:
|
|
612
|
+
int: Number of time points stored.
|
|
613
|
+
"""
|
|
614
|
+
return len(self.tlist)
|
|
615
|
+
|
|
616
|
+
def __iter__(self) -> "Interpolator":
|
|
617
|
+
"""
|
|
618
|
+
Return an iterator over evaluated coefficients in time order.
|
|
619
|
+
|
|
620
|
+
Returns:
|
|
621
|
+
Interpolator: Iterator over the instance.
|
|
622
|
+
"""
|
|
623
|
+
self.iter_time_step = 0
|
|
624
|
+
return self
|
|
625
|
+
|
|
626
|
+
def __next__(self) -> float:
|
|
627
|
+
"""
|
|
628
|
+
Iterate over evaluated coefficients across the schedule.
|
|
629
|
+
|
|
630
|
+
Returns:
|
|
631
|
+
float: Next coefficient in time order.
|
|
632
|
+
|
|
633
|
+
Raises:
|
|
634
|
+
StopIteration: When all coefficients have been iterated over.
|
|
635
|
+
"""
|
|
636
|
+
if self.iter_time_step < self.__len__():
|
|
637
|
+
result = self[self.fixed_tlist[self.iter_time_step]]
|
|
638
|
+
self.iter_time_step += 1
|
|
639
|
+
return result
|
|
640
|
+
raise StopIteration
|