pylibsparseir 0.1.0__cp313-cp313-macosx_15_0_arm64.whl → 0.6.0__cp313-cp313-macosx_15_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pylibsparseir might be problematic. Click here for more details.
- include/eigen3/Eigen/Cholesky +45 -0
- include/eigen3/Eigen/CholmodSupport +48 -0
- include/eigen3/Eigen/Core +384 -0
- include/eigen3/Eigen/Dense +7 -0
- include/eigen3/Eigen/Eigen +2 -0
- include/eigen3/Eigen/Eigenvalues +60 -0
- include/eigen3/Eigen/Geometry +59 -0
- include/eigen3/Eigen/Householder +29 -0
- include/eigen3/Eigen/IterativeLinearSolvers +48 -0
- include/eigen3/Eigen/Jacobi +32 -0
- include/eigen3/Eigen/KLUSupport +41 -0
- include/eigen3/Eigen/LU +47 -0
- include/eigen3/Eigen/MetisSupport +35 -0
- include/eigen3/Eigen/OrderingMethods +70 -0
- include/eigen3/Eigen/PaStiXSupport +49 -0
- include/eigen3/Eigen/PardisoSupport +35 -0
- include/eigen3/Eigen/QR +50 -0
- include/eigen3/Eigen/QtAlignedMalloc +39 -0
- include/eigen3/Eigen/SPQRSupport +34 -0
- include/eigen3/Eigen/SVD +50 -0
- include/eigen3/Eigen/Sparse +34 -0
- include/eigen3/Eigen/SparseCholesky +37 -0
- include/eigen3/Eigen/SparseCore +69 -0
- include/eigen3/Eigen/SparseLU +50 -0
- include/eigen3/Eigen/SparseQR +36 -0
- include/eigen3/Eigen/StdDeque +27 -0
- include/eigen3/Eigen/StdList +26 -0
- include/eigen3/Eigen/StdVector +27 -0
- include/eigen3/Eigen/SuperLUSupport +64 -0
- include/eigen3/Eigen/UmfPackSupport +40 -0
- include/eigen3/Eigen/src/Cholesky/LDLT.h +688 -0
- include/eigen3/Eigen/src/Cholesky/LLT.h +558 -0
- include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +99 -0
- include/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +682 -0
- include/eigen3/Eigen/src/Core/ArithmeticSequence.h +413 -0
- include/eigen3/Eigen/src/Core/Array.h +417 -0
- include/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
- include/eigen3/Eigen/src/Core/ArrayWrapper.h +209 -0
- include/eigen3/Eigen/src/Core/Assign.h +90 -0
- include/eigen3/Eigen/src/Core/AssignEvaluator.h +1010 -0
- include/eigen3/Eigen/src/Core/Assign_MKL.h +178 -0
- include/eigen3/Eigen/src/Core/BandMatrix.h +353 -0
- include/eigen3/Eigen/src/Core/Block.h +448 -0
- include/eigen3/Eigen/src/Core/BooleanRedux.h +162 -0
- include/eigen3/Eigen/src/Core/CommaInitializer.h +164 -0
- include/eigen3/Eigen/src/Core/ConditionEstimator.h +175 -0
- include/eigen3/Eigen/src/Core/CoreEvaluators.h +1741 -0
- include/eigen3/Eigen/src/Core/CoreIterators.h +132 -0
- include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +183 -0
- include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +1001 -0
- include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +197 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +103 -0
- include/eigen3/Eigen/src/Core/CwiseUnaryView.h +132 -0
- include/eigen3/Eigen/src/Core/DenseBase.h +701 -0
- include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +685 -0
- include/eigen3/Eigen/src/Core/DenseStorage.h +652 -0
- include/eigen3/Eigen/src/Core/Diagonal.h +258 -0
- include/eigen3/Eigen/src/Core/DiagonalMatrix.h +391 -0
- include/eigen3/Eigen/src/Core/DiagonalProduct.h +28 -0
- include/eigen3/Eigen/src/Core/Dot.h +318 -0
- include/eigen3/Eigen/src/Core/EigenBase.h +160 -0
- include/eigen3/Eigen/src/Core/ForceAlignedAccess.h +150 -0
- include/eigen3/Eigen/src/Core/Fuzzy.h +155 -0
- include/eigen3/Eigen/src/Core/GeneralProduct.h +465 -0
- include/eigen3/Eigen/src/Core/GenericPacketMath.h +1040 -0
- include/eigen3/Eigen/src/Core/GlobalFunctions.h +194 -0
- include/eigen3/Eigen/src/Core/IO.h +258 -0
- include/eigen3/Eigen/src/Core/IndexedView.h +237 -0
- include/eigen3/Eigen/src/Core/Inverse.h +117 -0
- include/eigen3/Eigen/src/Core/Map.h +171 -0
- include/eigen3/Eigen/src/Core/MapBase.h +310 -0
- include/eigen3/Eigen/src/Core/MathFunctions.h +2057 -0
- include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +200 -0
- include/eigen3/Eigen/src/Core/Matrix.h +565 -0
- include/eigen3/Eigen/src/Core/MatrixBase.h +547 -0
- include/eigen3/Eigen/src/Core/NestByValue.h +85 -0
- include/eigen3/Eigen/src/Core/NoAlias.h +109 -0
- include/eigen3/Eigen/src/Core/NumTraits.h +335 -0
- include/eigen3/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
- include/eigen3/Eigen/src/Core/PermutationMatrix.h +605 -0
- include/eigen3/Eigen/src/Core/PlainObjectBase.h +1128 -0
- include/eigen3/Eigen/src/Core/Product.h +191 -0
- include/eigen3/Eigen/src/Core/ProductEvaluators.h +1179 -0
- include/eigen3/Eigen/src/Core/Random.h +218 -0
- include/eigen3/Eigen/src/Core/Redux.h +515 -0
- include/eigen3/Eigen/src/Core/Ref.h +381 -0
- include/eigen3/Eigen/src/Core/Replicate.h +142 -0
- include/eigen3/Eigen/src/Core/Reshaped.h +454 -0
- include/eigen3/Eigen/src/Core/ReturnByValue.h +119 -0
- include/eigen3/Eigen/src/Core/Reverse.h +217 -0
- include/eigen3/Eigen/src/Core/Select.h +164 -0
- include/eigen3/Eigen/src/Core/SelfAdjointView.h +365 -0
- include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +47 -0
- include/eigen3/Eigen/src/Core/Solve.h +188 -0
- include/eigen3/Eigen/src/Core/SolveTriangular.h +235 -0
- include/eigen3/Eigen/src/Core/SolverBase.h +168 -0
- include/eigen3/Eigen/src/Core/StableNorm.h +251 -0
- include/eigen3/Eigen/src/Core/StlIterators.h +463 -0
- include/eigen3/Eigen/src/Core/Stride.h +116 -0
- include/eigen3/Eigen/src/Core/Swap.h +68 -0
- include/eigen3/Eigen/src/Core/Transpose.h +464 -0
- include/eigen3/Eigen/src/Core/Transpositions.h +386 -0
- include/eigen3/Eigen/src/Core/TriangularMatrix.h +1001 -0
- include/eigen3/Eigen/src/Core/VectorBlock.h +96 -0
- include/eigen3/Eigen/src/Core/VectorwiseOp.h +784 -0
- include/eigen3/Eigen/src/Core/Visitor.h +381 -0
- include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +372 -0
- include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +228 -0
- include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +1574 -0
- include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +115 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +362 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +2303 -0
- include/eigen3/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +417 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +90 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
- include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +2711 -0
- include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +258 -0
- include/eigen3/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
- include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +117 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
- include/eigen3/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
- include/eigen3/Eigen/src/Core/arch/Default/Half.h +942 -0
- include/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
- include/eigen3/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
- include/eigen3/Eigen/src/Core/arch/GPU/MathFunctions.h +103 -0
- include/eigen3/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
- include/eigen3/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
- include/eigen3/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- include/eigen3/Eigen/src/Core/arch/MSA/Complex.h +648 -0
- include/eigen3/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
- include/eigen3/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
- include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +584 -0
- include/eigen3/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
- include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +75 -0
- include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +4587 -0
- include/eigen3/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
- include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +351 -0
- include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +199 -0
- include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +1505 -0
- include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +142 -0
- include/eigen3/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
- include/eigen3/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
- include/eigen3/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
- include/eigen3/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +426 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +233 -0
- include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +1060 -0
- include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +177 -0
- include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +541 -0
- include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +189 -0
- include/eigen3/Eigen/src/Core/functors/StlFunctors.h +166 -0
- include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +25 -0
- include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +1131 -0
- include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2645 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +517 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +317 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +145 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +124 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +518 -0
- include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +136 -0
- include/eigen3/Eigen/src/Core/products/Parallelizer.h +180 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +544 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +295 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +262 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +118 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +133 -0
- include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +94 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +472 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +317 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +350 -0
- include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +255 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +337 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +167 -0
- include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +148 -0
- include/eigen3/Eigen/src/Core/util/BlasUtil.h +583 -0
- include/eigen3/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
- include/eigen3/Eigen/src/Core/util/Constants.h +563 -0
- include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +106 -0
- include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +322 -0
- include/eigen3/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
- include/eigen3/Eigen/src/Core/util/IntegralConstant.h +272 -0
- include/eigen3/Eigen/src/Core/util/MKL_support.h +137 -0
- include/eigen3/Eigen/src/Core/util/Macros.h +1464 -0
- include/eigen3/Eigen/src/Core/util/Memory.h +1163 -0
- include/eigen3/Eigen/src/Core/util/Meta.h +812 -0
- include/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
- include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +31 -0
- include/eigen3/Eigen/src/Core/util/ReshapedHelper.h +51 -0
- include/eigen3/Eigen/src/Core/util/StaticAssert.h +221 -0
- include/eigen3/Eigen/src/Core/util/SymbolicIndex.h +293 -0
- include/eigen3/Eigen/src/Core/util/XprHelper.h +856 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +346 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +462 -0
- include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +622 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +418 -0
- include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +226 -0
- include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +374 -0
- include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +158 -0
- include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +657 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +558 -0
- include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +77 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +904 -0
- include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +87 -0
- include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +561 -0
- include/eigen3/Eigen/src/Geometry/AlignedBox.h +486 -0
- include/eigen3/Eigen/src/Geometry/AngleAxis.h +247 -0
- include/eigen3/Eigen/src/Geometry/EulerAngles.h +114 -0
- include/eigen3/Eigen/src/Geometry/Homogeneous.h +501 -0
- include/eigen3/Eigen/src/Geometry/Hyperplane.h +282 -0
- include/eigen3/Eigen/src/Geometry/OrthoMethods.h +235 -0
- include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +232 -0
- include/eigen3/Eigen/src/Geometry/Quaternion.h +870 -0
- include/eigen3/Eigen/src/Geometry/Rotation2D.h +199 -0
- include/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
- include/eigen3/Eigen/src/Geometry/Scaling.h +188 -0
- include/eigen3/Eigen/src/Geometry/Transform.h +1563 -0
- include/eigen3/Eigen/src/Geometry/Translation.h +202 -0
- include/eigen3/Eigen/src/Geometry/Umeyama.h +166 -0
- include/eigen3/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
- include/eigen3/Eigen/src/Householder/BlockHouseholder.h +110 -0
- include/eigen3/Eigen/src/Householder/Householder.h +176 -0
- include/eigen3/Eigen/src/Householder/HouseholderSequence.h +545 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +226 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +212 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +229 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +394 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +453 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +444 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +198 -0
- include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +117 -0
- include/eigen3/Eigen/src/Jacobi/Jacobi.h +483 -0
- include/eigen3/Eigen/src/KLUSupport/KLUSupport.h +358 -0
- include/eigen3/Eigen/src/LU/Determinant.h +117 -0
- include/eigen3/Eigen/src/LU/FullPivLU.h +877 -0
- include/eigen3/Eigen/src/LU/InverseImpl.h +432 -0
- include/eigen3/Eigen/src/LU/PartialPivLU.h +624 -0
- include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +83 -0
- include/eigen3/Eigen/src/LU/arch/InverseSize4.h +351 -0
- include/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
- include/eigen3/Eigen/src/OrderingMethods/Amd.h +435 -0
- include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1863 -0
- include/eigen3/Eigen/src/OrderingMethods/Ordering.h +153 -0
- include/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +678 -0
- include/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +545 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +674 -0
- include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +97 -0
- include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +635 -0
- include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +713 -0
- include/eigen3/Eigen/src/QR/HouseholderQR.h +434 -0
- include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +68 -0
- include/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +335 -0
- include/eigen3/Eigen/src/SVD/BDCSVD.h +1366 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD.h +812 -0
- include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +91 -0
- include/eigen3/Eigen/src/SVD/SVDBase.h +376 -0
- include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +414 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +697 -0
- include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +174 -0
- include/eigen3/Eigen/src/SparseCore/AmbiVector.h +378 -0
- include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +274 -0
- include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +352 -0
- include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +67 -0
- include/eigen3/Eigen/src/SparseCore/SparseAssign.h +270 -0
- include/eigen3/Eigen/src/SparseCore/SparseBlock.h +571 -0
- include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
- include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +370 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +722 -0
- include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +150 -0
- include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +342 -0
- include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +138 -0
- include/eigen3/Eigen/src/SparseCore/SparseDot.h +98 -0
- include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +29 -0
- include/eigen3/Eigen/src/SparseCore/SparseMap.h +305 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1518 -0
- include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +398 -0
- include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +178 -0
- include/eigen3/Eigen/src/SparseCore/SparseProduct.h +181 -0
- include/eigen3/Eigen/src/SparseCore/SparseRedux.h +49 -0
- include/eigen3/Eigen/src/SparseCore/SparseRef.h +397 -0
- include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +659 -0
- include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +124 -0
- include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +198 -0
- include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +92 -0
- include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +189 -0
- include/eigen3/Eigen/src/SparseCore/SparseUtil.h +186 -0
- include/eigen3/Eigen/src/SparseCore/SparseVector.h +478 -0
- include/eigen3/Eigen/src/SparseCore/SparseView.h +254 -0
- include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +315 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU.h +923 -0
- include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +226 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +110 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +375 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +181 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +179 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +107 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +280 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +126 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +136 -0
- include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
- include/eigen3/Eigen/src/SparseQR/SparseQR.h +758 -0
- include/eigen3/Eigen/src/StlSupport/StdDeque.h +116 -0
- include/eigen3/Eigen/src/StlSupport/StdList.h +106 -0
- include/eigen3/Eigen/src/StlSupport/StdVector.h +131 -0
- include/eigen3/Eigen/src/StlSupport/details.h +84 -0
- include/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1025 -0
- include/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +642 -0
- include/eigen3/Eigen/src/misc/Image.h +82 -0
- include/eigen3/Eigen/src/misc/Kernel.h +79 -0
- include/eigen3/Eigen/src/misc/RealSvd2x2.h +55 -0
- include/eigen3/Eigen/src/misc/blas.h +440 -0
- include/eigen3/Eigen/src/misc/lapack.h +152 -0
- include/eigen3/Eigen/src/misc/lapacke.h +16292 -0
- include/eigen3/Eigen/src/misc/lapacke_mangling.h +17 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +358 -0
- include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +696 -0
- include/eigen3/Eigen/src/plugins/BlockMethods.h +1442 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +115 -0
- include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +177 -0
- include/eigen3/Eigen/src/plugins/IndexedViewMethods.h +262 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +152 -0
- include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +95 -0
- include/eigen3/Eigen/src/plugins/ReshapedMethods.h +149 -0
- include/eigen3/signature_of_eigen3_matrix_library +1 -0
- include/eigen3/unsupported/Eigen/AdolcForward +159 -0
- include/eigen3/unsupported/Eigen/AlignedVector3 +234 -0
- include/eigen3/unsupported/Eigen/ArpackSupport +30 -0
- include/eigen3/unsupported/Eigen/AutoDiff +46 -0
- include/eigen3/unsupported/Eigen/BVH +95 -0
- include/eigen3/unsupported/Eigen/CXX11/Tensor +137 -0
- include/eigen3/unsupported/Eigen/CXX11/TensorSymmetry +42 -0
- include/eigen3/unsupported/Eigen/CXX11/ThreadPool +74 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/Tensor.h +554 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorArgMax.h +329 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorAssign.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h +1176 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBlock.h +1559 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorBroadcasting.h +1093 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorChipping.h +518 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConcatenation.h +377 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContraction.h +1023 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionBlocking.h +73 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionGpu.h +1413 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionMapper.h +575 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionSycl.h +1650 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorContractionThreadPool.h +1679 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConversion.h +456 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolution.h +1132 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorConvolutionSycl.h +544 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCostModel.h +214 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorCustomOp.h +347 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDevice.h +137 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceDefault.h +104 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceGpu.h +389 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceSycl.h +1048 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDeviceThreadPool.h +409 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensionList.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorDimensions.h +490 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvalTo.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorEvaluator.h +983 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExecutor.h +703 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorExpr.h +388 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFFT.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFixedSize.h +379 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForcedEval.h +237 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorForwardDeclarations.h +191 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorFunctors.h +488 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGenerator.h +302 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGlobalFunctions.h +33 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h +99 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaUndefines.h +44 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIO.h +79 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h +603 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIndexList.h +738 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInflation.h +247 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorInitializer.h +82 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorIntDiv.h +263 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorLayoutSwap.h +216 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMacros.h +98 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMap.h +327 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMeta.h +311 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorMorphing.h +1102 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPadding.h +708 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorPatch.h +291 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRandom.h +322 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReduction.h +998 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionCuda.h +6 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionGpu.h +966 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReductionSycl.h +582 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorRef.h +454 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorReverse.h +465 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScan.h +528 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorScanSycl.h +513 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorShuffling.h +471 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStorage.h +161 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorStriding.h +346 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTrace.h +303 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorTraits.h +264 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorUInt128.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/Tensor/TensorVolumePatch.h +629 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/DynamicSymmetry.h +293 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/StaticSymmetry.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/Symmetry.h +338 -0
- include/eigen3/unsupported/Eigen/CXX11/src/TensorSymmetry/util/TemplateGroupTheory.h +669 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/Barrier.h +67 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/EventCount.h +249 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/NonBlockingThreadPool.h +486 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/RunQueue.h +236 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadCancel.h +23 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadEnvironment.h +40 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadLocal.h +301 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadPoolInterface.h +48 -0
- include/eigen3/unsupported/Eigen/CXX11/src/ThreadPool/ThreadYield.h +20 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Meta.h +537 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/CXX11Workarounds.h +88 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/EmulateArray.h +261 -0
- include/eigen3/unsupported/Eigen/CXX11/src/util/MaxSizeVector.h +158 -0
- include/eigen3/unsupported/Eigen/EulerAngles +43 -0
- include/eigen3/unsupported/Eigen/FFT +419 -0
- include/eigen3/unsupported/Eigen/IterativeSolvers +51 -0
- include/eigen3/unsupported/Eigen/KroneckerProduct +36 -0
- include/eigen3/unsupported/Eigen/LevenbergMarquardt +49 -0
- include/eigen3/unsupported/Eigen/MPRealSupport +213 -0
- include/eigen3/unsupported/Eigen/MatrixFunctions +504 -0
- include/eigen3/unsupported/Eigen/MoreVectorization +24 -0
- include/eigen3/unsupported/Eigen/NonLinearOptimization +140 -0
- include/eigen3/unsupported/Eigen/NumericalDiff +56 -0
- include/eigen3/unsupported/Eigen/OpenGLSupport +322 -0
- include/eigen3/unsupported/Eigen/Polynomials +137 -0
- include/eigen3/unsupported/Eigen/Skyline +39 -0
- include/eigen3/unsupported/Eigen/SparseExtra +54 -0
- include/eigen3/unsupported/Eigen/SpecialFunctions +103 -0
- include/eigen3/unsupported/Eigen/Splines +35 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffJacobian.h +108 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffScalar.h +730 -0
- include/eigen3/unsupported/Eigen/src/AutoDiff/AutoDiffVector.h +220 -0
- include/eigen3/unsupported/Eigen/src/BVH/BVAlgorithms.h +293 -0
- include/eigen3/unsupported/Eigen/src/BVH/KdBVH.h +223 -0
- include/eigen3/unsupported/Eigen/src/Eigenvalues/ArpackSelfAdjointEigenSolver.h +790 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerAngles.h +355 -0
- include/eigen3/unsupported/Eigen/src/EulerAngles/EulerSystem.h +305 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_fftw_impl.h +261 -0
- include/eigen3/unsupported/Eigen/src/FFT/ei_kissfft_impl.h +449 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/ConstrainedConjGrad.h +187 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/DGMRES.h +511 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/GMRES.h +335 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IDRS.h +436 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IncompleteLU.h +90 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/IterationController.h +154 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/MINRES.h +267 -0
- include/eigen3/unsupported/Eigen/src/IterativeSolvers/Scaling.h +193 -0
- include/eigen3/unsupported/Eigen/src/KroneckerProduct/KroneckerTensorProduct.h +305 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMcovar.h +84 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h +202 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h +160 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LMqrsolv.h +188 -0
- include/eigen3/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h +396 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +441 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +569 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixLogarithm.h +373 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixPower.h +705 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/MatrixSquareRoot.h +368 -0
- include/eigen3/unsupported/Eigen/src/MatrixFunctions/StemFunction.h +117 -0
- include/eigen3/unsupported/Eigen/src/MoreVectorization/MathFunctions.h +95 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/HybridNonLinearSolver.h +601 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/LevenbergMarquardt.h +657 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/chkder.h +66 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/covar.h +70 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/dogleg.h +107 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/fdjac1.h +79 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/lmpar.h +298 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/qrsolv.h +91 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1mpyq.h +30 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/r1updt.h +99 -0
- include/eigen3/unsupported/Eigen/src/NonLinearOptimization/rwupdt.h +49 -0
- include/eigen3/unsupported/Eigen/src/NumericalDiff/NumericalDiff.h +130 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/Companion.h +280 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialSolver.h +428 -0
- include/eigen3/unsupported/Eigen/src/Polynomials/PolynomialUtils.h +143 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineInplaceLU.h +352 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrix.h +862 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineMatrixBase.h +212 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineProduct.h +295 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineStorage.h +259 -0
- include/eigen3/unsupported/Eigen/src/Skyline/SkylineUtil.h +89 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockOfDynamicSparseMatrix.h +122 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/BlockSparseMatrix.h +1079 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/DynamicSparseMatrix.h +404 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MarketIO.h +282 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/MatrixMarketIterator.h +247 -0
- include/eigen3/unsupported/Eigen/src/SparseExtra/RandomSetter.h +349 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsArrayAPI.h +286 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsBFloat16.h +68 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsFunctors.h +357 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsHalf.h +66 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsImpl.h +1959 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/BesselFunctionsPacketMath.h +118 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/HipVectorCompatibility.h +67 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsArrayAPI.h +167 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsBFloat16.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsFunctors.h +330 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsHalf.h +58 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsImpl.h +2045 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/SpecialFunctionsPacketMath.h +79 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/BesselFunctions.h +46 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/AVX512/SpecialFunctions.h +16 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/GPU/SpecialFunctions.h +369 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/BesselFunctions.h +54 -0
- include/eigen3/unsupported/Eigen/src/SpecialFunctions/arch/NEON/SpecialFunctions.h +34 -0
- include/eigen3/unsupported/Eigen/src/Splines/Spline.h +507 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFitting.h +431 -0
- include/eigen3/unsupported/Eigen/src/Splines/SplineFwd.h +93 -0
- pylibsparseir/__init__.py +31 -0
- pylibsparseir/clean_build_artifacts.py +0 -1
- pylibsparseir/core.py +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,375 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
|
|
5
|
+
// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
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_SPARSELU_SUPERNODAL_MATRIX_H
|
|
12
|
+
#define EIGEN_SPARSELU_SUPERNODAL_MATRIX_H
|
|
13
|
+
|
|
14
|
+
namespace Eigen {
|
|
15
|
+
namespace internal {
|
|
16
|
+
|
|
17
|
+
/** \ingroup SparseLU_Module
|
|
18
|
+
* \brief a class to manipulate the L supernodal factor from the SparseLU factorization
|
|
19
|
+
*
|
|
20
|
+
* This class contain the data to easily store
|
|
21
|
+
* and manipulate the supernodes during the factorization and solution phase of Sparse LU.
|
|
22
|
+
* Only the lower triangular matrix has supernodes.
|
|
23
|
+
*
|
|
24
|
+
* NOTE : This class corresponds to the SCformat structure in SuperLU
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
/* TODO
|
|
28
|
+
* InnerIterator as for sparsematrix
|
|
29
|
+
* SuperInnerIterator to iterate through all supernodes
|
|
30
|
+
* Function for triangular solve
|
|
31
|
+
*/
|
|
32
|
+
template <typename _Scalar, typename _StorageIndex>
|
|
33
|
+
class MappedSuperNodalMatrix
|
|
34
|
+
{
|
|
35
|
+
public:
|
|
36
|
+
typedef _Scalar Scalar;
|
|
37
|
+
typedef _StorageIndex StorageIndex;
|
|
38
|
+
typedef Matrix<StorageIndex,Dynamic,1> IndexVector;
|
|
39
|
+
typedef Matrix<Scalar,Dynamic,1> ScalarVector;
|
|
40
|
+
public:
|
|
41
|
+
MappedSuperNodalMatrix()
|
|
42
|
+
{
|
|
43
|
+
|
|
44
|
+
}
|
|
45
|
+
MappedSuperNodalMatrix(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind,
|
|
46
|
+
IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
|
|
47
|
+
{
|
|
48
|
+
setInfos(m, n, nzval, nzval_colptr, rowind, rowind_colptr, col_to_sup, sup_to_col);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
~MappedSuperNodalMatrix()
|
|
52
|
+
{
|
|
53
|
+
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Set appropriate pointers for the lower triangular supernodal matrix
|
|
57
|
+
* These infos are available at the end of the numerical factorization
|
|
58
|
+
* FIXME This class will be modified such that it can be use in the course
|
|
59
|
+
* of the factorization.
|
|
60
|
+
*/
|
|
61
|
+
void setInfos(Index m, Index n, ScalarVector& nzval, IndexVector& nzval_colptr, IndexVector& rowind,
|
|
62
|
+
IndexVector& rowind_colptr, IndexVector& col_to_sup, IndexVector& sup_to_col )
|
|
63
|
+
{
|
|
64
|
+
m_row = m;
|
|
65
|
+
m_col = n;
|
|
66
|
+
m_nzval = nzval.data();
|
|
67
|
+
m_nzval_colptr = nzval_colptr.data();
|
|
68
|
+
m_rowind = rowind.data();
|
|
69
|
+
m_rowind_colptr = rowind_colptr.data();
|
|
70
|
+
m_nsuper = col_to_sup(n);
|
|
71
|
+
m_col_to_sup = col_to_sup.data();
|
|
72
|
+
m_sup_to_col = sup_to_col.data();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Number of rows
|
|
77
|
+
*/
|
|
78
|
+
Index rows() const { return m_row; }
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Number of columns
|
|
82
|
+
*/
|
|
83
|
+
Index cols() const { return m_col; }
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Return the array of nonzero values packed by column
|
|
87
|
+
*
|
|
88
|
+
* The size is nnz
|
|
89
|
+
*/
|
|
90
|
+
Scalar* valuePtr() { return m_nzval; }
|
|
91
|
+
|
|
92
|
+
const Scalar* valuePtr() const
|
|
93
|
+
{
|
|
94
|
+
return m_nzval;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Return the pointers to the beginning of each column in \ref valuePtr()
|
|
98
|
+
*/
|
|
99
|
+
StorageIndex* colIndexPtr()
|
|
100
|
+
{
|
|
101
|
+
return m_nzval_colptr;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const StorageIndex* colIndexPtr() const
|
|
105
|
+
{
|
|
106
|
+
return m_nzval_colptr;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Return the array of compressed row indices of all supernodes
|
|
111
|
+
*/
|
|
112
|
+
StorageIndex* rowIndex() { return m_rowind; }
|
|
113
|
+
|
|
114
|
+
const StorageIndex* rowIndex() const
|
|
115
|
+
{
|
|
116
|
+
return m_rowind;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Return the location in \em rowvaluePtr() which starts each column
|
|
121
|
+
*/
|
|
122
|
+
StorageIndex* rowIndexPtr() { return m_rowind_colptr; }
|
|
123
|
+
|
|
124
|
+
const StorageIndex* rowIndexPtr() const
|
|
125
|
+
{
|
|
126
|
+
return m_rowind_colptr;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Return the array of column-to-supernode mapping
|
|
131
|
+
*/
|
|
132
|
+
StorageIndex* colToSup() { return m_col_to_sup; }
|
|
133
|
+
|
|
134
|
+
const StorageIndex* colToSup() const
|
|
135
|
+
{
|
|
136
|
+
return m_col_to_sup;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Return the array of supernode-to-column mapping
|
|
140
|
+
*/
|
|
141
|
+
StorageIndex* supToCol() { return m_sup_to_col; }
|
|
142
|
+
|
|
143
|
+
const StorageIndex* supToCol() const
|
|
144
|
+
{
|
|
145
|
+
return m_sup_to_col;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Return the number of supernodes
|
|
150
|
+
*/
|
|
151
|
+
Index nsuper() const
|
|
152
|
+
{
|
|
153
|
+
return m_nsuper;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
class InnerIterator;
|
|
157
|
+
template<typename Dest>
|
|
158
|
+
void solveInPlace( MatrixBase<Dest>&X) const;
|
|
159
|
+
template<bool Conjugate, typename Dest>
|
|
160
|
+
void solveTransposedInPlace( MatrixBase<Dest>&X) const;
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
protected:
|
|
167
|
+
Index m_row; // Number of rows
|
|
168
|
+
Index m_col; // Number of columns
|
|
169
|
+
Index m_nsuper; // Number of supernodes
|
|
170
|
+
Scalar* m_nzval; //array of nonzero values packed by column
|
|
171
|
+
StorageIndex* m_nzval_colptr; //nzval_colptr[j] Stores the location in nzval[] which starts column j
|
|
172
|
+
StorageIndex* m_rowind; // Array of compressed row indices of rectangular supernodes
|
|
173
|
+
StorageIndex* m_rowind_colptr; //rowind_colptr[j] stores the location in rowind[] which starts column j
|
|
174
|
+
StorageIndex* m_col_to_sup; // col_to_sup[j] is the supernode number to which column j belongs
|
|
175
|
+
StorageIndex* m_sup_to_col; //sup_to_col[s] points to the starting column of the s-th supernode
|
|
176
|
+
|
|
177
|
+
private :
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* \brief InnerIterator class to iterate over nonzero values of the current column in the supernodal matrix L
|
|
182
|
+
*
|
|
183
|
+
*/
|
|
184
|
+
template<typename Scalar, typename StorageIndex>
|
|
185
|
+
class MappedSuperNodalMatrix<Scalar,StorageIndex>::InnerIterator
|
|
186
|
+
{
|
|
187
|
+
public:
|
|
188
|
+
InnerIterator(const MappedSuperNodalMatrix& mat, Index outer)
|
|
189
|
+
: m_matrix(mat),
|
|
190
|
+
m_outer(outer),
|
|
191
|
+
m_supno(mat.colToSup()[outer]),
|
|
192
|
+
m_idval(mat.colIndexPtr()[outer]),
|
|
193
|
+
m_startidval(m_idval),
|
|
194
|
+
m_endidval(mat.colIndexPtr()[outer+1]),
|
|
195
|
+
m_idrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]]),
|
|
196
|
+
m_endidrow(mat.rowIndexPtr()[mat.supToCol()[mat.colToSup()[outer]]+1])
|
|
197
|
+
{}
|
|
198
|
+
inline InnerIterator& operator++()
|
|
199
|
+
{
|
|
200
|
+
m_idval++;
|
|
201
|
+
m_idrow++;
|
|
202
|
+
return *this;
|
|
203
|
+
}
|
|
204
|
+
inline Scalar value() const { return m_matrix.valuePtr()[m_idval]; }
|
|
205
|
+
|
|
206
|
+
inline Scalar& valueRef() { return const_cast<Scalar&>(m_matrix.valuePtr()[m_idval]); }
|
|
207
|
+
|
|
208
|
+
inline Index index() const { return m_matrix.rowIndex()[m_idrow]; }
|
|
209
|
+
inline Index row() const { return index(); }
|
|
210
|
+
inline Index col() const { return m_outer; }
|
|
211
|
+
|
|
212
|
+
inline Index supIndex() const { return m_supno; }
|
|
213
|
+
|
|
214
|
+
inline operator bool() const
|
|
215
|
+
{
|
|
216
|
+
return ( (m_idval < m_endidval) && (m_idval >= m_startidval)
|
|
217
|
+
&& (m_idrow < m_endidrow) );
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
protected:
|
|
221
|
+
const MappedSuperNodalMatrix& m_matrix; // Supernodal lower triangular matrix
|
|
222
|
+
const Index m_outer; // Current column
|
|
223
|
+
const Index m_supno; // Current SuperNode number
|
|
224
|
+
Index m_idval; // Index to browse the values in the current column
|
|
225
|
+
const Index m_startidval; // Start of the column value
|
|
226
|
+
const Index m_endidval; // End of the column value
|
|
227
|
+
Index m_idrow; // Index to browse the row indices
|
|
228
|
+
Index m_endidrow; // End index of row indices of the current column
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* \brief Solve with the supernode triangular matrix
|
|
233
|
+
*
|
|
234
|
+
*/
|
|
235
|
+
template<typename Scalar, typename Index_>
|
|
236
|
+
template<typename Dest>
|
|
237
|
+
void MappedSuperNodalMatrix<Scalar,Index_>::solveInPlace( MatrixBase<Dest>&X) const
|
|
238
|
+
{
|
|
239
|
+
/* Explicit type conversion as the Index type of MatrixBase<Dest> may be wider than Index */
|
|
240
|
+
// eigen_assert(X.rows() <= NumTraits<Index>::highest());
|
|
241
|
+
// eigen_assert(X.cols() <= NumTraits<Index>::highest());
|
|
242
|
+
Index n = int(X.rows());
|
|
243
|
+
Index nrhs = Index(X.cols());
|
|
244
|
+
const Scalar * Lval = valuePtr(); // Nonzero values
|
|
245
|
+
Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor> work(n, nrhs); // working vector
|
|
246
|
+
work.setZero();
|
|
247
|
+
for (Index k = 0; k <= nsuper(); k ++)
|
|
248
|
+
{
|
|
249
|
+
Index fsupc = supToCol()[k]; // First column of the current supernode
|
|
250
|
+
Index istart = rowIndexPtr()[fsupc]; // Pointer index to the subscript of the current column
|
|
251
|
+
Index nsupr = rowIndexPtr()[fsupc+1] - istart; // Number of rows in the current supernode
|
|
252
|
+
Index nsupc = supToCol()[k+1] - fsupc; // Number of columns in the current supernode
|
|
253
|
+
Index nrow = nsupr - nsupc; // Number of rows in the non-diagonal part of the supernode
|
|
254
|
+
Index irow; //Current index row
|
|
255
|
+
|
|
256
|
+
if (nsupc == 1 )
|
|
257
|
+
{
|
|
258
|
+
for (Index j = 0; j < nrhs; j++)
|
|
259
|
+
{
|
|
260
|
+
InnerIterator it(*this, fsupc);
|
|
261
|
+
++it; // Skip the diagonal element
|
|
262
|
+
for (; it; ++it)
|
|
263
|
+
{
|
|
264
|
+
irow = it.row();
|
|
265
|
+
X(irow, j) -= X(fsupc, j) * it.value();
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
else
|
|
270
|
+
{
|
|
271
|
+
// The supernode has more than one column
|
|
272
|
+
Index luptr = colIndexPtr()[fsupc];
|
|
273
|
+
Index lda = colIndexPtr()[fsupc+1] - luptr;
|
|
274
|
+
|
|
275
|
+
// Triangular solve
|
|
276
|
+
Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) );
|
|
277
|
+
Map< Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
|
|
278
|
+
U = A.template triangularView<UnitLower>().solve(U);
|
|
279
|
+
|
|
280
|
+
// Matrix-vector product
|
|
281
|
+
new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > ( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
|
|
282
|
+
work.topRows(nrow).noalias() = A * U;
|
|
283
|
+
|
|
284
|
+
//Begin Scatter
|
|
285
|
+
for (Index j = 0; j < nrhs; j++)
|
|
286
|
+
{
|
|
287
|
+
Index iptr = istart + nsupc;
|
|
288
|
+
for (Index i = 0; i < nrow; i++)
|
|
289
|
+
{
|
|
290
|
+
irow = rowIndex()[iptr];
|
|
291
|
+
X(irow, j) -= work(i, j); // Scatter operation
|
|
292
|
+
work(i, j) = Scalar(0);
|
|
293
|
+
iptr++;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
template<typename Scalar, typename Index_>
|
|
301
|
+
template<bool Conjugate, typename Dest>
|
|
302
|
+
void MappedSuperNodalMatrix<Scalar,Index_>::solveTransposedInPlace( MatrixBase<Dest>&X) const
|
|
303
|
+
{
|
|
304
|
+
using numext::conj;
|
|
305
|
+
Index n = int(X.rows());
|
|
306
|
+
Index nrhs = Index(X.cols());
|
|
307
|
+
const Scalar * Lval = valuePtr(); // Nonzero values
|
|
308
|
+
Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor> work(n, nrhs); // working vector
|
|
309
|
+
work.setZero();
|
|
310
|
+
for (Index k = nsuper(); k >= 0; k--)
|
|
311
|
+
{
|
|
312
|
+
Index fsupc = supToCol()[k]; // First column of the current supernode
|
|
313
|
+
Index istart = rowIndexPtr()[fsupc]; // Pointer index to the subscript of the current column
|
|
314
|
+
Index nsupr = rowIndexPtr()[fsupc+1] - istart; // Number of rows in the current supernode
|
|
315
|
+
Index nsupc = supToCol()[k+1] - fsupc; // Number of columns in the current supernode
|
|
316
|
+
Index nrow = nsupr - nsupc; // Number of rows in the non-diagonal part of the supernode
|
|
317
|
+
Index irow; //Current index row
|
|
318
|
+
|
|
319
|
+
if (nsupc == 1 )
|
|
320
|
+
{
|
|
321
|
+
for (Index j = 0; j < nrhs; j++)
|
|
322
|
+
{
|
|
323
|
+
InnerIterator it(*this, fsupc);
|
|
324
|
+
++it; // Skip the diagonal element
|
|
325
|
+
for (; it; ++it)
|
|
326
|
+
{
|
|
327
|
+
irow = it.row();
|
|
328
|
+
X(fsupc,j) -= X(irow, j) * (Conjugate?conj(it.value()):it.value());
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
else
|
|
333
|
+
{
|
|
334
|
+
// The supernode has more than one column
|
|
335
|
+
Index luptr = colIndexPtr()[fsupc];
|
|
336
|
+
Index lda = colIndexPtr()[fsupc+1] - luptr;
|
|
337
|
+
|
|
338
|
+
//Begin Gather
|
|
339
|
+
for (Index j = 0; j < nrhs; j++)
|
|
340
|
+
{
|
|
341
|
+
Index iptr = istart + nsupc;
|
|
342
|
+
for (Index i = 0; i < nrow; i++)
|
|
343
|
+
{
|
|
344
|
+
irow = rowIndex()[iptr];
|
|
345
|
+
work.topRows(nrow)(i,j)= X(irow,j); // Gather operation
|
|
346
|
+
iptr++;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
// Matrix-vector product with transposed submatrix
|
|
351
|
+
Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > A( &(Lval[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
|
|
352
|
+
Map< Matrix<Scalar,Dynamic,Dest::ColsAtCompileTime, ColMajor>, 0, OuterStride<> > U (&(X(fsupc,0)), nsupc, nrhs, OuterStride<>(n) );
|
|
353
|
+
if(Conjugate)
|
|
354
|
+
U = U - A.adjoint() * work.topRows(nrow);
|
|
355
|
+
else
|
|
356
|
+
U = U - A.transpose() * work.topRows(nrow);
|
|
357
|
+
|
|
358
|
+
// Triangular solve (of transposed diagonal block)
|
|
359
|
+
new (&A) Map<const Matrix<Scalar,Dynamic,Dynamic, ColMajor>, 0, OuterStride<> > ( &(Lval[luptr]), nsupc, nsupc, OuterStride<>(lda) );
|
|
360
|
+
if(Conjugate)
|
|
361
|
+
U = A.adjoint().template triangularView<UnitUpper>().solve(U);
|
|
362
|
+
else
|
|
363
|
+
U = A.transpose().template triangularView<UnitUpper>().solve(U);
|
|
364
|
+
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
} // end namespace internal
|
|
372
|
+
|
|
373
|
+
} // end namespace Eigen
|
|
374
|
+
|
|
375
|
+
#endif // EIGEN_SPARSELU_MATRIX_H
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@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
|
+
|
|
11
|
+
#ifndef EIGEN_SPARSELU_UTILS_H
|
|
12
|
+
#define EIGEN_SPARSELU_UTILS_H
|
|
13
|
+
|
|
14
|
+
namespace Eigen {
|
|
15
|
+
namespace internal {
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* \brief Count Nonzero elements in the factors
|
|
19
|
+
*/
|
|
20
|
+
template <typename Scalar, typename StorageIndex>
|
|
21
|
+
void SparseLUImpl<Scalar,StorageIndex>::countnz(const Index n, Index& nnzL, Index& nnzU, GlobalLU_t& glu)
|
|
22
|
+
{
|
|
23
|
+
nnzL = 0;
|
|
24
|
+
nnzU = (glu.xusub)(n);
|
|
25
|
+
Index nsuper = (glu.supno)(n);
|
|
26
|
+
Index jlen;
|
|
27
|
+
Index i, j, fsupc;
|
|
28
|
+
if (n <= 0 ) return;
|
|
29
|
+
// For each supernode
|
|
30
|
+
for (i = 0; i <= nsuper; i++)
|
|
31
|
+
{
|
|
32
|
+
fsupc = glu.xsup(i);
|
|
33
|
+
jlen = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
|
|
34
|
+
|
|
35
|
+
for (j = fsupc; j < glu.xsup(i+1); j++)
|
|
36
|
+
{
|
|
37
|
+
nnzL += jlen;
|
|
38
|
+
nnzU += j - fsupc + 1;
|
|
39
|
+
jlen--;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* \brief Fix up the data storage lsub for L-subscripts.
|
|
46
|
+
*
|
|
47
|
+
* It removes the subscripts sets for structural pruning,
|
|
48
|
+
* and applies permutation to the remaining subscripts
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
template <typename Scalar, typename StorageIndex>
|
|
52
|
+
void SparseLUImpl<Scalar,StorageIndex>::fixupL(const Index n, const IndexVector& perm_r, GlobalLU_t& glu)
|
|
53
|
+
{
|
|
54
|
+
Index fsupc, i, j, k, jstart;
|
|
55
|
+
|
|
56
|
+
StorageIndex nextl = 0;
|
|
57
|
+
Index nsuper = (glu.supno)(n);
|
|
58
|
+
|
|
59
|
+
// For each supernode
|
|
60
|
+
for (i = 0; i <= nsuper; i++)
|
|
61
|
+
{
|
|
62
|
+
fsupc = glu.xsup(i);
|
|
63
|
+
jstart = glu.xlsub(fsupc);
|
|
64
|
+
glu.xlsub(fsupc) = nextl;
|
|
65
|
+
for (j = jstart; j < glu.xlsub(fsupc + 1); j++)
|
|
66
|
+
{
|
|
67
|
+
glu.lsub(nextl) = perm_r(glu.lsub(j)); // Now indexed into P*A
|
|
68
|
+
nextl++;
|
|
69
|
+
}
|
|
70
|
+
for (k = fsupc+1; k < glu.xsup(i+1); k++)
|
|
71
|
+
glu.xlsub(k) = nextl; // other columns in supernode i
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
glu.xlsub(n) = nextl;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
} // end namespace internal
|
|
78
|
+
|
|
79
|
+
} // end namespace Eigen
|
|
80
|
+
#endif // EIGEN_SPARSELU_UTILS_H
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
|
|
5
|
+
// Copyright (C) 2012 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
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
|
+
/*
|
|
12
|
+
|
|
13
|
+
* NOTE: This file is the modified version of xcolumn_bmod.c file in SuperLU
|
|
14
|
+
|
|
15
|
+
* -- SuperLU routine (version 3.0) --
|
|
16
|
+
* Univ. of California Berkeley, Xerox Palo Alto Research Center,
|
|
17
|
+
* and Lawrence Berkeley National Lab.
|
|
18
|
+
* October 15, 2003
|
|
19
|
+
*
|
|
20
|
+
* Copyright (c) 1994 by Xerox Corporation. All rights reserved.
|
|
21
|
+
*
|
|
22
|
+
* THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY
|
|
23
|
+
* EXPRESSED OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
|
|
24
|
+
*
|
|
25
|
+
* Permission is hereby granted to use or copy this program for any
|
|
26
|
+
* purpose, provided the above notices are retained on all copies.
|
|
27
|
+
* Permission to modify the code and to distribute modified code is
|
|
28
|
+
* granted, provided the above notices are retained, and a notice that
|
|
29
|
+
* the code was modified is included with the above copyright notice.
|
|
30
|
+
*/
|
|
31
|
+
#ifndef SPARSELU_COLUMN_BMOD_H
|
|
32
|
+
#define SPARSELU_COLUMN_BMOD_H
|
|
33
|
+
|
|
34
|
+
namespace Eigen {
|
|
35
|
+
|
|
36
|
+
namespace internal {
|
|
37
|
+
/**
|
|
38
|
+
* \brief Performs numeric block updates (sup-col) in topological order
|
|
39
|
+
*
|
|
40
|
+
* \param jcol current column to update
|
|
41
|
+
* \param nseg Number of segments in the U part
|
|
42
|
+
* \param dense Store the full representation of the column
|
|
43
|
+
* \param tempv working array
|
|
44
|
+
* \param segrep segment representative ...
|
|
45
|
+
* \param repfnz ??? First nonzero column in each row ??? ...
|
|
46
|
+
* \param fpanelc First column in the current panel
|
|
47
|
+
* \param glu Global LU data.
|
|
48
|
+
* \return 0 - successful return
|
|
49
|
+
* > 0 - number of bytes allocated when run out of space
|
|
50
|
+
*
|
|
51
|
+
*/
|
|
52
|
+
template <typename Scalar, typename StorageIndex>
|
|
53
|
+
Index SparseLUImpl<Scalar,StorageIndex>::column_bmod(const Index jcol, const Index nseg, BlockScalarVector dense, ScalarVector& tempv,
|
|
54
|
+
BlockIndexVector segrep, BlockIndexVector repfnz, Index fpanelc, GlobalLU_t& glu)
|
|
55
|
+
{
|
|
56
|
+
Index jsupno, k, ksub, krep, ksupno;
|
|
57
|
+
Index lptr, nrow, isub, irow, nextlu, new_next, ufirst;
|
|
58
|
+
Index fsupc, nsupc, nsupr, luptr, kfnz, no_zeros;
|
|
59
|
+
/* krep = representative of current k-th supernode
|
|
60
|
+
* fsupc = first supernodal column
|
|
61
|
+
* nsupc = number of columns in a supernode
|
|
62
|
+
* nsupr = number of rows in a supernode
|
|
63
|
+
* luptr = location of supernodal LU-block in storage
|
|
64
|
+
* kfnz = first nonz in the k-th supernodal segment
|
|
65
|
+
* no_zeros = no lf leading zeros in a supernodal U-segment
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
jsupno = glu.supno(jcol);
|
|
69
|
+
// For each nonzero supernode segment of U[*,j] in topological order
|
|
70
|
+
k = nseg - 1;
|
|
71
|
+
Index d_fsupc; // distance between the first column of the current panel and the
|
|
72
|
+
// first column of the current snode
|
|
73
|
+
Index fst_col; // First column within small LU update
|
|
74
|
+
Index segsize;
|
|
75
|
+
for (ksub = 0; ksub < nseg; ksub++)
|
|
76
|
+
{
|
|
77
|
+
krep = segrep(k); k--;
|
|
78
|
+
ksupno = glu.supno(krep);
|
|
79
|
+
if (jsupno != ksupno )
|
|
80
|
+
{
|
|
81
|
+
// outside the rectangular supernode
|
|
82
|
+
fsupc = glu.xsup(ksupno);
|
|
83
|
+
fst_col = (std::max)(fsupc, fpanelc);
|
|
84
|
+
|
|
85
|
+
// Distance from the current supernode to the current panel;
|
|
86
|
+
// d_fsupc = 0 if fsupc > fpanelc
|
|
87
|
+
d_fsupc = fst_col - fsupc;
|
|
88
|
+
|
|
89
|
+
luptr = glu.xlusup(fst_col) + d_fsupc;
|
|
90
|
+
lptr = glu.xlsub(fsupc) + d_fsupc;
|
|
91
|
+
|
|
92
|
+
kfnz = repfnz(krep);
|
|
93
|
+
kfnz = (std::max)(kfnz, fpanelc);
|
|
94
|
+
|
|
95
|
+
segsize = krep - kfnz + 1;
|
|
96
|
+
nsupc = krep - fst_col + 1;
|
|
97
|
+
nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc);
|
|
98
|
+
nrow = nsupr - d_fsupc - nsupc;
|
|
99
|
+
Index lda = glu.xlusup(fst_col+1) - glu.xlusup(fst_col);
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
// Perform a triangular solver and block update,
|
|
103
|
+
// then scatter the result of sup-col update to dense
|
|
104
|
+
no_zeros = kfnz - fst_col;
|
|
105
|
+
if(segsize==1)
|
|
106
|
+
LU_kernel_bmod<1>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
|
|
107
|
+
else
|
|
108
|
+
LU_kernel_bmod<Dynamic>::run(segsize, dense, tempv, glu.lusup, luptr, lda, nrow, glu.lsub, lptr, no_zeros);
|
|
109
|
+
} // end if jsupno
|
|
110
|
+
} // end for each segment
|
|
111
|
+
|
|
112
|
+
// Process the supernodal portion of L\U[*,j]
|
|
113
|
+
nextlu = glu.xlusup(jcol);
|
|
114
|
+
fsupc = glu.xsup(jsupno);
|
|
115
|
+
|
|
116
|
+
// copy the SPA dense into L\U[*,j]
|
|
117
|
+
Index mem;
|
|
118
|
+
new_next = nextlu + glu.xlsub(fsupc + 1) - glu.xlsub(fsupc);
|
|
119
|
+
Index offset = internal::first_multiple<Index>(new_next, internal::packet_traits<Scalar>::size) - new_next;
|
|
120
|
+
if(offset)
|
|
121
|
+
new_next += offset;
|
|
122
|
+
while (new_next > glu.nzlumax )
|
|
123
|
+
{
|
|
124
|
+
mem = memXpand<ScalarVector>(glu.lusup, glu.nzlumax, nextlu, LUSUP, glu.num_expansions);
|
|
125
|
+
if (mem) return mem;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
for (isub = glu.xlsub(fsupc); isub < glu.xlsub(fsupc+1); isub++)
|
|
129
|
+
{
|
|
130
|
+
irow = glu.lsub(isub);
|
|
131
|
+
glu.lusup(nextlu) = dense(irow);
|
|
132
|
+
dense(irow) = Scalar(0.0);
|
|
133
|
+
++nextlu;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if(offset)
|
|
137
|
+
{
|
|
138
|
+
glu.lusup.segment(nextlu,offset).setZero();
|
|
139
|
+
nextlu += offset;
|
|
140
|
+
}
|
|
141
|
+
glu.xlusup(jcol + 1) = StorageIndex(nextlu); // close L\U(*,jcol);
|
|
142
|
+
|
|
143
|
+
/* For more updates within the panel (also within the current supernode),
|
|
144
|
+
* should start from the first column of the panel, or the first column
|
|
145
|
+
* of the supernode, whichever is bigger. There are two cases:
|
|
146
|
+
* 1) fsupc < fpanelc, then fst_col <-- fpanelc
|
|
147
|
+
* 2) fsupc >= fpanelc, then fst_col <-- fsupc
|
|
148
|
+
*/
|
|
149
|
+
fst_col = (std::max)(fsupc, fpanelc);
|
|
150
|
+
|
|
151
|
+
if (fst_col < jcol)
|
|
152
|
+
{
|
|
153
|
+
// Distance between the current supernode and the current panel
|
|
154
|
+
// d_fsupc = 0 if fsupc >= fpanelc
|
|
155
|
+
d_fsupc = fst_col - fsupc;
|
|
156
|
+
|
|
157
|
+
lptr = glu.xlsub(fsupc) + d_fsupc;
|
|
158
|
+
luptr = glu.xlusup(fst_col) + d_fsupc;
|
|
159
|
+
nsupr = glu.xlsub(fsupc+1) - glu.xlsub(fsupc); // leading dimension
|
|
160
|
+
nsupc = jcol - fst_col; // excluding jcol
|
|
161
|
+
nrow = nsupr - d_fsupc - nsupc;
|
|
162
|
+
|
|
163
|
+
// points to the beginning of jcol in snode L\U(jsupno)
|
|
164
|
+
ufirst = glu.xlusup(jcol) + d_fsupc;
|
|
165
|
+
Index lda = glu.xlusup(jcol+1) - glu.xlusup(jcol);
|
|
166
|
+
MappedMatrixBlock A( &(glu.lusup.data()[luptr]), nsupc, nsupc, OuterStride<>(lda) );
|
|
167
|
+
VectorBlock<ScalarVector> u(glu.lusup, ufirst, nsupc);
|
|
168
|
+
u = A.template triangularView<UnitLower>().solve(u);
|
|
169
|
+
|
|
170
|
+
new (&A) MappedMatrixBlock ( &(glu.lusup.data()[luptr+nsupc]), nrow, nsupc, OuterStride<>(lda) );
|
|
171
|
+
VectorBlock<ScalarVector> l(glu.lusup, ufirst+nsupc, nrow);
|
|
172
|
+
l.noalias() -= A * u;
|
|
173
|
+
|
|
174
|
+
} // End if fst_col
|
|
175
|
+
return 0;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
} // end namespace internal
|
|
179
|
+
} // end namespace Eigen
|
|
180
|
+
|
|
181
|
+
#endif // SPARSELU_COLUMN_BMOD_H
|