pylibsparseir 0.1.0__cp312-cp312-macosx_15_0_arm64.whl → 0.6.0__cp312-cp312-macosx_15_0_arm64.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.
Potentially problematic release.
This version of pylibsparseir might be problematic. Click here for more details.
- 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
- pylibsparseir/__init__.py +31 -0
- pylibsparseir/clean_build_artifacts.py +0 -1
- pylibsparseir/core.py +178 -62
- pylibsparseir/libsparseir.dylib +0 -0
- pylibsparseir-0.6.0.dist-info/METADATA +213 -0
- pylibsparseir-0.6.0.dist-info/RECORD +545 -0
- {pylibsparseir-0.1.0.dist-info → pylibsparseir-0.6.0.dist-info}/WHEEL +1 -1
- pylibsparseir-0.6.0.dist-info/licenses/LICENSE +21 -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
- pylibsparseir/libsparseir.0.4.2.dylib +0 -0
- pylibsparseir/libsparseir.0.dylib +0 -0
- pylibsparseir-0.1.0.dist-info/METADATA +0 -130
- pylibsparseir-0.1.0.dist-info/RECORD +0 -12
- pylibsparseir-0.1.0.dist-info/entry_points.txt +0 -2
- pylibsparseir-0.1.0.dist-info/top_level.txt +0 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
namespace Eigen {
|
|
2
|
+
|
|
3
|
+
namespace internal {
|
|
4
|
+
|
|
5
|
+
// TODO : once qrsolv2 is removed, use ColPivHouseholderQR or PermutationMatrix instead of ipvt
|
|
6
|
+
template <typename Scalar>
|
|
7
|
+
void qrsolv(
|
|
8
|
+
Matrix< Scalar, Dynamic, Dynamic > &s,
|
|
9
|
+
// TODO : use a PermutationMatrix once lmpar is no more:
|
|
10
|
+
const VectorXi &ipvt,
|
|
11
|
+
const Matrix< Scalar, Dynamic, 1 > &diag,
|
|
12
|
+
const Matrix< Scalar, Dynamic, 1 > &qtb,
|
|
13
|
+
Matrix< Scalar, Dynamic, 1 > &x,
|
|
14
|
+
Matrix< Scalar, Dynamic, 1 > &sdiag)
|
|
15
|
+
|
|
16
|
+
{
|
|
17
|
+
typedef DenseIndex Index;
|
|
18
|
+
|
|
19
|
+
/* Local variables */
|
|
20
|
+
Index i, j, k, l;
|
|
21
|
+
Scalar temp;
|
|
22
|
+
Index n = s.cols();
|
|
23
|
+
Matrix< Scalar, Dynamic, 1 > wa(n);
|
|
24
|
+
JacobiRotation<Scalar> givens;
|
|
25
|
+
|
|
26
|
+
/* Function Body */
|
|
27
|
+
// the following will only change the lower triangular part of s, including
|
|
28
|
+
// the diagonal, though the diagonal is restored afterward
|
|
29
|
+
|
|
30
|
+
/* copy r and (q transpose)*b to preserve input and initialize s. */
|
|
31
|
+
/* in particular, save the diagonal elements of r in x. */
|
|
32
|
+
x = s.diagonal();
|
|
33
|
+
wa = qtb;
|
|
34
|
+
|
|
35
|
+
s.topLeftCorner(n,n).template triangularView<StrictlyLower>() = s.topLeftCorner(n,n).transpose();
|
|
36
|
+
|
|
37
|
+
/* eliminate the diagonal matrix d using a givens rotation. */
|
|
38
|
+
for (j = 0; j < n; ++j) {
|
|
39
|
+
|
|
40
|
+
/* prepare the row of d to be eliminated, locating the */
|
|
41
|
+
/* diagonal element using p from the qr factorization. */
|
|
42
|
+
l = ipvt[j];
|
|
43
|
+
if (diag[l] == 0.)
|
|
44
|
+
break;
|
|
45
|
+
sdiag.tail(n-j).setZero();
|
|
46
|
+
sdiag[j] = diag[l];
|
|
47
|
+
|
|
48
|
+
/* the transformations to eliminate the row of d */
|
|
49
|
+
/* modify only a single element of (q transpose)*b */
|
|
50
|
+
/* beyond the first n, which is initially zero. */
|
|
51
|
+
Scalar qtbpj = 0.;
|
|
52
|
+
for (k = j; k < n; ++k) {
|
|
53
|
+
/* determine a givens rotation which eliminates the */
|
|
54
|
+
/* appropriate element in the current row of d. */
|
|
55
|
+
givens.makeGivens(-s(k,k), sdiag[k]);
|
|
56
|
+
|
|
57
|
+
/* compute the modified diagonal element of r and */
|
|
58
|
+
/* the modified element of ((q transpose)*b,0). */
|
|
59
|
+
s(k,k) = givens.c() * s(k,k) + givens.s() * sdiag[k];
|
|
60
|
+
temp = givens.c() * wa[k] + givens.s() * qtbpj;
|
|
61
|
+
qtbpj = -givens.s() * wa[k] + givens.c() * qtbpj;
|
|
62
|
+
wa[k] = temp;
|
|
63
|
+
|
|
64
|
+
/* accumulate the transformation in the row of s. */
|
|
65
|
+
for (i = k+1; i<n; ++i) {
|
|
66
|
+
temp = givens.c() * s(i,k) + givens.s() * sdiag[i];
|
|
67
|
+
sdiag[i] = -givens.s() * s(i,k) + givens.c() * sdiag[i];
|
|
68
|
+
s(i,k) = temp;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* solve the triangular system for z. if the system is */
|
|
74
|
+
/* singular, then obtain a least squares solution. */
|
|
75
|
+
Index nsing;
|
|
76
|
+
for(nsing=0; nsing<n && sdiag[nsing]!=0; nsing++) {}
|
|
77
|
+
|
|
78
|
+
wa.tail(n-nsing).setZero();
|
|
79
|
+
s.topLeftCorner(nsing, nsing).transpose().template triangularView<Upper>().solveInPlace(wa.head(nsing));
|
|
80
|
+
|
|
81
|
+
// restore
|
|
82
|
+
sdiag = s.diagonal();
|
|
83
|
+
s.diagonal() = x;
|
|
84
|
+
|
|
85
|
+
/* permute the components of z back to components of x. */
|
|
86
|
+
for (j = 0; j < n; ++j) x[ipvt[j]] = wa[j];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
} // end namespace internal
|
|
90
|
+
|
|
91
|
+
} // end namespace Eigen
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
namespace Eigen {
|
|
2
|
+
|
|
3
|
+
namespace internal {
|
|
4
|
+
|
|
5
|
+
// TODO : move this to GivensQR once there's such a thing in Eigen
|
|
6
|
+
|
|
7
|
+
template <typename Scalar>
|
|
8
|
+
void r1mpyq(DenseIndex m, DenseIndex n, Scalar *a, const std::vector<JacobiRotation<Scalar> > &v_givens, const std::vector<JacobiRotation<Scalar> > &w_givens)
|
|
9
|
+
{
|
|
10
|
+
typedef DenseIndex Index;
|
|
11
|
+
|
|
12
|
+
/* apply the first set of givens rotations to a. */
|
|
13
|
+
for (Index j = n-2; j>=0; --j)
|
|
14
|
+
for (Index i = 0; i<m; ++i) {
|
|
15
|
+
Scalar temp = v_givens[j].c() * a[i+m*j] - v_givens[j].s() * a[i+m*(n-1)];
|
|
16
|
+
a[i+m*(n-1)] = v_givens[j].s() * a[i+m*j] + v_givens[j].c() * a[i+m*(n-1)];
|
|
17
|
+
a[i+m*j] = temp;
|
|
18
|
+
}
|
|
19
|
+
/* apply the second set of givens rotations to a. */
|
|
20
|
+
for (Index j = 0; j<n-1; ++j)
|
|
21
|
+
for (Index i = 0; i<m; ++i) {
|
|
22
|
+
Scalar temp = w_givens[j].c() * a[i+m*j] + w_givens[j].s() * a[i+m*(n-1)];
|
|
23
|
+
a[i+m*(n-1)] = -w_givens[j].s() * a[i+m*j] + w_givens[j].c() * a[i+m*(n-1)];
|
|
24
|
+
a[i+m*j] = temp;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
} // end namespace internal
|
|
29
|
+
|
|
30
|
+
} // end namespace Eigen
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
namespace Eigen {
|
|
2
|
+
|
|
3
|
+
namespace internal {
|
|
4
|
+
|
|
5
|
+
template <typename Scalar>
|
|
6
|
+
void r1updt(
|
|
7
|
+
Matrix< Scalar, Dynamic, Dynamic > &s,
|
|
8
|
+
const Matrix< Scalar, Dynamic, 1> &u,
|
|
9
|
+
std::vector<JacobiRotation<Scalar> > &v_givens,
|
|
10
|
+
std::vector<JacobiRotation<Scalar> > &w_givens,
|
|
11
|
+
Matrix< Scalar, Dynamic, 1> &v,
|
|
12
|
+
Matrix< Scalar, Dynamic, 1> &w,
|
|
13
|
+
bool *sing)
|
|
14
|
+
{
|
|
15
|
+
typedef DenseIndex Index;
|
|
16
|
+
const JacobiRotation<Scalar> IdentityRotation = JacobiRotation<Scalar>(1,0);
|
|
17
|
+
|
|
18
|
+
/* Local variables */
|
|
19
|
+
const Index m = s.rows();
|
|
20
|
+
const Index n = s.cols();
|
|
21
|
+
Index i, j=1;
|
|
22
|
+
Scalar temp;
|
|
23
|
+
JacobiRotation<Scalar> givens;
|
|
24
|
+
|
|
25
|
+
// r1updt had a broader usecase, but we don't use it here. And, more
|
|
26
|
+
// importantly, we can not test it.
|
|
27
|
+
eigen_assert(m==n);
|
|
28
|
+
eigen_assert(u.size()==m);
|
|
29
|
+
eigen_assert(v.size()==n);
|
|
30
|
+
eigen_assert(w.size()==n);
|
|
31
|
+
|
|
32
|
+
/* move the nontrivial part of the last column of s into w. */
|
|
33
|
+
w[n-1] = s(n-1,n-1);
|
|
34
|
+
|
|
35
|
+
/* rotate the vector v into a multiple of the n-th unit vector */
|
|
36
|
+
/* in such a way that a spike is introduced into w. */
|
|
37
|
+
for (j=n-2; j>=0; --j) {
|
|
38
|
+
w[j] = 0.;
|
|
39
|
+
if (v[j] != 0.) {
|
|
40
|
+
/* determine a givens rotation which eliminates the */
|
|
41
|
+
/* j-th element of v. */
|
|
42
|
+
givens.makeGivens(-v[n-1], v[j]);
|
|
43
|
+
|
|
44
|
+
/* apply the transformation to v and store the information */
|
|
45
|
+
/* necessary to recover the givens rotation. */
|
|
46
|
+
v[n-1] = givens.s() * v[j] + givens.c() * v[n-1];
|
|
47
|
+
v_givens[j] = givens;
|
|
48
|
+
|
|
49
|
+
/* apply the transformation to s and extend the spike in w. */
|
|
50
|
+
for (i = j; i < m; ++i) {
|
|
51
|
+
temp = givens.c() * s(j,i) - givens.s() * w[i];
|
|
52
|
+
w[i] = givens.s() * s(j,i) + givens.c() * w[i];
|
|
53
|
+
s(j,i) = temp;
|
|
54
|
+
}
|
|
55
|
+
} else
|
|
56
|
+
v_givens[j] = IdentityRotation;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* add the spike from the rank 1 update to w. */
|
|
60
|
+
w += v[n-1] * u;
|
|
61
|
+
|
|
62
|
+
/* eliminate the spike. */
|
|
63
|
+
*sing = false;
|
|
64
|
+
for (j = 0; j < n-1; ++j) {
|
|
65
|
+
if (w[j] != 0.) {
|
|
66
|
+
/* determine a givens rotation which eliminates the */
|
|
67
|
+
/* j-th element of the spike. */
|
|
68
|
+
givens.makeGivens(-s(j,j), w[j]);
|
|
69
|
+
|
|
70
|
+
/* apply the transformation to s and reduce the spike in w. */
|
|
71
|
+
for (i = j; i < m; ++i) {
|
|
72
|
+
temp = givens.c() * s(j,i) + givens.s() * w[i];
|
|
73
|
+
w[i] = -givens.s() * s(j,i) + givens.c() * w[i];
|
|
74
|
+
s(j,i) = temp;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* store the information necessary to recover the */
|
|
78
|
+
/* givens rotation. */
|
|
79
|
+
w_givens[j] = givens;
|
|
80
|
+
} else
|
|
81
|
+
v_givens[j] = IdentityRotation;
|
|
82
|
+
|
|
83
|
+
/* test for zero diagonal elements in the output s. */
|
|
84
|
+
if (s(j,j) == 0.) {
|
|
85
|
+
*sing = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/* move w back into the last column of the output s. */
|
|
89
|
+
s(n-1,n-1) = w[n-1];
|
|
90
|
+
|
|
91
|
+
if (s(j,j) == 0.) {
|
|
92
|
+
*sing = true;
|
|
93
|
+
}
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
} // end namespace internal
|
|
98
|
+
|
|
99
|
+
} // end namespace Eigen
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
namespace Eigen {
|
|
2
|
+
|
|
3
|
+
namespace internal {
|
|
4
|
+
|
|
5
|
+
template <typename Scalar>
|
|
6
|
+
void rwupdt(
|
|
7
|
+
Matrix< Scalar, Dynamic, Dynamic > &r,
|
|
8
|
+
const Matrix< Scalar, Dynamic, 1> &w,
|
|
9
|
+
Matrix< Scalar, Dynamic, 1> &b,
|
|
10
|
+
Scalar alpha)
|
|
11
|
+
{
|
|
12
|
+
typedef DenseIndex Index;
|
|
13
|
+
|
|
14
|
+
const Index n = r.cols();
|
|
15
|
+
eigen_assert(r.rows()>=n);
|
|
16
|
+
std::vector<JacobiRotation<Scalar> > givens(n);
|
|
17
|
+
|
|
18
|
+
/* Local variables */
|
|
19
|
+
Scalar temp, rowj;
|
|
20
|
+
|
|
21
|
+
/* Function Body */
|
|
22
|
+
for (Index j = 0; j < n; ++j) {
|
|
23
|
+
rowj = w[j];
|
|
24
|
+
|
|
25
|
+
/* apply the previous transformations to */
|
|
26
|
+
/* r(i,j), i=0,1,...,j-1, and to w(j). */
|
|
27
|
+
for (Index i = 0; i < j; ++i) {
|
|
28
|
+
temp = givens[i].c() * r(i,j) + givens[i].s() * rowj;
|
|
29
|
+
rowj = -givens[i].s() * r(i,j) + givens[i].c() * rowj;
|
|
30
|
+
r(i,j) = temp;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* determine a givens rotation which eliminates w(j). */
|
|
34
|
+
givens[j].makeGivens(-r(j,j), rowj);
|
|
35
|
+
|
|
36
|
+
if (rowj == 0.)
|
|
37
|
+
continue; // givens[j] is identity
|
|
38
|
+
|
|
39
|
+
/* apply the current transformation to r(j,j), b(j), and alpha. */
|
|
40
|
+
r(j,j) = givens[j].c() * r(j,j) + givens[j].s() * rowj;
|
|
41
|
+
temp = givens[j].c() * b[j] + givens[j].s() * alpha;
|
|
42
|
+
alpha = -givens[j].s() * b[j] + givens[j].c() * alpha;
|
|
43
|
+
b[j] = temp;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
} // end namespace internal
|
|
48
|
+
|
|
49
|
+
} // end namespace Eigen
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// -*- coding: utf-8
|
|
2
|
+
// vim: set fileencoding=utf-8
|
|
3
|
+
|
|
4
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
5
|
+
// for linear algebra.
|
|
6
|
+
//
|
|
7
|
+
// Copyright (C) 2009 Thomas Capricelli <orzel@freehackers.org>
|
|
8
|
+
//
|
|
9
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
10
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
11
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
12
|
+
|
|
13
|
+
#ifndef EIGEN_NUMERICAL_DIFF_H
|
|
14
|
+
#define EIGEN_NUMERICAL_DIFF_H
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
enum NumericalDiffMode {
|
|
19
|
+
Forward,
|
|
20
|
+
Central
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* This class allows you to add a method df() to your functor, which will
|
|
26
|
+
* use numerical differentiation to compute an approximate of the
|
|
27
|
+
* derivative for the functor. Of course, if you have an analytical form
|
|
28
|
+
* for the derivative, you should rather implement df() by yourself.
|
|
29
|
+
*
|
|
30
|
+
* More information on
|
|
31
|
+
* http://en.wikipedia.org/wiki/Numerical_differentiation
|
|
32
|
+
*
|
|
33
|
+
* Currently only "Forward" and "Central" scheme are implemented.
|
|
34
|
+
*/
|
|
35
|
+
template<typename _Functor, NumericalDiffMode mode=Forward>
|
|
36
|
+
class NumericalDiff : public _Functor
|
|
37
|
+
{
|
|
38
|
+
public:
|
|
39
|
+
typedef _Functor Functor;
|
|
40
|
+
typedef typename Functor::Scalar Scalar;
|
|
41
|
+
typedef typename Functor::InputType InputType;
|
|
42
|
+
typedef typename Functor::ValueType ValueType;
|
|
43
|
+
typedef typename Functor::JacobianType JacobianType;
|
|
44
|
+
|
|
45
|
+
NumericalDiff(Scalar _epsfcn=0.) : Functor(), epsfcn(_epsfcn) {}
|
|
46
|
+
NumericalDiff(const Functor& f, Scalar _epsfcn=0.) : Functor(f), epsfcn(_epsfcn) {}
|
|
47
|
+
|
|
48
|
+
// forward constructors
|
|
49
|
+
template<typename T0>
|
|
50
|
+
NumericalDiff(const T0& a0) : Functor(a0), epsfcn(0) {}
|
|
51
|
+
template<typename T0, typename T1>
|
|
52
|
+
NumericalDiff(const T0& a0, const T1& a1) : Functor(a0, a1), epsfcn(0) {}
|
|
53
|
+
template<typename T0, typename T1, typename T2>
|
|
54
|
+
NumericalDiff(const T0& a0, const T1& a1, const T2& a2) : Functor(a0, a1, a2), epsfcn(0) {}
|
|
55
|
+
|
|
56
|
+
enum {
|
|
57
|
+
InputsAtCompileTime = Functor::InputsAtCompileTime,
|
|
58
|
+
ValuesAtCompileTime = Functor::ValuesAtCompileTime
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* return the number of evaluation of functor
|
|
63
|
+
*/
|
|
64
|
+
int df(const InputType& _x, JacobianType &jac) const
|
|
65
|
+
{
|
|
66
|
+
using std::sqrt;
|
|
67
|
+
using std::abs;
|
|
68
|
+
/* Local variables */
|
|
69
|
+
Scalar h;
|
|
70
|
+
int nfev=0;
|
|
71
|
+
const typename InputType::Index n = _x.size();
|
|
72
|
+
const Scalar eps = sqrt(((std::max)(epsfcn,NumTraits<Scalar>::epsilon() )));
|
|
73
|
+
ValueType val1, val2;
|
|
74
|
+
InputType x = _x;
|
|
75
|
+
// TODO : we should do this only if the size is not already known
|
|
76
|
+
val1.resize(Functor::values());
|
|
77
|
+
val2.resize(Functor::values());
|
|
78
|
+
|
|
79
|
+
// initialization
|
|
80
|
+
switch(mode) {
|
|
81
|
+
case Forward:
|
|
82
|
+
// compute f(x)
|
|
83
|
+
Functor::operator()(x, val1); nfev++;
|
|
84
|
+
break;
|
|
85
|
+
case Central:
|
|
86
|
+
// do nothing
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
eigen_assert(false);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
// Function Body
|
|
93
|
+
for (int j = 0; j < n; ++j) {
|
|
94
|
+
h = eps * abs(x[j]);
|
|
95
|
+
if (h == 0.) {
|
|
96
|
+
h = eps;
|
|
97
|
+
}
|
|
98
|
+
switch(mode) {
|
|
99
|
+
case Forward:
|
|
100
|
+
x[j] += h;
|
|
101
|
+
Functor::operator()(x, val2);
|
|
102
|
+
nfev++;
|
|
103
|
+
x[j] = _x[j];
|
|
104
|
+
jac.col(j) = (val2-val1)/h;
|
|
105
|
+
break;
|
|
106
|
+
case Central:
|
|
107
|
+
x[j] += h;
|
|
108
|
+
Functor::operator()(x, val2); nfev++;
|
|
109
|
+
x[j] -= 2*h;
|
|
110
|
+
Functor::operator()(x, val1); nfev++;
|
|
111
|
+
x[j] = _x[j];
|
|
112
|
+
jac.col(j) = (val2-val1)/(2*h);
|
|
113
|
+
break;
|
|
114
|
+
default:
|
|
115
|
+
eigen_assert(false);
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return nfev;
|
|
119
|
+
}
|
|
120
|
+
private:
|
|
121
|
+
Scalar epsfcn;
|
|
122
|
+
|
|
123
|
+
NumericalDiff& operator=(const NumericalDiff&);
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
} // end namespace Eigen
|
|
127
|
+
|
|
128
|
+
//vim: ai ts=4 sts=4 et sw=4
|
|
129
|
+
#endif // EIGEN_NUMERICAL_DIFF_H
|
|
130
|
+
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2010 Manuel Yguel <manuel.yguel@gmail.com>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_COMPANION_H
|
|
11
|
+
#define EIGEN_COMPANION_H
|
|
12
|
+
|
|
13
|
+
// This file requires the user to include
|
|
14
|
+
// * Eigen/Core
|
|
15
|
+
// * Eigen/src/PolynomialSolver.h
|
|
16
|
+
|
|
17
|
+
namespace Eigen {
|
|
18
|
+
|
|
19
|
+
namespace internal {
|
|
20
|
+
|
|
21
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
22
|
+
|
|
23
|
+
template<int Size>
|
|
24
|
+
struct decrement_if_fixed_size
|
|
25
|
+
{
|
|
26
|
+
enum {
|
|
27
|
+
ret = (Size == Dynamic) ? Dynamic : Size-1 };
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
#endif
|
|
31
|
+
|
|
32
|
+
template< typename _Scalar, int _Deg >
|
|
33
|
+
class companion
|
|
34
|
+
{
|
|
35
|
+
public:
|
|
36
|
+
EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Deg==Dynamic ? Dynamic : _Deg)
|
|
37
|
+
|
|
38
|
+
enum {
|
|
39
|
+
Deg = _Deg,
|
|
40
|
+
Deg_1=decrement_if_fixed_size<Deg>::ret
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
typedef _Scalar Scalar;
|
|
44
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
|
45
|
+
typedef Matrix<Scalar, Deg, 1> RightColumn;
|
|
46
|
+
//typedef DiagonalMatrix< Scalar, Deg_1, Deg_1 > BottomLeftDiagonal;
|
|
47
|
+
typedef Matrix<Scalar, Deg_1, 1> BottomLeftDiagonal;
|
|
48
|
+
|
|
49
|
+
typedef Matrix<Scalar, Deg, Deg> DenseCompanionMatrixType;
|
|
50
|
+
typedef Matrix< Scalar, _Deg, Deg_1 > LeftBlock;
|
|
51
|
+
typedef Matrix< Scalar, Deg_1, Deg_1 > BottomLeftBlock;
|
|
52
|
+
typedef Matrix< Scalar, 1, Deg_1 > LeftBlockFirstRow;
|
|
53
|
+
|
|
54
|
+
typedef DenseIndex Index;
|
|
55
|
+
|
|
56
|
+
public:
|
|
57
|
+
EIGEN_STRONG_INLINE const _Scalar operator()(Index row, Index col ) const
|
|
58
|
+
{
|
|
59
|
+
if( m_bl_diag.rows() > col )
|
|
60
|
+
{
|
|
61
|
+
if( 0 < row ){ return m_bl_diag[col]; }
|
|
62
|
+
else{ return 0; }
|
|
63
|
+
}
|
|
64
|
+
else{ return m_monic[row]; }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
public:
|
|
68
|
+
template<typename VectorType>
|
|
69
|
+
void setPolynomial( const VectorType& poly )
|
|
70
|
+
{
|
|
71
|
+
const Index deg = poly.size()-1;
|
|
72
|
+
m_monic = -poly.head(deg)/poly[deg];
|
|
73
|
+
m_bl_diag.setOnes(deg-1);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
template<typename VectorType>
|
|
77
|
+
companion( const VectorType& poly ){
|
|
78
|
+
setPolynomial( poly ); }
|
|
79
|
+
|
|
80
|
+
public:
|
|
81
|
+
DenseCompanionMatrixType denseMatrix() const
|
|
82
|
+
{
|
|
83
|
+
const Index deg = m_monic.size();
|
|
84
|
+
const Index deg_1 = deg-1;
|
|
85
|
+
DenseCompanionMatrixType companMat(deg,deg);
|
|
86
|
+
companMat <<
|
|
87
|
+
( LeftBlock(deg,deg_1)
|
|
88
|
+
<< LeftBlockFirstRow::Zero(1,deg_1),
|
|
89
|
+
BottomLeftBlock::Identity(deg-1,deg-1)*m_bl_diag.asDiagonal() ).finished()
|
|
90
|
+
, m_monic;
|
|
91
|
+
return companMat;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
protected:
|
|
97
|
+
/** Helper function for the balancing algorithm.
|
|
98
|
+
* \returns true if the row and the column, having colNorm and rowNorm
|
|
99
|
+
* as norms, are balanced, false otherwise.
|
|
100
|
+
* colB and rowB are respectively the multipliers for
|
|
101
|
+
* the column and the row in order to balance them.
|
|
102
|
+
* */
|
|
103
|
+
bool balanced( RealScalar colNorm, RealScalar rowNorm,
|
|
104
|
+
bool& isBalanced, RealScalar& colB, RealScalar& rowB );
|
|
105
|
+
|
|
106
|
+
/** Helper function for the balancing algorithm.
|
|
107
|
+
* \returns true if the row and the column, having colNorm and rowNorm
|
|
108
|
+
* as norms, are balanced, false otherwise.
|
|
109
|
+
* colB and rowB are respectively the multipliers for
|
|
110
|
+
* the column and the row in order to balance them.
|
|
111
|
+
* */
|
|
112
|
+
bool balancedR( RealScalar colNorm, RealScalar rowNorm,
|
|
113
|
+
bool& isBalanced, RealScalar& colB, RealScalar& rowB );
|
|
114
|
+
|
|
115
|
+
public:
|
|
116
|
+
/**
|
|
117
|
+
* Balancing algorithm from B. N. PARLETT and C. REINSCH (1969)
|
|
118
|
+
* "Balancing a matrix for calculation of eigenvalues and eigenvectors"
|
|
119
|
+
* adapted to the case of companion matrices.
|
|
120
|
+
* A matrix with non zero row and non zero column is balanced
|
|
121
|
+
* for a certain norm if the i-th row and the i-th column
|
|
122
|
+
* have same norm for all i.
|
|
123
|
+
*/
|
|
124
|
+
void balance();
|
|
125
|
+
|
|
126
|
+
protected:
|
|
127
|
+
RightColumn m_monic;
|
|
128
|
+
BottomLeftDiagonal m_bl_diag;
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
template< typename _Scalar, int _Deg >
|
|
134
|
+
inline
|
|
135
|
+
bool companion<_Scalar,_Deg>::balanced( RealScalar colNorm, RealScalar rowNorm,
|
|
136
|
+
bool& isBalanced, RealScalar& colB, RealScalar& rowB )
|
|
137
|
+
{
|
|
138
|
+
if( RealScalar(0) == colNorm || RealScalar(0) == rowNorm
|
|
139
|
+
|| !(numext::isfinite)(colNorm) || !(numext::isfinite)(rowNorm)){
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
else
|
|
143
|
+
{
|
|
144
|
+
//To find the balancing coefficients, if the radix is 2,
|
|
145
|
+
//one finds \f$ \sigma \f$ such that
|
|
146
|
+
// \f$ 2^{2\sigma-1} < rowNorm / colNorm \le 2^{2\sigma+1} \f$
|
|
147
|
+
// then the balancing coefficient for the row is \f$ 1/2^{\sigma} \f$
|
|
148
|
+
// and the balancing coefficient for the column is \f$ 2^{\sigma} \f$
|
|
149
|
+
const RealScalar radix = RealScalar(2);
|
|
150
|
+
const RealScalar radix2 = RealScalar(4);
|
|
151
|
+
|
|
152
|
+
rowB = rowNorm / radix;
|
|
153
|
+
colB = RealScalar(1);
|
|
154
|
+
const RealScalar s = colNorm + rowNorm;
|
|
155
|
+
|
|
156
|
+
// Find sigma s.t. rowNorm / 2 <= 2^(2*sigma) * colNorm
|
|
157
|
+
RealScalar scout = colNorm;
|
|
158
|
+
while (scout < rowB)
|
|
159
|
+
{
|
|
160
|
+
colB *= radix;
|
|
161
|
+
scout *= radix2;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// We now have an upper-bound for sigma, try to lower it.
|
|
165
|
+
// Find sigma s.t. 2^(2*sigma) * colNorm / 2 < rowNorm
|
|
166
|
+
scout = colNorm * (colB / radix) * colB; // Avoid overflow.
|
|
167
|
+
while (scout >= rowNorm)
|
|
168
|
+
{
|
|
169
|
+
colB /= radix;
|
|
170
|
+
scout /= radix2;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
// This line is used to avoid insubstantial balancing.
|
|
174
|
+
if ((rowNorm + radix * scout) < RealScalar(0.95) * s * colB)
|
|
175
|
+
{
|
|
176
|
+
isBalanced = false;
|
|
177
|
+
rowB = RealScalar(1) / colB;
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
else
|
|
181
|
+
{
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
template< typename _Scalar, int _Deg >
|
|
188
|
+
inline
|
|
189
|
+
bool companion<_Scalar,_Deg>::balancedR( RealScalar colNorm, RealScalar rowNorm,
|
|
190
|
+
bool& isBalanced, RealScalar& colB, RealScalar& rowB )
|
|
191
|
+
{
|
|
192
|
+
if( RealScalar(0) == colNorm || RealScalar(0) == rowNorm ){ return true; }
|
|
193
|
+
else
|
|
194
|
+
{
|
|
195
|
+
/**
|
|
196
|
+
* Set the norm of the column and the row to the geometric mean
|
|
197
|
+
* of the row and column norm
|
|
198
|
+
*/
|
|
199
|
+
const RealScalar q = colNorm/rowNorm;
|
|
200
|
+
if( !isApprox( q, _Scalar(1) ) )
|
|
201
|
+
{
|
|
202
|
+
rowB = sqrt( colNorm/rowNorm );
|
|
203
|
+
colB = RealScalar(1)/rowB;
|
|
204
|
+
|
|
205
|
+
isBalanced = false;
|
|
206
|
+
return false;
|
|
207
|
+
}
|
|
208
|
+
else{
|
|
209
|
+
return true; }
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
template< typename _Scalar, int _Deg >
|
|
215
|
+
void companion<_Scalar,_Deg>::balance()
|
|
216
|
+
{
|
|
217
|
+
using std::abs;
|
|
218
|
+
EIGEN_STATIC_ASSERT( Deg == Dynamic || 1 < Deg, YOU_MADE_A_PROGRAMMING_MISTAKE );
|
|
219
|
+
const Index deg = m_monic.size();
|
|
220
|
+
const Index deg_1 = deg-1;
|
|
221
|
+
|
|
222
|
+
bool hasConverged=false;
|
|
223
|
+
while( !hasConverged )
|
|
224
|
+
{
|
|
225
|
+
hasConverged = true;
|
|
226
|
+
RealScalar colNorm,rowNorm;
|
|
227
|
+
RealScalar colB,rowB;
|
|
228
|
+
|
|
229
|
+
//First row, first column excluding the diagonal
|
|
230
|
+
//==============================================
|
|
231
|
+
colNorm = abs(m_bl_diag[0]);
|
|
232
|
+
rowNorm = abs(m_monic[0]);
|
|
233
|
+
|
|
234
|
+
//Compute balancing of the row and the column
|
|
235
|
+
if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
|
|
236
|
+
{
|
|
237
|
+
m_bl_diag[0] *= colB;
|
|
238
|
+
m_monic[0] *= rowB;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
//Middle rows and columns excluding the diagonal
|
|
242
|
+
//==============================================
|
|
243
|
+
for( Index i=1; i<deg_1; ++i )
|
|
244
|
+
{
|
|
245
|
+
// column norm, excluding the diagonal
|
|
246
|
+
colNorm = abs(m_bl_diag[i]);
|
|
247
|
+
|
|
248
|
+
// row norm, excluding the diagonal
|
|
249
|
+
rowNorm = abs(m_bl_diag[i-1]) + abs(m_monic[i]);
|
|
250
|
+
|
|
251
|
+
//Compute balancing of the row and the column
|
|
252
|
+
if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
|
|
253
|
+
{
|
|
254
|
+
m_bl_diag[i] *= colB;
|
|
255
|
+
m_bl_diag[i-1] *= rowB;
|
|
256
|
+
m_monic[i] *= rowB;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
//Last row, last column excluding the diagonal
|
|
261
|
+
//============================================
|
|
262
|
+
const Index ebl = m_bl_diag.size()-1;
|
|
263
|
+
VectorBlock<RightColumn,Deg_1> headMonic( m_monic, 0, deg_1 );
|
|
264
|
+
colNorm = headMonic.array().abs().sum();
|
|
265
|
+
rowNorm = abs( m_bl_diag[ebl] );
|
|
266
|
+
|
|
267
|
+
//Compute balancing of the row and the column
|
|
268
|
+
if( !balanced( colNorm, rowNorm, hasConverged, colB, rowB ) )
|
|
269
|
+
{
|
|
270
|
+
headMonic *= colB;
|
|
271
|
+
m_bl_diag[ebl] *= rowB;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
} // end namespace internal
|
|
277
|
+
|
|
278
|
+
} // end namespace Eigen
|
|
279
|
+
|
|
280
|
+
#endif // EIGEN_COMPANION_H
|