pylibsparseir 0.1.0__cp312-cp312-macosx_15_0_arm64.whl → 0.5.2__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 +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,515 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
// Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
6
|
+
//
|
|
7
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
8
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
9
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
10
|
+
|
|
11
|
+
#ifndef EIGEN_REDUX_H
|
|
12
|
+
#define EIGEN_REDUX_H
|
|
13
|
+
|
|
14
|
+
namespace Eigen {
|
|
15
|
+
|
|
16
|
+
namespace internal {
|
|
17
|
+
|
|
18
|
+
// TODO
|
|
19
|
+
// * implement other kind of vectorization
|
|
20
|
+
// * factorize code
|
|
21
|
+
|
|
22
|
+
/***************************************************************************
|
|
23
|
+
* Part 1 : the logic deciding a strategy for vectorization and unrolling
|
|
24
|
+
***************************************************************************/
|
|
25
|
+
|
|
26
|
+
template<typename Func, typename Evaluator>
|
|
27
|
+
struct redux_traits
|
|
28
|
+
{
|
|
29
|
+
public:
|
|
30
|
+
typedef typename find_best_packet<typename Evaluator::Scalar,Evaluator::SizeAtCompileTime>::type PacketType;
|
|
31
|
+
enum {
|
|
32
|
+
PacketSize = unpacket_traits<PacketType>::size,
|
|
33
|
+
InnerMaxSize = int(Evaluator::IsRowMajor)
|
|
34
|
+
? Evaluator::MaxColsAtCompileTime
|
|
35
|
+
: Evaluator::MaxRowsAtCompileTime,
|
|
36
|
+
OuterMaxSize = int(Evaluator::IsRowMajor)
|
|
37
|
+
? Evaluator::MaxRowsAtCompileTime
|
|
38
|
+
: Evaluator::MaxColsAtCompileTime,
|
|
39
|
+
SliceVectorizedWork = int(InnerMaxSize)==Dynamic ? Dynamic
|
|
40
|
+
: int(OuterMaxSize)==Dynamic ? (int(InnerMaxSize)>=int(PacketSize) ? Dynamic : 0)
|
|
41
|
+
: (int(InnerMaxSize)/int(PacketSize)) * int(OuterMaxSize)
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
enum {
|
|
45
|
+
MightVectorize = (int(Evaluator::Flags)&ActualPacketAccessBit)
|
|
46
|
+
&& (functor_traits<Func>::PacketAccess),
|
|
47
|
+
MayLinearVectorize = bool(MightVectorize) && (int(Evaluator::Flags)&LinearAccessBit),
|
|
48
|
+
MaySliceVectorize = bool(MightVectorize) && (int(SliceVectorizedWork)==Dynamic || int(SliceVectorizedWork)>=3)
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
public:
|
|
52
|
+
enum {
|
|
53
|
+
Traversal = int(MayLinearVectorize) ? int(LinearVectorizedTraversal)
|
|
54
|
+
: int(MaySliceVectorize) ? int(SliceVectorizedTraversal)
|
|
55
|
+
: int(DefaultTraversal)
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
public:
|
|
59
|
+
enum {
|
|
60
|
+
Cost = Evaluator::SizeAtCompileTime == Dynamic ? HugeCost
|
|
61
|
+
: int(Evaluator::SizeAtCompileTime) * int(Evaluator::CoeffReadCost) + (Evaluator::SizeAtCompileTime-1) * functor_traits<Func>::Cost,
|
|
62
|
+
UnrollingLimit = EIGEN_UNROLLING_LIMIT * (int(Traversal) == int(DefaultTraversal) ? 1 : int(PacketSize))
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
public:
|
|
66
|
+
enum {
|
|
67
|
+
Unrolling = Cost <= UnrollingLimit ? CompleteUnrolling : NoUnrolling
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
#ifdef EIGEN_DEBUG_ASSIGN
|
|
71
|
+
static void debug()
|
|
72
|
+
{
|
|
73
|
+
std::cerr << "Xpr: " << typeid(typename Evaluator::XprType).name() << std::endl;
|
|
74
|
+
std::cerr.setf(std::ios::hex, std::ios::basefield);
|
|
75
|
+
EIGEN_DEBUG_VAR(Evaluator::Flags)
|
|
76
|
+
std::cerr.unsetf(std::ios::hex);
|
|
77
|
+
EIGEN_DEBUG_VAR(InnerMaxSize)
|
|
78
|
+
EIGEN_DEBUG_VAR(OuterMaxSize)
|
|
79
|
+
EIGEN_DEBUG_VAR(SliceVectorizedWork)
|
|
80
|
+
EIGEN_DEBUG_VAR(PacketSize)
|
|
81
|
+
EIGEN_DEBUG_VAR(MightVectorize)
|
|
82
|
+
EIGEN_DEBUG_VAR(MayLinearVectorize)
|
|
83
|
+
EIGEN_DEBUG_VAR(MaySliceVectorize)
|
|
84
|
+
std::cerr << "Traversal" << " = " << Traversal << " (" << demangle_traversal(Traversal) << ")" << std::endl;
|
|
85
|
+
EIGEN_DEBUG_VAR(UnrollingLimit)
|
|
86
|
+
std::cerr << "Unrolling" << " = " << Unrolling << " (" << demangle_unrolling(Unrolling) << ")" << std::endl;
|
|
87
|
+
std::cerr << std::endl;
|
|
88
|
+
}
|
|
89
|
+
#endif
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/***************************************************************************
|
|
93
|
+
* Part 2 : unrollers
|
|
94
|
+
***************************************************************************/
|
|
95
|
+
|
|
96
|
+
/*** no vectorization ***/
|
|
97
|
+
|
|
98
|
+
template<typename Func, typename Evaluator, int Start, int Length>
|
|
99
|
+
struct redux_novec_unroller
|
|
100
|
+
{
|
|
101
|
+
enum {
|
|
102
|
+
HalfLength = Length/2
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
106
|
+
|
|
107
|
+
EIGEN_DEVICE_FUNC
|
|
108
|
+
static EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func& func)
|
|
109
|
+
{
|
|
110
|
+
return func(redux_novec_unroller<Func, Evaluator, Start, HalfLength>::run(eval,func),
|
|
111
|
+
redux_novec_unroller<Func, Evaluator, Start+HalfLength, Length-HalfLength>::run(eval,func));
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
template<typename Func, typename Evaluator, int Start>
|
|
116
|
+
struct redux_novec_unroller<Func, Evaluator, Start, 1>
|
|
117
|
+
{
|
|
118
|
+
enum {
|
|
119
|
+
outer = Start / Evaluator::InnerSizeAtCompileTime,
|
|
120
|
+
inner = Start % Evaluator::InnerSizeAtCompileTime
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
124
|
+
|
|
125
|
+
EIGEN_DEVICE_FUNC
|
|
126
|
+
static EIGEN_STRONG_INLINE Scalar run(const Evaluator &eval, const Func&)
|
|
127
|
+
{
|
|
128
|
+
return eval.coeffByOuterInner(outer, inner);
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
// This is actually dead code and will never be called. It is required
|
|
133
|
+
// to prevent false warnings regarding failed inlining though
|
|
134
|
+
// for 0 length run() will never be called at all.
|
|
135
|
+
template<typename Func, typename Evaluator, int Start>
|
|
136
|
+
struct redux_novec_unroller<Func, Evaluator, Start, 0>
|
|
137
|
+
{
|
|
138
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
139
|
+
EIGEN_DEVICE_FUNC
|
|
140
|
+
static EIGEN_STRONG_INLINE Scalar run(const Evaluator&, const Func&) { return Scalar(); }
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/*** vectorization ***/
|
|
144
|
+
|
|
145
|
+
template<typename Func, typename Evaluator, int Start, int Length>
|
|
146
|
+
struct redux_vec_unroller
|
|
147
|
+
{
|
|
148
|
+
template<typename PacketType>
|
|
149
|
+
EIGEN_DEVICE_FUNC
|
|
150
|
+
static EIGEN_STRONG_INLINE PacketType run(const Evaluator &eval, const Func& func)
|
|
151
|
+
{
|
|
152
|
+
enum {
|
|
153
|
+
PacketSize = unpacket_traits<PacketType>::size,
|
|
154
|
+
HalfLength = Length/2
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
return func.packetOp(
|
|
158
|
+
redux_vec_unroller<Func, Evaluator, Start, HalfLength>::template run<PacketType>(eval,func),
|
|
159
|
+
redux_vec_unroller<Func, Evaluator, Start+HalfLength, Length-HalfLength>::template run<PacketType>(eval,func) );
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
template<typename Func, typename Evaluator, int Start>
|
|
164
|
+
struct redux_vec_unroller<Func, Evaluator, Start, 1>
|
|
165
|
+
{
|
|
166
|
+
template<typename PacketType>
|
|
167
|
+
EIGEN_DEVICE_FUNC
|
|
168
|
+
static EIGEN_STRONG_INLINE PacketType run(const Evaluator &eval, const Func&)
|
|
169
|
+
{
|
|
170
|
+
enum {
|
|
171
|
+
PacketSize = unpacket_traits<PacketType>::size,
|
|
172
|
+
index = Start * PacketSize,
|
|
173
|
+
outer = index / int(Evaluator::InnerSizeAtCompileTime),
|
|
174
|
+
inner = index % int(Evaluator::InnerSizeAtCompileTime),
|
|
175
|
+
alignment = Evaluator::Alignment
|
|
176
|
+
};
|
|
177
|
+
return eval.template packetByOuterInner<alignment,PacketType>(outer, inner);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
/***************************************************************************
|
|
182
|
+
* Part 3 : implementation of all cases
|
|
183
|
+
***************************************************************************/
|
|
184
|
+
|
|
185
|
+
template<typename Func, typename Evaluator,
|
|
186
|
+
int Traversal = redux_traits<Func, Evaluator>::Traversal,
|
|
187
|
+
int Unrolling = redux_traits<Func, Evaluator>::Unrolling
|
|
188
|
+
>
|
|
189
|
+
struct redux_impl;
|
|
190
|
+
|
|
191
|
+
template<typename Func, typename Evaluator>
|
|
192
|
+
struct redux_impl<Func, Evaluator, DefaultTraversal, NoUnrolling>
|
|
193
|
+
{
|
|
194
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
195
|
+
|
|
196
|
+
template<typename XprType>
|
|
197
|
+
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE
|
|
198
|
+
Scalar run(const Evaluator &eval, const Func& func, const XprType& xpr)
|
|
199
|
+
{
|
|
200
|
+
eigen_assert(xpr.rows()>0 && xpr.cols()>0 && "you are using an empty matrix");
|
|
201
|
+
Scalar res;
|
|
202
|
+
res = eval.coeffByOuterInner(0, 0);
|
|
203
|
+
for(Index i = 1; i < xpr.innerSize(); ++i)
|
|
204
|
+
res = func(res, eval.coeffByOuterInner(0, i));
|
|
205
|
+
for(Index i = 1; i < xpr.outerSize(); ++i)
|
|
206
|
+
for(Index j = 0; j < xpr.innerSize(); ++j)
|
|
207
|
+
res = func(res, eval.coeffByOuterInner(i, j));
|
|
208
|
+
return res;
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
template<typename Func, typename Evaluator>
|
|
213
|
+
struct redux_impl<Func,Evaluator, DefaultTraversal, CompleteUnrolling>
|
|
214
|
+
: redux_novec_unroller<Func,Evaluator, 0, Evaluator::SizeAtCompileTime>
|
|
215
|
+
{
|
|
216
|
+
typedef redux_novec_unroller<Func,Evaluator, 0, Evaluator::SizeAtCompileTime> Base;
|
|
217
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
218
|
+
template<typename XprType>
|
|
219
|
+
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE
|
|
220
|
+
Scalar run(const Evaluator &eval, const Func& func, const XprType& /*xpr*/)
|
|
221
|
+
{
|
|
222
|
+
return Base::run(eval,func);
|
|
223
|
+
}
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
template<typename Func, typename Evaluator>
|
|
227
|
+
struct redux_impl<Func, Evaluator, LinearVectorizedTraversal, NoUnrolling>
|
|
228
|
+
{
|
|
229
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
230
|
+
typedef typename redux_traits<Func, Evaluator>::PacketType PacketScalar;
|
|
231
|
+
|
|
232
|
+
template<typename XprType>
|
|
233
|
+
static Scalar run(const Evaluator &eval, const Func& func, const XprType& xpr)
|
|
234
|
+
{
|
|
235
|
+
const Index size = xpr.size();
|
|
236
|
+
|
|
237
|
+
const Index packetSize = redux_traits<Func, Evaluator>::PacketSize;
|
|
238
|
+
const int packetAlignment = unpacket_traits<PacketScalar>::alignment;
|
|
239
|
+
enum {
|
|
240
|
+
alignment0 = (bool(Evaluator::Flags & DirectAccessBit) && bool(packet_traits<Scalar>::AlignedOnScalar)) ? int(packetAlignment) : int(Unaligned),
|
|
241
|
+
alignment = EIGEN_PLAIN_ENUM_MAX(alignment0, Evaluator::Alignment)
|
|
242
|
+
};
|
|
243
|
+
const Index alignedStart = internal::first_default_aligned(xpr);
|
|
244
|
+
const Index alignedSize2 = ((size-alignedStart)/(2*packetSize))*(2*packetSize);
|
|
245
|
+
const Index alignedSize = ((size-alignedStart)/(packetSize))*(packetSize);
|
|
246
|
+
const Index alignedEnd2 = alignedStart + alignedSize2;
|
|
247
|
+
const Index alignedEnd = alignedStart + alignedSize;
|
|
248
|
+
Scalar res;
|
|
249
|
+
if(alignedSize)
|
|
250
|
+
{
|
|
251
|
+
PacketScalar packet_res0 = eval.template packet<alignment,PacketScalar>(alignedStart);
|
|
252
|
+
if(alignedSize>packetSize) // we have at least two packets to partly unroll the loop
|
|
253
|
+
{
|
|
254
|
+
PacketScalar packet_res1 = eval.template packet<alignment,PacketScalar>(alignedStart+packetSize);
|
|
255
|
+
for(Index index = alignedStart + 2*packetSize; index < alignedEnd2; index += 2*packetSize)
|
|
256
|
+
{
|
|
257
|
+
packet_res0 = func.packetOp(packet_res0, eval.template packet<alignment,PacketScalar>(index));
|
|
258
|
+
packet_res1 = func.packetOp(packet_res1, eval.template packet<alignment,PacketScalar>(index+packetSize));
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
packet_res0 = func.packetOp(packet_res0,packet_res1);
|
|
262
|
+
if(alignedEnd>alignedEnd2)
|
|
263
|
+
packet_res0 = func.packetOp(packet_res0, eval.template packet<alignment,PacketScalar>(alignedEnd2));
|
|
264
|
+
}
|
|
265
|
+
res = func.predux(packet_res0);
|
|
266
|
+
|
|
267
|
+
for(Index index = 0; index < alignedStart; ++index)
|
|
268
|
+
res = func(res,eval.coeff(index));
|
|
269
|
+
|
|
270
|
+
for(Index index = alignedEnd; index < size; ++index)
|
|
271
|
+
res = func(res,eval.coeff(index));
|
|
272
|
+
}
|
|
273
|
+
else // too small to vectorize anything.
|
|
274
|
+
// since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
|
|
275
|
+
{
|
|
276
|
+
res = eval.coeff(0);
|
|
277
|
+
for(Index index = 1; index < size; ++index)
|
|
278
|
+
res = func(res,eval.coeff(index));
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return res;
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// NOTE: for SliceVectorizedTraversal we simply bypass unrolling
|
|
286
|
+
template<typename Func, typename Evaluator, int Unrolling>
|
|
287
|
+
struct redux_impl<Func, Evaluator, SliceVectorizedTraversal, Unrolling>
|
|
288
|
+
{
|
|
289
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
290
|
+
typedef typename redux_traits<Func, Evaluator>::PacketType PacketType;
|
|
291
|
+
|
|
292
|
+
template<typename XprType>
|
|
293
|
+
EIGEN_DEVICE_FUNC static Scalar run(const Evaluator &eval, const Func& func, const XprType& xpr)
|
|
294
|
+
{
|
|
295
|
+
eigen_assert(xpr.rows()>0 && xpr.cols()>0 && "you are using an empty matrix");
|
|
296
|
+
const Index innerSize = xpr.innerSize();
|
|
297
|
+
const Index outerSize = xpr.outerSize();
|
|
298
|
+
enum {
|
|
299
|
+
packetSize = redux_traits<Func, Evaluator>::PacketSize
|
|
300
|
+
};
|
|
301
|
+
const Index packetedInnerSize = ((innerSize)/packetSize)*packetSize;
|
|
302
|
+
Scalar res;
|
|
303
|
+
if(packetedInnerSize)
|
|
304
|
+
{
|
|
305
|
+
PacketType packet_res = eval.template packet<Unaligned,PacketType>(0,0);
|
|
306
|
+
for(Index j=0; j<outerSize; ++j)
|
|
307
|
+
for(Index i=(j==0?packetSize:0); i<packetedInnerSize; i+=Index(packetSize))
|
|
308
|
+
packet_res = func.packetOp(packet_res, eval.template packetByOuterInner<Unaligned,PacketType>(j,i));
|
|
309
|
+
|
|
310
|
+
res = func.predux(packet_res);
|
|
311
|
+
for(Index j=0; j<outerSize; ++j)
|
|
312
|
+
for(Index i=packetedInnerSize; i<innerSize; ++i)
|
|
313
|
+
res = func(res, eval.coeffByOuterInner(j,i));
|
|
314
|
+
}
|
|
315
|
+
else // too small to vectorize anything.
|
|
316
|
+
// since this is dynamic-size hence inefficient anyway for such small sizes, don't try to optimize.
|
|
317
|
+
{
|
|
318
|
+
res = redux_impl<Func, Evaluator, DefaultTraversal, NoUnrolling>::run(eval, func, xpr);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return res;
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
template<typename Func, typename Evaluator>
|
|
326
|
+
struct redux_impl<Func, Evaluator, LinearVectorizedTraversal, CompleteUnrolling>
|
|
327
|
+
{
|
|
328
|
+
typedef typename Evaluator::Scalar Scalar;
|
|
329
|
+
|
|
330
|
+
typedef typename redux_traits<Func, Evaluator>::PacketType PacketType;
|
|
331
|
+
enum {
|
|
332
|
+
PacketSize = redux_traits<Func, Evaluator>::PacketSize,
|
|
333
|
+
Size = Evaluator::SizeAtCompileTime,
|
|
334
|
+
VectorizedSize = (int(Size) / int(PacketSize)) * int(PacketSize)
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
template<typename XprType>
|
|
338
|
+
EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE
|
|
339
|
+
Scalar run(const Evaluator &eval, const Func& func, const XprType &xpr)
|
|
340
|
+
{
|
|
341
|
+
EIGEN_ONLY_USED_FOR_DEBUG(xpr)
|
|
342
|
+
eigen_assert(xpr.rows()>0 && xpr.cols()>0 && "you are using an empty matrix");
|
|
343
|
+
if (VectorizedSize > 0) {
|
|
344
|
+
Scalar res = func.predux(redux_vec_unroller<Func, Evaluator, 0, Size / PacketSize>::template run<PacketType>(eval,func));
|
|
345
|
+
if (VectorizedSize != Size)
|
|
346
|
+
res = func(res,redux_novec_unroller<Func, Evaluator, VectorizedSize, Size-VectorizedSize>::run(eval,func));
|
|
347
|
+
return res;
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
return redux_novec_unroller<Func, Evaluator, 0, Size>::run(eval,func);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
// evaluator adaptor
|
|
356
|
+
template<typename _XprType>
|
|
357
|
+
class redux_evaluator : public internal::evaluator<_XprType>
|
|
358
|
+
{
|
|
359
|
+
typedef internal::evaluator<_XprType> Base;
|
|
360
|
+
public:
|
|
361
|
+
typedef _XprType XprType;
|
|
362
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
363
|
+
explicit redux_evaluator(const XprType &xpr) : Base(xpr) {}
|
|
364
|
+
|
|
365
|
+
typedef typename XprType::Scalar Scalar;
|
|
366
|
+
typedef typename XprType::CoeffReturnType CoeffReturnType;
|
|
367
|
+
typedef typename XprType::PacketScalar PacketScalar;
|
|
368
|
+
|
|
369
|
+
enum {
|
|
370
|
+
MaxRowsAtCompileTime = XprType::MaxRowsAtCompileTime,
|
|
371
|
+
MaxColsAtCompileTime = XprType::MaxColsAtCompileTime,
|
|
372
|
+
// TODO we should not remove DirectAccessBit and rather find an elegant way to query the alignment offset at runtime from the evaluator
|
|
373
|
+
Flags = Base::Flags & ~DirectAccessBit,
|
|
374
|
+
IsRowMajor = XprType::IsRowMajor,
|
|
375
|
+
SizeAtCompileTime = XprType::SizeAtCompileTime,
|
|
376
|
+
InnerSizeAtCompileTime = XprType::InnerSizeAtCompileTime
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
380
|
+
CoeffReturnType coeffByOuterInner(Index outer, Index inner) const
|
|
381
|
+
{ return Base::coeff(IsRowMajor ? outer : inner, IsRowMajor ? inner : outer); }
|
|
382
|
+
|
|
383
|
+
template<int LoadMode, typename PacketType>
|
|
384
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
385
|
+
PacketType packetByOuterInner(Index outer, Index inner) const
|
|
386
|
+
{ return Base::template packet<LoadMode,PacketType>(IsRowMajor ? outer : inner, IsRowMajor ? inner : outer); }
|
|
387
|
+
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
} // end namespace internal
|
|
391
|
+
|
|
392
|
+
/***************************************************************************
|
|
393
|
+
* Part 4 : public API
|
|
394
|
+
***************************************************************************/
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
/** \returns the result of a full redux operation on the whole matrix or vector using \a func
|
|
398
|
+
*
|
|
399
|
+
* The template parameter \a BinaryOp is the type of the functor \a func which must be
|
|
400
|
+
* an associative operator. Both current C++98 and C++11 functor styles are handled.
|
|
401
|
+
*
|
|
402
|
+
* \warning the matrix must be not empty, otherwise an assertion is triggered.
|
|
403
|
+
*
|
|
404
|
+
* \sa DenseBase::sum(), DenseBase::minCoeff(), DenseBase::maxCoeff(), MatrixBase::colwise(), MatrixBase::rowwise()
|
|
405
|
+
*/
|
|
406
|
+
template<typename Derived>
|
|
407
|
+
template<typename Func>
|
|
408
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
409
|
+
DenseBase<Derived>::redux(const Func& func) const
|
|
410
|
+
{
|
|
411
|
+
eigen_assert(this->rows()>0 && this->cols()>0 && "you are using an empty matrix");
|
|
412
|
+
|
|
413
|
+
typedef typename internal::redux_evaluator<Derived> ThisEvaluator;
|
|
414
|
+
ThisEvaluator thisEval(derived());
|
|
415
|
+
|
|
416
|
+
// The initial expression is passed to the reducer as an additional argument instead of
|
|
417
|
+
// passing it as a member of redux_evaluator to help
|
|
418
|
+
return internal::redux_impl<Func, ThisEvaluator>::run(thisEval, func, derived());
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
/** \returns the minimum of all coefficients of \c *this.
|
|
422
|
+
* In case \c *this contains NaN, NaNPropagation determines the behavior:
|
|
423
|
+
* NaNPropagation == PropagateFast : undefined
|
|
424
|
+
* NaNPropagation == PropagateNaN : result is NaN
|
|
425
|
+
* NaNPropagation == PropagateNumbers : result is minimum of elements that are not NaN
|
|
426
|
+
* \warning the matrix must be not empty, otherwise an assertion is triggered.
|
|
427
|
+
*/
|
|
428
|
+
template<typename Derived>
|
|
429
|
+
template<int NaNPropagation>
|
|
430
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
431
|
+
DenseBase<Derived>::minCoeff() const
|
|
432
|
+
{
|
|
433
|
+
return derived().redux(Eigen::internal::scalar_min_op<Scalar,Scalar, NaNPropagation>());
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/** \returns the maximum of all coefficients of \c *this.
|
|
437
|
+
* In case \c *this contains NaN, NaNPropagation determines the behavior:
|
|
438
|
+
* NaNPropagation == PropagateFast : undefined
|
|
439
|
+
* NaNPropagation == PropagateNaN : result is NaN
|
|
440
|
+
* NaNPropagation == PropagateNumbers : result is maximum of elements that are not NaN
|
|
441
|
+
* \warning the matrix must be not empty, otherwise an assertion is triggered.
|
|
442
|
+
*/
|
|
443
|
+
template<typename Derived>
|
|
444
|
+
template<int NaNPropagation>
|
|
445
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
446
|
+
DenseBase<Derived>::maxCoeff() const
|
|
447
|
+
{
|
|
448
|
+
return derived().redux(Eigen::internal::scalar_max_op<Scalar,Scalar, NaNPropagation>());
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/** \returns the sum of all coefficients of \c *this
|
|
452
|
+
*
|
|
453
|
+
* If \c *this is empty, then the value 0 is returned.
|
|
454
|
+
*
|
|
455
|
+
* \sa trace(), prod(), mean()
|
|
456
|
+
*/
|
|
457
|
+
template<typename Derived>
|
|
458
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
459
|
+
DenseBase<Derived>::sum() const
|
|
460
|
+
{
|
|
461
|
+
if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
|
|
462
|
+
return Scalar(0);
|
|
463
|
+
return derived().redux(Eigen::internal::scalar_sum_op<Scalar,Scalar>());
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/** \returns the mean of all coefficients of *this
|
|
467
|
+
*
|
|
468
|
+
* \sa trace(), prod(), sum()
|
|
469
|
+
*/
|
|
470
|
+
template<typename Derived>
|
|
471
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
472
|
+
DenseBase<Derived>::mean() const
|
|
473
|
+
{
|
|
474
|
+
#ifdef __INTEL_COMPILER
|
|
475
|
+
#pragma warning push
|
|
476
|
+
#pragma warning ( disable : 2259 )
|
|
477
|
+
#endif
|
|
478
|
+
return Scalar(derived().redux(Eigen::internal::scalar_sum_op<Scalar,Scalar>())) / Scalar(this->size());
|
|
479
|
+
#ifdef __INTEL_COMPILER
|
|
480
|
+
#pragma warning pop
|
|
481
|
+
#endif
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
/** \returns the product of all coefficients of *this
|
|
485
|
+
*
|
|
486
|
+
* Example: \include MatrixBase_prod.cpp
|
|
487
|
+
* Output: \verbinclude MatrixBase_prod.out
|
|
488
|
+
*
|
|
489
|
+
* \sa sum(), mean(), trace()
|
|
490
|
+
*/
|
|
491
|
+
template<typename Derived>
|
|
492
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
493
|
+
DenseBase<Derived>::prod() const
|
|
494
|
+
{
|
|
495
|
+
if(SizeAtCompileTime==0 || (SizeAtCompileTime==Dynamic && size()==0))
|
|
496
|
+
return Scalar(1);
|
|
497
|
+
return derived().redux(Eigen::internal::scalar_product_op<Scalar>());
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
/** \returns the trace of \c *this, i.e. the sum of the coefficients on the main diagonal.
|
|
501
|
+
*
|
|
502
|
+
* \c *this can be any matrix, not necessarily square.
|
|
503
|
+
*
|
|
504
|
+
* \sa diagonal(), sum()
|
|
505
|
+
*/
|
|
506
|
+
template<typename Derived>
|
|
507
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::traits<Derived>::Scalar
|
|
508
|
+
MatrixBase<Derived>::trace() const
|
|
509
|
+
{
|
|
510
|
+
return derived().diagonal().sum();
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
} // end namespace Eigen
|
|
514
|
+
|
|
515
|
+
#endif // EIGEN_REDUX_H
|