pylibsparseir 0.1.0__cp313-cp313-macosx_15_0_arm64.whl → 0.5.2__cp313-cp313-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 +160 -45
- pylibsparseir/libsparseir.dylib +0 -0
- pylibsparseir-0.5.2.dist-info/METADATA +215 -0
- pylibsparseir-0.5.2.dist-info/RECORD +545 -0
- {pylibsparseir-0.1.0.dist-info → pylibsparseir-0.5.2.dist-info}/WHEEL +1 -1
- pylibsparseir-0.5.2.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,255 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2011, Intel Corporation. All rights reserved.
|
|
3
|
+
|
|
4
|
+
Redistribution and use in source and binary forms, with or without modification,
|
|
5
|
+
are permitted provided that the following conditions are met:
|
|
6
|
+
|
|
7
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
8
|
+
list of conditions and the following disclaimer.
|
|
9
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
10
|
+
this list of conditions and the following disclaimer in the documentation
|
|
11
|
+
and/or other materials provided with the distribution.
|
|
12
|
+
* Neither the name of Intel Corporation nor the names of its contributors may
|
|
13
|
+
be used to endorse or promote products derived from this software without
|
|
14
|
+
specific prior written permission.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
17
|
+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
18
|
+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
19
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
20
|
+
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
21
|
+
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
22
|
+
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
23
|
+
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
24
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
25
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
26
|
+
|
|
27
|
+
********************************************************************************
|
|
28
|
+
* Content : Eigen bindings to BLAS F77
|
|
29
|
+
* Triangular matrix-vector product functionality based on ?TRMV.
|
|
30
|
+
********************************************************************************
|
|
31
|
+
*/
|
|
32
|
+
|
|
33
|
+
#ifndef EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
|
|
34
|
+
#define EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
|
|
35
|
+
|
|
36
|
+
namespace Eigen {
|
|
37
|
+
|
|
38
|
+
namespace internal {
|
|
39
|
+
|
|
40
|
+
/**********************************************************************
|
|
41
|
+
* This file implements triangular matrix-vector multiplication using BLAS
|
|
42
|
+
**********************************************************************/
|
|
43
|
+
|
|
44
|
+
// trmv/hemv specialization
|
|
45
|
+
|
|
46
|
+
template<typename Index, int Mode, typename LhsScalar, bool ConjLhs, typename RhsScalar, bool ConjRhs, int StorageOrder>
|
|
47
|
+
struct triangular_matrix_vector_product_trmv :
|
|
48
|
+
triangular_matrix_vector_product<Index,Mode,LhsScalar,ConjLhs,RhsScalar,ConjRhs,StorageOrder,BuiltIn> {};
|
|
49
|
+
|
|
50
|
+
#define EIGEN_BLAS_TRMV_SPECIALIZE(Scalar) \
|
|
51
|
+
template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
|
|
52
|
+
struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor,Specialized> { \
|
|
53
|
+
static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
|
|
54
|
+
const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
|
|
55
|
+
triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,ColMajor>::run( \
|
|
56
|
+
_rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
|
|
57
|
+
} \
|
|
58
|
+
}; \
|
|
59
|
+
template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
|
|
60
|
+
struct triangular_matrix_vector_product<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor,Specialized> { \
|
|
61
|
+
static void run(Index _rows, Index _cols, const Scalar* _lhs, Index lhsStride, \
|
|
62
|
+
const Scalar* _rhs, Index rhsIncr, Scalar* _res, Index resIncr, Scalar alpha) { \
|
|
63
|
+
triangular_matrix_vector_product_trmv<Index,Mode,Scalar,ConjLhs,Scalar,ConjRhs,RowMajor>::run( \
|
|
64
|
+
_rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
|
|
65
|
+
} \
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
EIGEN_BLAS_TRMV_SPECIALIZE(double)
|
|
69
|
+
EIGEN_BLAS_TRMV_SPECIALIZE(float)
|
|
70
|
+
EIGEN_BLAS_TRMV_SPECIALIZE(dcomplex)
|
|
71
|
+
EIGEN_BLAS_TRMV_SPECIALIZE(scomplex)
|
|
72
|
+
|
|
73
|
+
// implements col-major: res += alpha * op(triangular) * vector
|
|
74
|
+
#define EIGEN_BLAS_TRMV_CM(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX, BLASPOSTFIX) \
|
|
75
|
+
template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
|
|
76
|
+
struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor> { \
|
|
77
|
+
enum { \
|
|
78
|
+
IsLower = (Mode&Lower) == Lower, \
|
|
79
|
+
SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
|
|
80
|
+
IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
|
|
81
|
+
IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
|
|
82
|
+
LowUp = IsLower ? Lower : Upper \
|
|
83
|
+
}; \
|
|
84
|
+
static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
|
|
85
|
+
const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
|
|
86
|
+
{ \
|
|
87
|
+
if (ConjLhs || IsZeroDiag) { \
|
|
88
|
+
triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,ColMajor,BuiltIn>::run( \
|
|
89
|
+
_rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
|
|
90
|
+
return; \
|
|
91
|
+
}\
|
|
92
|
+
Index size = (std::min)(_rows,_cols); \
|
|
93
|
+
Index rows = IsLower ? _rows : size; \
|
|
94
|
+
Index cols = IsLower ? size : _cols; \
|
|
95
|
+
\
|
|
96
|
+
typedef VectorX##EIGPREFIX VectorRhs; \
|
|
97
|
+
EIGTYPE *x, *y;\
|
|
98
|
+
\
|
|
99
|
+
/* Set x*/ \
|
|
100
|
+
Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
|
|
101
|
+
VectorRhs x_tmp; \
|
|
102
|
+
if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
|
|
103
|
+
x = x_tmp.data(); \
|
|
104
|
+
\
|
|
105
|
+
/* Square part handling */\
|
|
106
|
+
\
|
|
107
|
+
char trans, uplo, diag; \
|
|
108
|
+
BlasIndex m, n, lda, incx, incy; \
|
|
109
|
+
EIGTYPE const *a; \
|
|
110
|
+
EIGTYPE beta(1); \
|
|
111
|
+
\
|
|
112
|
+
/* Set m, n */ \
|
|
113
|
+
n = convert_index<BlasIndex>(size); \
|
|
114
|
+
lda = convert_index<BlasIndex>(lhsStride); \
|
|
115
|
+
incx = 1; \
|
|
116
|
+
incy = convert_index<BlasIndex>(resIncr); \
|
|
117
|
+
\
|
|
118
|
+
/* Set uplo, trans and diag*/ \
|
|
119
|
+
trans = 'N'; \
|
|
120
|
+
uplo = IsLower ? 'L' : 'U'; \
|
|
121
|
+
diag = IsUnitDiag ? 'U' : 'N'; \
|
|
122
|
+
\
|
|
123
|
+
/* call ?TRMV*/ \
|
|
124
|
+
BLASPREFIX##trmv##BLASPOSTFIX(&uplo, &trans, &diag, &n, (const BLASTYPE*)_lhs, &lda, (BLASTYPE*)x, &incx); \
|
|
125
|
+
\
|
|
126
|
+
/* Add op(a_tr)rhs into res*/ \
|
|
127
|
+
BLASPREFIX##axpy##BLASPOSTFIX(&n, (const BLASTYPE*)&numext::real_ref(alpha),(const BLASTYPE*)x, &incx, (BLASTYPE*)_res, &incy); \
|
|
128
|
+
/* Non-square case - doesn't fit to BLAS ?TRMV. Fall to default triangular product*/ \
|
|
129
|
+
if (size<(std::max)(rows,cols)) { \
|
|
130
|
+
if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
|
|
131
|
+
x = x_tmp.data(); \
|
|
132
|
+
if (size<rows) { \
|
|
133
|
+
y = _res + size*resIncr; \
|
|
134
|
+
a = _lhs + size; \
|
|
135
|
+
m = convert_index<BlasIndex>(rows-size); \
|
|
136
|
+
n = convert_index<BlasIndex>(size); \
|
|
137
|
+
} \
|
|
138
|
+
else { \
|
|
139
|
+
x += size; \
|
|
140
|
+
y = _res; \
|
|
141
|
+
a = _lhs + size*lda; \
|
|
142
|
+
m = convert_index<BlasIndex>(size); \
|
|
143
|
+
n = convert_index<BlasIndex>(cols-size); \
|
|
144
|
+
} \
|
|
145
|
+
BLASPREFIX##gemv##BLASPOSTFIX(&trans, &m, &n, (const BLASTYPE*)&numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)x, &incx, (const BLASTYPE*)&numext::real_ref(beta), (BLASTYPE*)y, &incy); \
|
|
146
|
+
} \
|
|
147
|
+
} \
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
#ifdef EIGEN_USE_MKL
|
|
151
|
+
EIGEN_BLAS_TRMV_CM(double, double, d, d,)
|
|
152
|
+
EIGEN_BLAS_TRMV_CM(dcomplex, MKL_Complex16, cd, z,)
|
|
153
|
+
EIGEN_BLAS_TRMV_CM(float, float, f, s,)
|
|
154
|
+
EIGEN_BLAS_TRMV_CM(scomplex, MKL_Complex8, cf, c,)
|
|
155
|
+
#else
|
|
156
|
+
EIGEN_BLAS_TRMV_CM(double, double, d, d, _)
|
|
157
|
+
EIGEN_BLAS_TRMV_CM(dcomplex, double, cd, z, _)
|
|
158
|
+
EIGEN_BLAS_TRMV_CM(float, float, f, s, _)
|
|
159
|
+
EIGEN_BLAS_TRMV_CM(scomplex, float, cf, c, _)
|
|
160
|
+
#endif
|
|
161
|
+
|
|
162
|
+
// implements row-major: res += alpha * op(triangular) * vector
|
|
163
|
+
#define EIGEN_BLAS_TRMV_RM(EIGTYPE, BLASTYPE, EIGPREFIX, BLASPREFIX, BLASPOSTFIX) \
|
|
164
|
+
template<typename Index, int Mode, bool ConjLhs, bool ConjRhs> \
|
|
165
|
+
struct triangular_matrix_vector_product_trmv<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor> { \
|
|
166
|
+
enum { \
|
|
167
|
+
IsLower = (Mode&Lower) == Lower, \
|
|
168
|
+
SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1, \
|
|
169
|
+
IsUnitDiag = (Mode&UnitDiag) ? 1 : 0, \
|
|
170
|
+
IsZeroDiag = (Mode&ZeroDiag) ? 1 : 0, \
|
|
171
|
+
LowUp = IsLower ? Lower : Upper \
|
|
172
|
+
}; \
|
|
173
|
+
static void run(Index _rows, Index _cols, const EIGTYPE* _lhs, Index lhsStride, \
|
|
174
|
+
const EIGTYPE* _rhs, Index rhsIncr, EIGTYPE* _res, Index resIncr, EIGTYPE alpha) \
|
|
175
|
+
{ \
|
|
176
|
+
if (IsZeroDiag) { \
|
|
177
|
+
triangular_matrix_vector_product<Index,Mode,EIGTYPE,ConjLhs,EIGTYPE,ConjRhs,RowMajor,BuiltIn>::run( \
|
|
178
|
+
_rows, _cols, _lhs, lhsStride, _rhs, rhsIncr, _res, resIncr, alpha); \
|
|
179
|
+
return; \
|
|
180
|
+
}\
|
|
181
|
+
Index size = (std::min)(_rows,_cols); \
|
|
182
|
+
Index rows = IsLower ? _rows : size; \
|
|
183
|
+
Index cols = IsLower ? size : _cols; \
|
|
184
|
+
\
|
|
185
|
+
typedef VectorX##EIGPREFIX VectorRhs; \
|
|
186
|
+
EIGTYPE *x, *y;\
|
|
187
|
+
\
|
|
188
|
+
/* Set x*/ \
|
|
189
|
+
Map<const VectorRhs, 0, InnerStride<> > rhs(_rhs,cols,InnerStride<>(rhsIncr)); \
|
|
190
|
+
VectorRhs x_tmp; \
|
|
191
|
+
if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
|
|
192
|
+
x = x_tmp.data(); \
|
|
193
|
+
\
|
|
194
|
+
/* Square part handling */\
|
|
195
|
+
\
|
|
196
|
+
char trans, uplo, diag; \
|
|
197
|
+
BlasIndex m, n, lda, incx, incy; \
|
|
198
|
+
EIGTYPE const *a; \
|
|
199
|
+
EIGTYPE beta(1); \
|
|
200
|
+
\
|
|
201
|
+
/* Set m, n */ \
|
|
202
|
+
n = convert_index<BlasIndex>(size); \
|
|
203
|
+
lda = convert_index<BlasIndex>(lhsStride); \
|
|
204
|
+
incx = 1; \
|
|
205
|
+
incy = convert_index<BlasIndex>(resIncr); \
|
|
206
|
+
\
|
|
207
|
+
/* Set uplo, trans and diag*/ \
|
|
208
|
+
trans = ConjLhs ? 'C' : 'T'; \
|
|
209
|
+
uplo = IsLower ? 'U' : 'L'; \
|
|
210
|
+
diag = IsUnitDiag ? 'U' : 'N'; \
|
|
211
|
+
\
|
|
212
|
+
/* call ?TRMV*/ \
|
|
213
|
+
BLASPREFIX##trmv##BLASPOSTFIX(&uplo, &trans, &diag, &n, (const BLASTYPE*)_lhs, &lda, (BLASTYPE*)x, &incx); \
|
|
214
|
+
\
|
|
215
|
+
/* Add op(a_tr)rhs into res*/ \
|
|
216
|
+
BLASPREFIX##axpy##BLASPOSTFIX(&n, (const BLASTYPE*)&numext::real_ref(alpha),(const BLASTYPE*)x, &incx, (BLASTYPE*)_res, &incy); \
|
|
217
|
+
/* Non-square case - doesn't fit to BLAS ?TRMV. Fall to default triangular product*/ \
|
|
218
|
+
if (size<(std::max)(rows,cols)) { \
|
|
219
|
+
if (ConjRhs) x_tmp = rhs.conjugate(); else x_tmp = rhs; \
|
|
220
|
+
x = x_tmp.data(); \
|
|
221
|
+
if (size<rows) { \
|
|
222
|
+
y = _res + size*resIncr; \
|
|
223
|
+
a = _lhs + size*lda; \
|
|
224
|
+
m = convert_index<BlasIndex>(rows-size); \
|
|
225
|
+
n = convert_index<BlasIndex>(size); \
|
|
226
|
+
} \
|
|
227
|
+
else { \
|
|
228
|
+
x += size; \
|
|
229
|
+
y = _res; \
|
|
230
|
+
a = _lhs + size; \
|
|
231
|
+
m = convert_index<BlasIndex>(size); \
|
|
232
|
+
n = convert_index<BlasIndex>(cols-size); \
|
|
233
|
+
} \
|
|
234
|
+
BLASPREFIX##gemv##BLASPOSTFIX(&trans, &n, &m, (const BLASTYPE*)&numext::real_ref(alpha), (const BLASTYPE*)a, &lda, (const BLASTYPE*)x, &incx, (const BLASTYPE*)&numext::real_ref(beta), (BLASTYPE*)y, &incy); \
|
|
235
|
+
} \
|
|
236
|
+
} \
|
|
237
|
+
};
|
|
238
|
+
|
|
239
|
+
#ifdef EIGEN_USE_MKL
|
|
240
|
+
EIGEN_BLAS_TRMV_RM(double, double, d, d,)
|
|
241
|
+
EIGEN_BLAS_TRMV_RM(dcomplex, MKL_Complex16, cd, z,)
|
|
242
|
+
EIGEN_BLAS_TRMV_RM(float, float, f, s,)
|
|
243
|
+
EIGEN_BLAS_TRMV_RM(scomplex, MKL_Complex8, cf, c,)
|
|
244
|
+
#else
|
|
245
|
+
EIGEN_BLAS_TRMV_RM(double, double, d, d,_)
|
|
246
|
+
EIGEN_BLAS_TRMV_RM(dcomplex, double, cd, z,_)
|
|
247
|
+
EIGEN_BLAS_TRMV_RM(float, float, f, s,_)
|
|
248
|
+
EIGEN_BLAS_TRMV_RM(scomplex, float, cf, c,_)
|
|
249
|
+
#endif
|
|
250
|
+
|
|
251
|
+
} // end namespase internal
|
|
252
|
+
|
|
253
|
+
} // end namespace Eigen
|
|
254
|
+
|
|
255
|
+
#endif // EIGEN_TRIANGULAR_MATRIX_VECTOR_BLAS_H
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2009 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
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_TRIANGULAR_SOLVER_MATRIX_H
|
|
11
|
+
#define EIGEN_TRIANGULAR_SOLVER_MATRIX_H
|
|
12
|
+
|
|
13
|
+
namespace Eigen {
|
|
14
|
+
|
|
15
|
+
namespace internal {
|
|
16
|
+
|
|
17
|
+
// if the rhs is row major, let's transpose the product
|
|
18
|
+
template <typename Scalar, typename Index, int Side, int Mode, bool Conjugate, int TriStorageOrder, int OtherInnerStride>
|
|
19
|
+
struct triangular_solve_matrix<Scalar,Index,Side,Mode,Conjugate,TriStorageOrder,RowMajor,OtherInnerStride>
|
|
20
|
+
{
|
|
21
|
+
static void run(
|
|
22
|
+
Index size, Index cols,
|
|
23
|
+
const Scalar* tri, Index triStride,
|
|
24
|
+
Scalar* _other, Index otherIncr, Index otherStride,
|
|
25
|
+
level3_blocking<Scalar,Scalar>& blocking)
|
|
26
|
+
{
|
|
27
|
+
triangular_solve_matrix<
|
|
28
|
+
Scalar, Index, Side==OnTheLeft?OnTheRight:OnTheLeft,
|
|
29
|
+
(Mode&UnitDiag) | ((Mode&Upper) ? Lower : Upper),
|
|
30
|
+
NumTraits<Scalar>::IsComplex && Conjugate,
|
|
31
|
+
TriStorageOrder==RowMajor ? ColMajor : RowMajor, ColMajor, OtherInnerStride>
|
|
32
|
+
::run(size, cols, tri, triStride, _other, otherIncr, otherStride, blocking);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
/* Optimized triangular solver with multiple right hand side and the triangular matrix on the left
|
|
37
|
+
*/
|
|
38
|
+
template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder,int OtherInnerStride>
|
|
39
|
+
struct triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor,OtherInnerStride>
|
|
40
|
+
{
|
|
41
|
+
static EIGEN_DONT_INLINE void run(
|
|
42
|
+
Index size, Index otherSize,
|
|
43
|
+
const Scalar* _tri, Index triStride,
|
|
44
|
+
Scalar* _other, Index otherIncr, Index otherStride,
|
|
45
|
+
level3_blocking<Scalar,Scalar>& blocking);
|
|
46
|
+
};
|
|
47
|
+
template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder, int OtherInnerStride>
|
|
48
|
+
EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheLeft,Mode,Conjugate,TriStorageOrder,ColMajor,OtherInnerStride>::run(
|
|
49
|
+
Index size, Index otherSize,
|
|
50
|
+
const Scalar* _tri, Index triStride,
|
|
51
|
+
Scalar* _other, Index otherIncr, Index otherStride,
|
|
52
|
+
level3_blocking<Scalar,Scalar>& blocking)
|
|
53
|
+
{
|
|
54
|
+
Index cols = otherSize;
|
|
55
|
+
|
|
56
|
+
typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> TriMapper;
|
|
57
|
+
typedef blas_data_mapper<Scalar, Index, ColMajor, Unaligned, OtherInnerStride> OtherMapper;
|
|
58
|
+
TriMapper tri(_tri, triStride);
|
|
59
|
+
OtherMapper other(_other, otherStride, otherIncr);
|
|
60
|
+
|
|
61
|
+
typedef gebp_traits<Scalar,Scalar> Traits;
|
|
62
|
+
|
|
63
|
+
enum {
|
|
64
|
+
SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
|
|
65
|
+
IsLower = (Mode&Lower) == Lower
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
Index kc = blocking.kc(); // cache block size along the K direction
|
|
69
|
+
Index mc = (std::min)(size,blocking.mc()); // cache block size along the M direction
|
|
70
|
+
|
|
71
|
+
std::size_t sizeA = kc*mc;
|
|
72
|
+
std::size_t sizeB = kc*cols;
|
|
73
|
+
|
|
74
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
|
75
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
|
76
|
+
|
|
77
|
+
conj_if<Conjugate> conj;
|
|
78
|
+
gebp_kernel<Scalar, Scalar, Index, OtherMapper, Traits::mr, Traits::nr, Conjugate, false> gebp_kernel;
|
|
79
|
+
gemm_pack_lhs<Scalar, Index, TriMapper, Traits::mr, Traits::LhsProgress, typename Traits::LhsPacket4Packing, TriStorageOrder> pack_lhs;
|
|
80
|
+
gemm_pack_rhs<Scalar, Index, OtherMapper, Traits::nr, ColMajor, false, true> pack_rhs;
|
|
81
|
+
|
|
82
|
+
// the goal here is to subdivise the Rhs panels such that we keep some cache
|
|
83
|
+
// coherence when accessing the rhs elements
|
|
84
|
+
std::ptrdiff_t l1, l2, l3;
|
|
85
|
+
manage_caching_sizes(GetAction, &l1, &l2, &l3);
|
|
86
|
+
Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * std::max<Index>(otherStride,size)) : 0;
|
|
87
|
+
subcols = std::max<Index>((subcols/Traits::nr)*Traits::nr, Traits::nr);
|
|
88
|
+
|
|
89
|
+
for(Index k2=IsLower ? 0 : size;
|
|
90
|
+
IsLower ? k2<size : k2>0;
|
|
91
|
+
IsLower ? k2+=kc : k2-=kc)
|
|
92
|
+
{
|
|
93
|
+
const Index actual_kc = (std::min)(IsLower ? size-k2 : k2, kc);
|
|
94
|
+
|
|
95
|
+
// We have selected and packed a big horizontal panel R1 of rhs. Let B be the packed copy of this panel,
|
|
96
|
+
// and R2 the remaining part of rhs. The corresponding vertical panel of lhs is split into
|
|
97
|
+
// A11 (the triangular part) and A21 the remaining rectangular part.
|
|
98
|
+
// Then the high level algorithm is:
|
|
99
|
+
// - B = R1 => general block copy (done during the next step)
|
|
100
|
+
// - R1 = A11^-1 B => tricky part
|
|
101
|
+
// - update B from the new R1 => actually this has to be performed continuously during the above step
|
|
102
|
+
// - R2 -= A21 * B => GEPP
|
|
103
|
+
|
|
104
|
+
// The tricky part: compute R1 = A11^-1 B while updating B from R1
|
|
105
|
+
// The idea is to split A11 into multiple small vertical panels.
|
|
106
|
+
// Each panel can be split into a small triangular part T1k which is processed without optimization,
|
|
107
|
+
// and the remaining small part T2k which is processed using gebp with appropriate block strides
|
|
108
|
+
for(Index j2=0; j2<cols; j2+=subcols)
|
|
109
|
+
{
|
|
110
|
+
Index actual_cols = (std::min)(cols-j2,subcols);
|
|
111
|
+
// for each small vertical panels [T1k^T, T2k^T]^T of lhs
|
|
112
|
+
for (Index k1=0; k1<actual_kc; k1+=SmallPanelWidth)
|
|
113
|
+
{
|
|
114
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-k1, SmallPanelWidth);
|
|
115
|
+
// tr solve
|
|
116
|
+
for (Index k=0; k<actualPanelWidth; ++k)
|
|
117
|
+
{
|
|
118
|
+
// TODO write a small kernel handling this (can be shared with trsv)
|
|
119
|
+
Index i = IsLower ? k2+k1+k : k2-k1-k-1;
|
|
120
|
+
Index rs = actualPanelWidth - k - 1; // remaining size
|
|
121
|
+
Index s = TriStorageOrder==RowMajor ? (IsLower ? k2+k1 : i+1)
|
|
122
|
+
: IsLower ? i+1 : i-rs;
|
|
123
|
+
|
|
124
|
+
Scalar a = (Mode & UnitDiag) ? Scalar(1) : Scalar(1)/conj(tri(i,i));
|
|
125
|
+
for (Index j=j2; j<j2+actual_cols; ++j)
|
|
126
|
+
{
|
|
127
|
+
if (TriStorageOrder==RowMajor)
|
|
128
|
+
{
|
|
129
|
+
Scalar b(0);
|
|
130
|
+
const Scalar* l = &tri(i,s);
|
|
131
|
+
typename OtherMapper::LinearMapper r = other.getLinearMapper(s,j);
|
|
132
|
+
for (Index i3=0; i3<k; ++i3)
|
|
133
|
+
b += conj(l[i3]) * r(i3);
|
|
134
|
+
|
|
135
|
+
other(i,j) = (other(i,j) - b)*a;
|
|
136
|
+
}
|
|
137
|
+
else
|
|
138
|
+
{
|
|
139
|
+
Scalar& otherij = other(i,j);
|
|
140
|
+
otherij *= a;
|
|
141
|
+
Scalar b = otherij;
|
|
142
|
+
typename OtherMapper::LinearMapper r = other.getLinearMapper(s,j);
|
|
143
|
+
typename TriMapper::LinearMapper l = tri.getLinearMapper(s,i);
|
|
144
|
+
for (Index i3=0;i3<rs;++i3)
|
|
145
|
+
r(i3) -= b * conj(l(i3));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
Index lengthTarget = actual_kc-k1-actualPanelWidth;
|
|
151
|
+
Index startBlock = IsLower ? k2+k1 : k2-k1-actualPanelWidth;
|
|
152
|
+
Index blockBOffset = IsLower ? k1 : lengthTarget;
|
|
153
|
+
|
|
154
|
+
// update the respective rows of B from other
|
|
155
|
+
pack_rhs(blockB+actual_kc*j2, other.getSubMapper(startBlock,j2), actualPanelWidth, actual_cols, actual_kc, blockBOffset);
|
|
156
|
+
|
|
157
|
+
// GEBP
|
|
158
|
+
if (lengthTarget>0)
|
|
159
|
+
{
|
|
160
|
+
Index startTarget = IsLower ? k2+k1+actualPanelWidth : k2-actual_kc;
|
|
161
|
+
|
|
162
|
+
pack_lhs(blockA, tri.getSubMapper(startTarget,startBlock), actualPanelWidth, lengthTarget);
|
|
163
|
+
|
|
164
|
+
gebp_kernel(other.getSubMapper(startTarget,j2), blockA, blockB+actual_kc*j2, lengthTarget, actualPanelWidth, actual_cols, Scalar(-1),
|
|
165
|
+
actualPanelWidth, actual_kc, 0, blockBOffset);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// R2 -= A21 * B => GEPP
|
|
171
|
+
{
|
|
172
|
+
Index start = IsLower ? k2+kc : 0;
|
|
173
|
+
Index end = IsLower ? size : k2-kc;
|
|
174
|
+
for(Index i2=start; i2<end; i2+=mc)
|
|
175
|
+
{
|
|
176
|
+
const Index actual_mc = (std::min)(mc,end-i2);
|
|
177
|
+
if (actual_mc>0)
|
|
178
|
+
{
|
|
179
|
+
pack_lhs(blockA, tri.getSubMapper(i2, IsLower ? k2 : k2-kc), actual_kc, actual_mc);
|
|
180
|
+
|
|
181
|
+
gebp_kernel(other.getSubMapper(i2, 0), blockA, blockB, actual_mc, actual_kc, cols, Scalar(-1), -1, -1, 0, 0);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* Optimized triangular solver with multiple left hand sides and the triangular matrix on the right
|
|
189
|
+
*/
|
|
190
|
+
template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder, int OtherInnerStride>
|
|
191
|
+
struct triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor,OtherInnerStride>
|
|
192
|
+
{
|
|
193
|
+
static EIGEN_DONT_INLINE void run(
|
|
194
|
+
Index size, Index otherSize,
|
|
195
|
+
const Scalar* _tri, Index triStride,
|
|
196
|
+
Scalar* _other, Index otherIncr, Index otherStride,
|
|
197
|
+
level3_blocking<Scalar,Scalar>& blocking);
|
|
198
|
+
};
|
|
199
|
+
template <typename Scalar, typename Index, int Mode, bool Conjugate, int TriStorageOrder, int OtherInnerStride>
|
|
200
|
+
EIGEN_DONT_INLINE void triangular_solve_matrix<Scalar,Index,OnTheRight,Mode,Conjugate,TriStorageOrder,ColMajor,OtherInnerStride>::run(
|
|
201
|
+
Index size, Index otherSize,
|
|
202
|
+
const Scalar* _tri, Index triStride,
|
|
203
|
+
Scalar* _other, Index otherIncr, Index otherStride,
|
|
204
|
+
level3_blocking<Scalar,Scalar>& blocking)
|
|
205
|
+
{
|
|
206
|
+
Index rows = otherSize;
|
|
207
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
|
208
|
+
|
|
209
|
+
typedef blas_data_mapper<Scalar, Index, ColMajor, Unaligned, OtherInnerStride> LhsMapper;
|
|
210
|
+
typedef const_blas_data_mapper<Scalar, Index, TriStorageOrder> RhsMapper;
|
|
211
|
+
LhsMapper lhs(_other, otherStride, otherIncr);
|
|
212
|
+
RhsMapper rhs(_tri, triStride);
|
|
213
|
+
|
|
214
|
+
typedef gebp_traits<Scalar,Scalar> Traits;
|
|
215
|
+
enum {
|
|
216
|
+
RhsStorageOrder = TriStorageOrder,
|
|
217
|
+
SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
|
|
218
|
+
IsLower = (Mode&Lower) == Lower
|
|
219
|
+
};
|
|
220
|
+
|
|
221
|
+
Index kc = blocking.kc(); // cache block size along the K direction
|
|
222
|
+
Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
|
|
223
|
+
|
|
224
|
+
std::size_t sizeA = kc*mc;
|
|
225
|
+
std::size_t sizeB = kc*size;
|
|
226
|
+
|
|
227
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
|
228
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
|
229
|
+
|
|
230
|
+
conj_if<Conjugate> conj;
|
|
231
|
+
gebp_kernel<Scalar, Scalar, Index, LhsMapper, Traits::mr, Traits::nr, false, Conjugate> gebp_kernel;
|
|
232
|
+
gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr, RhsStorageOrder> pack_rhs;
|
|
233
|
+
gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr, RhsStorageOrder,false,true> pack_rhs_panel;
|
|
234
|
+
gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, typename Traits::LhsPacket4Packing, ColMajor, false, true> pack_lhs_panel;
|
|
235
|
+
|
|
236
|
+
for(Index k2=IsLower ? size : 0;
|
|
237
|
+
IsLower ? k2>0 : k2<size;
|
|
238
|
+
IsLower ? k2-=kc : k2+=kc)
|
|
239
|
+
{
|
|
240
|
+
const Index actual_kc = (std::min)(IsLower ? k2 : size-k2, kc);
|
|
241
|
+
Index actual_k2 = IsLower ? k2-actual_kc : k2 ;
|
|
242
|
+
|
|
243
|
+
Index startPanel = IsLower ? 0 : k2+actual_kc;
|
|
244
|
+
Index rs = IsLower ? actual_k2 : size - actual_k2 - actual_kc;
|
|
245
|
+
Scalar* geb = blockB+actual_kc*actual_kc;
|
|
246
|
+
|
|
247
|
+
if (rs>0) pack_rhs(geb, rhs.getSubMapper(actual_k2,startPanel), actual_kc, rs);
|
|
248
|
+
|
|
249
|
+
// triangular packing (we only pack the panels off the diagonal,
|
|
250
|
+
// neglecting the blocks overlapping the diagonal
|
|
251
|
+
{
|
|
252
|
+
for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
|
|
253
|
+
{
|
|
254
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
|
|
255
|
+
Index actual_j2 = actual_k2 + j2;
|
|
256
|
+
Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
|
|
257
|
+
Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
|
|
258
|
+
|
|
259
|
+
if (panelLength>0)
|
|
260
|
+
pack_rhs_panel(blockB+j2*actual_kc,
|
|
261
|
+
rhs.getSubMapper(actual_k2+panelOffset, actual_j2),
|
|
262
|
+
panelLength, actualPanelWidth,
|
|
263
|
+
actual_kc, panelOffset);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
for(Index i2=0; i2<rows; i2+=mc)
|
|
268
|
+
{
|
|
269
|
+
const Index actual_mc = (std::min)(mc,rows-i2);
|
|
270
|
+
|
|
271
|
+
// triangular solver kernel
|
|
272
|
+
{
|
|
273
|
+
// for each small block of the diagonal (=> vertical panels of rhs)
|
|
274
|
+
for (Index j2 = IsLower
|
|
275
|
+
? (actual_kc - ((actual_kc%SmallPanelWidth) ? Index(actual_kc%SmallPanelWidth)
|
|
276
|
+
: Index(SmallPanelWidth)))
|
|
277
|
+
: 0;
|
|
278
|
+
IsLower ? j2>=0 : j2<actual_kc;
|
|
279
|
+
IsLower ? j2-=SmallPanelWidth : j2+=SmallPanelWidth)
|
|
280
|
+
{
|
|
281
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
|
|
282
|
+
Index absolute_j2 = actual_k2 + j2;
|
|
283
|
+
Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
|
|
284
|
+
Index panelLength = IsLower ? actual_kc - j2 - actualPanelWidth : j2;
|
|
285
|
+
|
|
286
|
+
// GEBP
|
|
287
|
+
if(panelLength>0)
|
|
288
|
+
{
|
|
289
|
+
gebp_kernel(lhs.getSubMapper(i2,absolute_j2),
|
|
290
|
+
blockA, blockB+j2*actual_kc,
|
|
291
|
+
actual_mc, panelLength, actualPanelWidth,
|
|
292
|
+
Scalar(-1),
|
|
293
|
+
actual_kc, actual_kc, // strides
|
|
294
|
+
panelOffset, panelOffset); // offsets
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// unblocked triangular solve
|
|
298
|
+
for (Index k=0; k<actualPanelWidth; ++k)
|
|
299
|
+
{
|
|
300
|
+
Index j = IsLower ? absolute_j2+actualPanelWidth-k-1 : absolute_j2+k;
|
|
301
|
+
|
|
302
|
+
typename LhsMapper::LinearMapper r = lhs.getLinearMapper(i2,j);
|
|
303
|
+
for (Index k3=0; k3<k; ++k3)
|
|
304
|
+
{
|
|
305
|
+
Scalar b = conj(rhs(IsLower ? j+1+k3 : absolute_j2+k3,j));
|
|
306
|
+
typename LhsMapper::LinearMapper a = lhs.getLinearMapper(i2,IsLower ? j+1+k3 : absolute_j2+k3);
|
|
307
|
+
for (Index i=0; i<actual_mc; ++i)
|
|
308
|
+
r(i) -= a(i) * b;
|
|
309
|
+
}
|
|
310
|
+
if((Mode & UnitDiag)==0)
|
|
311
|
+
{
|
|
312
|
+
Scalar inv_rjj = RealScalar(1)/conj(rhs(j,j));
|
|
313
|
+
for (Index i=0; i<actual_mc; ++i)
|
|
314
|
+
r(i) *= inv_rjj;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// pack the just computed part of lhs to A
|
|
319
|
+
pack_lhs_panel(blockA, lhs.getSubMapper(i2,absolute_j2),
|
|
320
|
+
actualPanelWidth, actual_mc,
|
|
321
|
+
actual_kc, j2);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
if (rs>0)
|
|
326
|
+
gebp_kernel(lhs.getSubMapper(i2, startPanel), blockA, geb,
|
|
327
|
+
actual_mc, actual_kc, rs, Scalar(-1),
|
|
328
|
+
-1, -1, 0, 0);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
} // end namespace internal
|
|
334
|
+
|
|
335
|
+
} // end namespace Eigen
|
|
336
|
+
|
|
337
|
+
#endif // EIGEN_TRIANGULAR_SOLVER_MATRIX_H
|