pylibsparseir 0.1.0__cp310-cp310-macosx_15_0_arm64.whl → 0.6.0__cp310-cp310-macosx_15_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pylibsparseir might be problematic. Click here for more details.
- include/eigen3/Eigen/Cholesky +45 -0
- include/eigen3/Eigen/CholmodSupport +48 -0
- include/eigen3/Eigen/Core +384 -0
- include/eigen3/Eigen/Dense +7 -0
- include/eigen3/Eigen/Eigen +2 -0
- include/eigen3/Eigen/Eigenvalues +60 -0
- include/eigen3/Eigen/Geometry +59 -0
- include/eigen3/Eigen/Householder +29 -0
- include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- include/eigen3/Eigen/Jacobi +32 -0
- include/eigen3/Eigen/KLUSupport +41 -0
- include/eigen3/Eigen/LU +47 -0
- include/eigen3/Eigen/MetisSupport +35 -0
- include/eigen3/Eigen/OrderingMethods +70 -0
- include/eigen3/Eigen/PaStiXSupport +49 -0
- include/eigen3/Eigen/PardisoSupport +35 -0
- include/eigen3/Eigen/QR +50 -0
- include/eigen3/Eigen/QtAlignedMalloc +39 -0
- include/eigen3/Eigen/SPQRSupport +34 -0
- include/eigen3/Eigen/SVD +50 -0
- include/eigen3/Eigen/Sparse +34 -0
- include/eigen3/Eigen/SparseCholesky +37 -0
- include/eigen3/Eigen/SparseCore +69 -0
- include/eigen3/Eigen/SparseLU +50 -0
- include/eigen3/Eigen/SparseQR +36 -0
- include/eigen3/Eigen/StdDeque +27 -0
- include/eigen3/Eigen/StdList +26 -0
- include/eigen3/Eigen/StdVector +27 -0
- include/eigen3/Eigen/SuperLUSupport +64 -0
- include/eigen3/Eigen/UmfPackSupport +40 -0
- include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- include/eigen3/Eigen/src/Core/Array.h +417 -0
- include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- include/eigen3/Eigen/src/Core/Assign.h +90 -0
- include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- include/eigen3/Eigen/src/Core/Block.h +448 -0
- include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- include/eigen3/Eigen/src/Core/Dot.h +318 -0
- include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- include/eigen3/Eigen/src/Core/IO.h +258 -0
- include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- include/eigen3/Eigen/src/Core/Map.h +171 -0
- include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- include/eigen3/Eigen/src/Core/Product.h +191 -0
- include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- include/eigen3/Eigen/src/Core/Random.h +218 -0
- include/eigen3/Eigen/src/Core/Redux.h +515 -0
- include/eigen3/Eigen/src/Core/Ref.h +381 -0
- include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- include/eigen3/Eigen/src/Core/Select.h +164 -0
- include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- include/eigen3/Eigen/src/Core/Solve.h +188 -0
- include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- include/eigen3/Eigen/src/Core/Stride.h +116 -0
- include/eigen3/Eigen/src/Core/Swap.h +68 -0
- include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- include/eigen3/Eigen/src/misc/Image.h +82 -0
- include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- include/eigen3/Eigen/src/misc/blas.h +440 -0
- include/eigen3/Eigen/src/misc/lapack.h +152 -0
- include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- include/eigen3/signature_of_eigen3_matrix_library +1 -0
- include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- include/eigen3/unsupported/Eigen/BVH +95 -0
- include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- include/eigen3/unsupported/Eigen/FFT +419 -0
- include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- include/eigen3/unsupported/Eigen/Polynomials +137 -0
- include/eigen3/unsupported/Eigen/Skyline +39 -0
- include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- include/eigen3/unsupported/Eigen/Splines +35 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- pylibsparseir/__init__.py +31 -0
- pylibsparseir/clean_build_artifacts.py +0 -1
- pylibsparseir/core.py +178 -62
- pylibsparseir/libsparseir.dylib +0 -0
- pylibsparseir-0.6.0.dist-info/METADATA +213 -0
- pylibsparseir-0.6.0.dist-info/RECORD +545 -0
- {pylibsparseir-0.1.0.dist-info → pylibsparseir-0.6.0.dist-info}/WHEEL +1 -1
- pylibsparseir-0.6.0.dist-info/licenses/LICENSE +21 -0
- share/eigen3/cmake/Eigen3Config.cmake +37 -0
- share/eigen3/cmake/Eigen3ConfigVersion.cmake +65 -0
- share/eigen3/cmake/Eigen3Targets.cmake +106 -0
- share/eigen3/cmake/UseEigen3.cmake +6 -0
- share/pkgconfig/eigen3.pc +9 -0
- pylibsparseir/libsparseir.0.4.2.dylib +0 -0
- pylibsparseir/libsparseir.0.dylib +0 -0
- pylibsparseir-0.1.0.dist-info/METADATA +0 -130
- pylibsparseir-0.1.0.dist-info/RECORD +0 -12
- pylibsparseir-0.1.0.dist-info/entry_points.txt +0 -2
- pylibsparseir-0.1.0.dist-info/top_level.txt +0 -1
|
@@ -0,0 +1,472 @@
|
|
|
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_MATRIX_MATRIX_H
|
|
11
|
+
#define EIGEN_TRIANGULAR_MATRIX_MATRIX_H
|
|
12
|
+
|
|
13
|
+
namespace Eigen {
|
|
14
|
+
|
|
15
|
+
namespace internal {
|
|
16
|
+
|
|
17
|
+
// template<typename Scalar, int mr, int StorageOrder, bool Conjugate, int Mode>
|
|
18
|
+
// struct gemm_pack_lhs_triangular
|
|
19
|
+
// {
|
|
20
|
+
// Matrix<Scalar,mr,mr,
|
|
21
|
+
// void operator()(Scalar* blockA, const EIGEN_RESTRICT Scalar* _lhs, int lhsStride, int depth, int rows)
|
|
22
|
+
// {
|
|
23
|
+
// conj_if<NumTraits<Scalar>::IsComplex && Conjugate> cj;
|
|
24
|
+
// const_blas_data_mapper<Scalar, StorageOrder> lhs(_lhs,lhsStride);
|
|
25
|
+
// int count = 0;
|
|
26
|
+
// const int peeled_mc = (rows/mr)*mr;
|
|
27
|
+
// for(int i=0; i<peeled_mc; i+=mr)
|
|
28
|
+
// {
|
|
29
|
+
// for(int k=0; k<depth; k++)
|
|
30
|
+
// for(int w=0; w<mr; w++)
|
|
31
|
+
// blockA[count++] = cj(lhs(i+w, k));
|
|
32
|
+
// }
|
|
33
|
+
// for(int i=peeled_mc; i<rows; i++)
|
|
34
|
+
// {
|
|
35
|
+
// for(int k=0; k<depth; k++)
|
|
36
|
+
// blockA[count++] = cj(lhs(i, k));
|
|
37
|
+
// }
|
|
38
|
+
// }
|
|
39
|
+
// };
|
|
40
|
+
|
|
41
|
+
/* Optimized triangular matrix * matrix (_TRMM++) product built on top of
|
|
42
|
+
* the general matrix matrix product.
|
|
43
|
+
*/
|
|
44
|
+
template <typename Scalar, typename Index,
|
|
45
|
+
int Mode, bool LhsIsTriangular,
|
|
46
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
47
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
48
|
+
int ResStorageOrder, int ResInnerStride,
|
|
49
|
+
int Version = Specialized>
|
|
50
|
+
struct product_triangular_matrix_matrix;
|
|
51
|
+
|
|
52
|
+
template <typename Scalar, typename Index,
|
|
53
|
+
int Mode, bool LhsIsTriangular,
|
|
54
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
55
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
56
|
+
int ResInnerStride, int Version>
|
|
57
|
+
struct product_triangular_matrix_matrix<Scalar,Index,Mode,LhsIsTriangular,
|
|
58
|
+
LhsStorageOrder,ConjugateLhs,
|
|
59
|
+
RhsStorageOrder,ConjugateRhs,RowMajor,ResInnerStride,Version>
|
|
60
|
+
{
|
|
61
|
+
static EIGEN_STRONG_INLINE void run(
|
|
62
|
+
Index rows, Index cols, Index depth,
|
|
63
|
+
const Scalar* lhs, Index lhsStride,
|
|
64
|
+
const Scalar* rhs, Index rhsStride,
|
|
65
|
+
Scalar* res, Index resIncr, Index resStride,
|
|
66
|
+
const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
|
|
67
|
+
{
|
|
68
|
+
product_triangular_matrix_matrix<Scalar, Index,
|
|
69
|
+
(Mode&(UnitDiag|ZeroDiag)) | ((Mode&Upper) ? Lower : Upper),
|
|
70
|
+
(!LhsIsTriangular),
|
|
71
|
+
RhsStorageOrder==RowMajor ? ColMajor : RowMajor,
|
|
72
|
+
ConjugateRhs,
|
|
73
|
+
LhsStorageOrder==RowMajor ? ColMajor : RowMajor,
|
|
74
|
+
ConjugateLhs,
|
|
75
|
+
ColMajor, ResInnerStride>
|
|
76
|
+
::run(cols, rows, depth, rhs, rhsStride, lhs, lhsStride, res, resIncr, resStride, alpha, blocking);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
// implements col-major += alpha * op(triangular) * op(general)
|
|
81
|
+
template <typename Scalar, typename Index, int Mode,
|
|
82
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
83
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
84
|
+
int ResInnerStride, int Version>
|
|
85
|
+
struct product_triangular_matrix_matrix<Scalar,Index,Mode,true,
|
|
86
|
+
LhsStorageOrder,ConjugateLhs,
|
|
87
|
+
RhsStorageOrder,ConjugateRhs,ColMajor,ResInnerStride,Version>
|
|
88
|
+
{
|
|
89
|
+
|
|
90
|
+
typedef gebp_traits<Scalar,Scalar> Traits;
|
|
91
|
+
enum {
|
|
92
|
+
SmallPanelWidth = 2 * EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
|
|
93
|
+
IsLower = (Mode&Lower) == Lower,
|
|
94
|
+
SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
static EIGEN_DONT_INLINE void run(
|
|
98
|
+
Index _rows, Index _cols, Index _depth,
|
|
99
|
+
const Scalar* _lhs, Index lhsStride,
|
|
100
|
+
const Scalar* _rhs, Index rhsStride,
|
|
101
|
+
Scalar* res, Index resIncr, Index resStride,
|
|
102
|
+
const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
template <typename Scalar, typename Index, int Mode,
|
|
106
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
107
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
108
|
+
int ResInnerStride, int Version>
|
|
109
|
+
EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,true,
|
|
110
|
+
LhsStorageOrder,ConjugateLhs,
|
|
111
|
+
RhsStorageOrder,ConjugateRhs,ColMajor,ResInnerStride,Version>::run(
|
|
112
|
+
Index _rows, Index _cols, Index _depth,
|
|
113
|
+
const Scalar* _lhs, Index lhsStride,
|
|
114
|
+
const Scalar* _rhs, Index rhsStride,
|
|
115
|
+
Scalar* _res, Index resIncr, Index resStride,
|
|
116
|
+
const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
|
|
117
|
+
{
|
|
118
|
+
// strip zeros
|
|
119
|
+
Index diagSize = (std::min)(_rows,_depth);
|
|
120
|
+
Index rows = IsLower ? _rows : diagSize;
|
|
121
|
+
Index depth = IsLower ? diagSize : _depth;
|
|
122
|
+
Index cols = _cols;
|
|
123
|
+
|
|
124
|
+
typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
|
|
125
|
+
typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
|
|
126
|
+
typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor, Unaligned, ResInnerStride> ResMapper;
|
|
127
|
+
LhsMapper lhs(_lhs,lhsStride);
|
|
128
|
+
RhsMapper rhs(_rhs,rhsStride);
|
|
129
|
+
ResMapper res(_res, resStride, resIncr);
|
|
130
|
+
|
|
131
|
+
Index kc = blocking.kc(); // cache block size along the K direction
|
|
132
|
+
Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
|
|
133
|
+
// The small panel size must not be larger than blocking size.
|
|
134
|
+
// Usually this should never be the case because SmallPanelWidth^2 is very small
|
|
135
|
+
// compared to L2 cache size, but let's be safe:
|
|
136
|
+
Index panelWidth = (std::min)(Index(SmallPanelWidth),(std::min)(kc,mc));
|
|
137
|
+
|
|
138
|
+
std::size_t sizeA = kc*mc;
|
|
139
|
+
std::size_t sizeB = kc*cols;
|
|
140
|
+
|
|
141
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
|
142
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
|
143
|
+
|
|
144
|
+
// To work around an "error: member reference base type 'Matrix<...>
|
|
145
|
+
// (Eigen::internal::constructor_without_unaligned_array_assert (*)())' is
|
|
146
|
+
// not a structure or union" compilation error in nvcc (tested V8.0.61),
|
|
147
|
+
// create a dummy internal::constructor_without_unaligned_array_assert
|
|
148
|
+
// object to pass to the Matrix constructor.
|
|
149
|
+
internal::constructor_without_unaligned_array_assert a;
|
|
150
|
+
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,LhsStorageOrder> triangularBuffer(a);
|
|
151
|
+
triangularBuffer.setZero();
|
|
152
|
+
if((Mode&ZeroDiag)==ZeroDiag)
|
|
153
|
+
triangularBuffer.diagonal().setZero();
|
|
154
|
+
else
|
|
155
|
+
triangularBuffer.diagonal().setOnes();
|
|
156
|
+
|
|
157
|
+
gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
|
|
158
|
+
gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, typename Traits::LhsPacket4Packing, LhsStorageOrder> pack_lhs;
|
|
159
|
+
gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder> pack_rhs;
|
|
160
|
+
|
|
161
|
+
for(Index k2=IsLower ? depth : 0;
|
|
162
|
+
IsLower ? k2>0 : k2<depth;
|
|
163
|
+
IsLower ? k2-=kc : k2+=kc)
|
|
164
|
+
{
|
|
165
|
+
Index actual_kc = (std::min)(IsLower ? k2 : depth-k2, kc);
|
|
166
|
+
Index actual_k2 = IsLower ? k2-actual_kc : k2;
|
|
167
|
+
|
|
168
|
+
// align blocks with the end of the triangular part for trapezoidal lhs
|
|
169
|
+
if((!IsLower)&&(k2<rows)&&(k2+actual_kc>rows))
|
|
170
|
+
{
|
|
171
|
+
actual_kc = rows-k2;
|
|
172
|
+
k2 = k2+actual_kc-kc;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
pack_rhs(blockB, rhs.getSubMapper(actual_k2,0), actual_kc, cols);
|
|
176
|
+
|
|
177
|
+
// the selected lhs's panel has to be split in three different parts:
|
|
178
|
+
// 1 - the part which is zero => skip it
|
|
179
|
+
// 2 - the diagonal block => special kernel
|
|
180
|
+
// 3 - the dense panel below (lower case) or above (upper case) the diagonal block => GEPP
|
|
181
|
+
|
|
182
|
+
// the block diagonal, if any:
|
|
183
|
+
if(IsLower || actual_k2<rows)
|
|
184
|
+
{
|
|
185
|
+
// for each small vertical panels of lhs
|
|
186
|
+
for (Index k1=0; k1<actual_kc; k1+=panelWidth)
|
|
187
|
+
{
|
|
188
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-k1, panelWidth);
|
|
189
|
+
Index lengthTarget = IsLower ? actual_kc-k1-actualPanelWidth : k1;
|
|
190
|
+
Index startBlock = actual_k2+k1;
|
|
191
|
+
Index blockBOffset = k1;
|
|
192
|
+
|
|
193
|
+
// => GEBP with the micro triangular block
|
|
194
|
+
// The trick is to pack this micro block while filling the opposite triangular part with zeros.
|
|
195
|
+
// To this end we do an extra triangular copy to a small temporary buffer
|
|
196
|
+
for (Index k=0;k<actualPanelWidth;++k)
|
|
197
|
+
{
|
|
198
|
+
if (SetDiag)
|
|
199
|
+
triangularBuffer.coeffRef(k,k) = lhs(startBlock+k,startBlock+k);
|
|
200
|
+
for (Index i=IsLower ? k+1 : 0; IsLower ? i<actualPanelWidth : i<k; ++i)
|
|
201
|
+
triangularBuffer.coeffRef(i,k) = lhs(startBlock+i,startBlock+k);
|
|
202
|
+
}
|
|
203
|
+
pack_lhs(blockA, LhsMapper(triangularBuffer.data(), triangularBuffer.outerStride()), actualPanelWidth, actualPanelWidth);
|
|
204
|
+
|
|
205
|
+
gebp_kernel(res.getSubMapper(startBlock, 0), blockA, blockB,
|
|
206
|
+
actualPanelWidth, actualPanelWidth, cols, alpha,
|
|
207
|
+
actualPanelWidth, actual_kc, 0, blockBOffset);
|
|
208
|
+
|
|
209
|
+
// GEBP with remaining micro panel
|
|
210
|
+
if (lengthTarget>0)
|
|
211
|
+
{
|
|
212
|
+
Index startTarget = IsLower ? actual_k2+k1+actualPanelWidth : actual_k2;
|
|
213
|
+
|
|
214
|
+
pack_lhs(blockA, lhs.getSubMapper(startTarget,startBlock), actualPanelWidth, lengthTarget);
|
|
215
|
+
|
|
216
|
+
gebp_kernel(res.getSubMapper(startTarget, 0), blockA, blockB,
|
|
217
|
+
lengthTarget, actualPanelWidth, cols, alpha,
|
|
218
|
+
actualPanelWidth, actual_kc, 0, blockBOffset);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// the part below (lower case) or above (upper case) the diagonal => GEPP
|
|
223
|
+
{
|
|
224
|
+
Index start = IsLower ? k2 : 0;
|
|
225
|
+
Index end = IsLower ? rows : (std::min)(actual_k2,rows);
|
|
226
|
+
for(Index i2=start; i2<end; i2+=mc)
|
|
227
|
+
{
|
|
228
|
+
const Index actual_mc = (std::min)(i2+mc,end)-i2;
|
|
229
|
+
gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr,Traits::LhsProgress, typename Traits::LhsPacket4Packing, LhsStorageOrder,false>()
|
|
230
|
+
(blockA, lhs.getSubMapper(i2, actual_k2), actual_kc, actual_mc);
|
|
231
|
+
|
|
232
|
+
gebp_kernel(res.getSubMapper(i2, 0), blockA, blockB, actual_mc,
|
|
233
|
+
actual_kc, cols, alpha, -1, -1, 0, 0);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
// implements col-major += alpha * op(general) * op(triangular)
|
|
240
|
+
template <typename Scalar, typename Index, int Mode,
|
|
241
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
242
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
243
|
+
int ResInnerStride, int Version>
|
|
244
|
+
struct product_triangular_matrix_matrix<Scalar,Index,Mode,false,
|
|
245
|
+
LhsStorageOrder,ConjugateLhs,
|
|
246
|
+
RhsStorageOrder,ConjugateRhs,ColMajor,ResInnerStride,Version>
|
|
247
|
+
{
|
|
248
|
+
typedef gebp_traits<Scalar,Scalar> Traits;
|
|
249
|
+
enum {
|
|
250
|
+
SmallPanelWidth = EIGEN_PLAIN_ENUM_MAX(Traits::mr,Traits::nr),
|
|
251
|
+
IsLower = (Mode&Lower) == Lower,
|
|
252
|
+
SetDiag = (Mode&(ZeroDiag|UnitDiag)) ? 0 : 1
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
static EIGEN_DONT_INLINE void run(
|
|
256
|
+
Index _rows, Index _cols, Index _depth,
|
|
257
|
+
const Scalar* _lhs, Index lhsStride,
|
|
258
|
+
const Scalar* _rhs, Index rhsStride,
|
|
259
|
+
Scalar* res, Index resIncr, Index resStride,
|
|
260
|
+
const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking);
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
template <typename Scalar, typename Index, int Mode,
|
|
264
|
+
int LhsStorageOrder, bool ConjugateLhs,
|
|
265
|
+
int RhsStorageOrder, bool ConjugateRhs,
|
|
266
|
+
int ResInnerStride, int Version>
|
|
267
|
+
EIGEN_DONT_INLINE void product_triangular_matrix_matrix<Scalar,Index,Mode,false,
|
|
268
|
+
LhsStorageOrder,ConjugateLhs,
|
|
269
|
+
RhsStorageOrder,ConjugateRhs,ColMajor,ResInnerStride,Version>::run(
|
|
270
|
+
Index _rows, Index _cols, Index _depth,
|
|
271
|
+
const Scalar* _lhs, Index lhsStride,
|
|
272
|
+
const Scalar* _rhs, Index rhsStride,
|
|
273
|
+
Scalar* _res, Index resIncr, Index resStride,
|
|
274
|
+
const Scalar& alpha, level3_blocking<Scalar,Scalar>& blocking)
|
|
275
|
+
{
|
|
276
|
+
const Index PacketBytes = packet_traits<Scalar>::size*sizeof(Scalar);
|
|
277
|
+
// strip zeros
|
|
278
|
+
Index diagSize = (std::min)(_cols,_depth);
|
|
279
|
+
Index rows = _rows;
|
|
280
|
+
Index depth = IsLower ? _depth : diagSize;
|
|
281
|
+
Index cols = IsLower ? diagSize : _cols;
|
|
282
|
+
|
|
283
|
+
typedef const_blas_data_mapper<Scalar, Index, LhsStorageOrder> LhsMapper;
|
|
284
|
+
typedef const_blas_data_mapper<Scalar, Index, RhsStorageOrder> RhsMapper;
|
|
285
|
+
typedef blas_data_mapper<typename Traits::ResScalar, Index, ColMajor, Unaligned, ResInnerStride> ResMapper;
|
|
286
|
+
LhsMapper lhs(_lhs,lhsStride);
|
|
287
|
+
RhsMapper rhs(_rhs,rhsStride);
|
|
288
|
+
ResMapper res(_res, resStride, resIncr);
|
|
289
|
+
|
|
290
|
+
Index kc = blocking.kc(); // cache block size along the K direction
|
|
291
|
+
Index mc = (std::min)(rows,blocking.mc()); // cache block size along the M direction
|
|
292
|
+
|
|
293
|
+
std::size_t sizeA = kc*mc;
|
|
294
|
+
std::size_t sizeB = kc*cols+EIGEN_MAX_ALIGN_BYTES/sizeof(Scalar);
|
|
295
|
+
|
|
296
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockA, sizeA, blocking.blockA());
|
|
297
|
+
ei_declare_aligned_stack_constructed_variable(Scalar, blockB, sizeB, blocking.blockB());
|
|
298
|
+
|
|
299
|
+
internal::constructor_without_unaligned_array_assert a;
|
|
300
|
+
Matrix<Scalar,SmallPanelWidth,SmallPanelWidth,RhsStorageOrder> triangularBuffer(a);
|
|
301
|
+
triangularBuffer.setZero();
|
|
302
|
+
if((Mode&ZeroDiag)==ZeroDiag)
|
|
303
|
+
triangularBuffer.diagonal().setZero();
|
|
304
|
+
else
|
|
305
|
+
triangularBuffer.diagonal().setOnes();
|
|
306
|
+
|
|
307
|
+
gebp_kernel<Scalar, Scalar, Index, ResMapper, Traits::mr, Traits::nr, ConjugateLhs, ConjugateRhs> gebp_kernel;
|
|
308
|
+
gemm_pack_lhs<Scalar, Index, LhsMapper, Traits::mr, Traits::LhsProgress, typename Traits::LhsPacket4Packing, LhsStorageOrder> pack_lhs;
|
|
309
|
+
gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder> pack_rhs;
|
|
310
|
+
gemm_pack_rhs<Scalar, Index, RhsMapper, Traits::nr,RhsStorageOrder,false,true> pack_rhs_panel;
|
|
311
|
+
|
|
312
|
+
for(Index k2=IsLower ? 0 : depth;
|
|
313
|
+
IsLower ? k2<depth : k2>0;
|
|
314
|
+
IsLower ? k2+=kc : k2-=kc)
|
|
315
|
+
{
|
|
316
|
+
Index actual_kc = (std::min)(IsLower ? depth-k2 : k2, kc);
|
|
317
|
+
Index actual_k2 = IsLower ? k2 : k2-actual_kc;
|
|
318
|
+
|
|
319
|
+
// align blocks with the end of the triangular part for trapezoidal rhs
|
|
320
|
+
if(IsLower && (k2<cols) && (actual_k2+actual_kc>cols))
|
|
321
|
+
{
|
|
322
|
+
actual_kc = cols-k2;
|
|
323
|
+
k2 = actual_k2 + actual_kc - kc;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// remaining size
|
|
327
|
+
Index rs = IsLower ? (std::min)(cols,actual_k2) : cols - k2;
|
|
328
|
+
// size of the triangular part
|
|
329
|
+
Index ts = (IsLower && actual_k2>=cols) ? 0 : actual_kc;
|
|
330
|
+
|
|
331
|
+
Scalar* geb = blockB+ts*ts;
|
|
332
|
+
geb = geb + internal::first_aligned<PacketBytes>(geb,PacketBytes/sizeof(Scalar));
|
|
333
|
+
|
|
334
|
+
pack_rhs(geb, rhs.getSubMapper(actual_k2,IsLower ? 0 : k2), actual_kc, rs);
|
|
335
|
+
|
|
336
|
+
// pack the triangular part of the rhs padding the unrolled blocks with zeros
|
|
337
|
+
if(ts>0)
|
|
338
|
+
{
|
|
339
|
+
for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
|
|
340
|
+
{
|
|
341
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
|
|
342
|
+
Index actual_j2 = actual_k2 + j2;
|
|
343
|
+
Index panelOffset = IsLower ? j2+actualPanelWidth : 0;
|
|
344
|
+
Index panelLength = IsLower ? actual_kc-j2-actualPanelWidth : j2;
|
|
345
|
+
// general part
|
|
346
|
+
pack_rhs_panel(blockB+j2*actual_kc,
|
|
347
|
+
rhs.getSubMapper(actual_k2+panelOffset, actual_j2),
|
|
348
|
+
panelLength, actualPanelWidth,
|
|
349
|
+
actual_kc, panelOffset);
|
|
350
|
+
|
|
351
|
+
// append the triangular part via a temporary buffer
|
|
352
|
+
for (Index j=0;j<actualPanelWidth;++j)
|
|
353
|
+
{
|
|
354
|
+
if (SetDiag)
|
|
355
|
+
triangularBuffer.coeffRef(j,j) = rhs(actual_j2+j,actual_j2+j);
|
|
356
|
+
for (Index k=IsLower ? j+1 : 0; IsLower ? k<actualPanelWidth : k<j; ++k)
|
|
357
|
+
triangularBuffer.coeffRef(k,j) = rhs(actual_j2+k,actual_j2+j);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
pack_rhs_panel(blockB+j2*actual_kc,
|
|
361
|
+
RhsMapper(triangularBuffer.data(), triangularBuffer.outerStride()),
|
|
362
|
+
actualPanelWidth, actualPanelWidth,
|
|
363
|
+
actual_kc, j2);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
for (Index i2=0; i2<rows; i2+=mc)
|
|
368
|
+
{
|
|
369
|
+
const Index actual_mc = (std::min)(mc,rows-i2);
|
|
370
|
+
pack_lhs(blockA, lhs.getSubMapper(i2, actual_k2), actual_kc, actual_mc);
|
|
371
|
+
|
|
372
|
+
// triangular kernel
|
|
373
|
+
if(ts>0)
|
|
374
|
+
{
|
|
375
|
+
for (Index j2=0; j2<actual_kc; j2+=SmallPanelWidth)
|
|
376
|
+
{
|
|
377
|
+
Index actualPanelWidth = std::min<Index>(actual_kc-j2, SmallPanelWidth);
|
|
378
|
+
Index panelLength = IsLower ? actual_kc-j2 : j2+actualPanelWidth;
|
|
379
|
+
Index blockOffset = IsLower ? j2 : 0;
|
|
380
|
+
|
|
381
|
+
gebp_kernel(res.getSubMapper(i2, actual_k2 + j2),
|
|
382
|
+
blockA, blockB+j2*actual_kc,
|
|
383
|
+
actual_mc, panelLength, actualPanelWidth,
|
|
384
|
+
alpha,
|
|
385
|
+
actual_kc, actual_kc, // strides
|
|
386
|
+
blockOffset, blockOffset);// offsets
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
gebp_kernel(res.getSubMapper(i2, IsLower ? 0 : k2),
|
|
390
|
+
blockA, geb, actual_mc, actual_kc, rs,
|
|
391
|
+
alpha,
|
|
392
|
+
-1, -1, 0, 0);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/***************************************************************************
|
|
398
|
+
* Wrapper to product_triangular_matrix_matrix
|
|
399
|
+
***************************************************************************/
|
|
400
|
+
|
|
401
|
+
} // end namespace internal
|
|
402
|
+
|
|
403
|
+
namespace internal {
|
|
404
|
+
template<int Mode, bool LhsIsTriangular, typename Lhs, typename Rhs>
|
|
405
|
+
struct triangular_product_impl<Mode,LhsIsTriangular,Lhs,false,Rhs,false>
|
|
406
|
+
{
|
|
407
|
+
template<typename Dest> static void run(Dest& dst, const Lhs &a_lhs, const Rhs &a_rhs, const typename Dest::Scalar& alpha)
|
|
408
|
+
{
|
|
409
|
+
typedef typename Lhs::Scalar LhsScalar;
|
|
410
|
+
typedef typename Rhs::Scalar RhsScalar;
|
|
411
|
+
typedef typename Dest::Scalar Scalar;
|
|
412
|
+
|
|
413
|
+
typedef internal::blas_traits<Lhs> LhsBlasTraits;
|
|
414
|
+
typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType;
|
|
415
|
+
typedef typename internal::remove_all<ActualLhsType>::type ActualLhsTypeCleaned;
|
|
416
|
+
typedef internal::blas_traits<Rhs> RhsBlasTraits;
|
|
417
|
+
typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
|
|
418
|
+
typedef typename internal::remove_all<ActualRhsType>::type ActualRhsTypeCleaned;
|
|
419
|
+
|
|
420
|
+
typename internal::add_const_on_value_type<ActualLhsType>::type lhs = LhsBlasTraits::extract(a_lhs);
|
|
421
|
+
typename internal::add_const_on_value_type<ActualRhsType>::type rhs = RhsBlasTraits::extract(a_rhs);
|
|
422
|
+
|
|
423
|
+
LhsScalar lhs_alpha = LhsBlasTraits::extractScalarFactor(a_lhs);
|
|
424
|
+
RhsScalar rhs_alpha = RhsBlasTraits::extractScalarFactor(a_rhs);
|
|
425
|
+
Scalar actualAlpha = alpha * lhs_alpha * rhs_alpha;
|
|
426
|
+
|
|
427
|
+
typedef internal::gemm_blocking_space<(Dest::Flags&RowMajorBit) ? RowMajor : ColMajor,Scalar,Scalar,
|
|
428
|
+
Lhs::MaxRowsAtCompileTime, Rhs::MaxColsAtCompileTime, Lhs::MaxColsAtCompileTime,4> BlockingType;
|
|
429
|
+
|
|
430
|
+
enum { IsLower = (Mode&Lower) == Lower };
|
|
431
|
+
Index stripedRows = ((!LhsIsTriangular) || (IsLower)) ? lhs.rows() : (std::min)(lhs.rows(),lhs.cols());
|
|
432
|
+
Index stripedCols = ((LhsIsTriangular) || (!IsLower)) ? rhs.cols() : (std::min)(rhs.cols(),rhs.rows());
|
|
433
|
+
Index stripedDepth = LhsIsTriangular ? ((!IsLower) ? lhs.cols() : (std::min)(lhs.cols(),lhs.rows()))
|
|
434
|
+
: ((IsLower) ? rhs.rows() : (std::min)(rhs.rows(),rhs.cols()));
|
|
435
|
+
|
|
436
|
+
BlockingType blocking(stripedRows, stripedCols, stripedDepth, 1, false);
|
|
437
|
+
|
|
438
|
+
internal::product_triangular_matrix_matrix<Scalar, Index,
|
|
439
|
+
Mode, LhsIsTriangular,
|
|
440
|
+
(internal::traits<ActualLhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor, LhsBlasTraits::NeedToConjugate,
|
|
441
|
+
(internal::traits<ActualRhsTypeCleaned>::Flags&RowMajorBit) ? RowMajor : ColMajor, RhsBlasTraits::NeedToConjugate,
|
|
442
|
+
(internal::traits<Dest >::Flags&RowMajorBit) ? RowMajor : ColMajor, Dest::InnerStrideAtCompileTime>
|
|
443
|
+
::run(
|
|
444
|
+
stripedRows, stripedCols, stripedDepth, // sizes
|
|
445
|
+
&lhs.coeffRef(0,0), lhs.outerStride(), // lhs info
|
|
446
|
+
&rhs.coeffRef(0,0), rhs.outerStride(), // rhs info
|
|
447
|
+
&dst.coeffRef(0,0), dst.innerStride(), dst.outerStride(), // result info
|
|
448
|
+
actualAlpha, blocking
|
|
449
|
+
);
|
|
450
|
+
|
|
451
|
+
// Apply correction if the diagonal is unit and a scalar factor was nested:
|
|
452
|
+
if ((Mode&UnitDiag)==UnitDiag)
|
|
453
|
+
{
|
|
454
|
+
if (LhsIsTriangular && lhs_alpha!=LhsScalar(1))
|
|
455
|
+
{
|
|
456
|
+
Index diagSize = (std::min)(lhs.rows(),lhs.cols());
|
|
457
|
+
dst.topRows(diagSize) -= ((lhs_alpha-LhsScalar(1))*a_rhs).topRows(diagSize);
|
|
458
|
+
}
|
|
459
|
+
else if ((!LhsIsTriangular) && rhs_alpha!=RhsScalar(1))
|
|
460
|
+
{
|
|
461
|
+
Index diagSize = (std::min)(rhs.rows(),rhs.cols());
|
|
462
|
+
dst.leftCols(diagSize) -= (rhs_alpha-RhsScalar(1))*a_lhs.leftCols(diagSize);
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
} // end namespace internal
|
|
469
|
+
|
|
470
|
+
} // end namespace Eigen
|
|
471
|
+
|
|
472
|
+
#endif // EIGEN_TRIANGULAR_MATRIX_MATRIX_H
|