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,431 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_SPLINE_FITTING_H
|
|
11
|
+
#define EIGEN_SPLINE_FITTING_H
|
|
12
|
+
|
|
13
|
+
#include <algorithm>
|
|
14
|
+
#include <functional>
|
|
15
|
+
#include <numeric>
|
|
16
|
+
#include <vector>
|
|
17
|
+
|
|
18
|
+
#include "SplineFwd.h"
|
|
19
|
+
|
|
20
|
+
#include "../../../../Eigen/LU"
|
|
21
|
+
#include "../../../../Eigen/QR"
|
|
22
|
+
|
|
23
|
+
namespace Eigen
|
|
24
|
+
{
|
|
25
|
+
/**
|
|
26
|
+
* \brief Computes knot averages.
|
|
27
|
+
* \ingroup Splines_Module
|
|
28
|
+
*
|
|
29
|
+
* The knots are computed as
|
|
30
|
+
* \f{align*}
|
|
31
|
+
* u_0 & = \hdots = u_p = 0 \\
|
|
32
|
+
* u_{m-p} & = \hdots = u_{m} = 1 \\
|
|
33
|
+
* u_{j+p} & = \frac{1}{p}\sum_{i=j}^{j+p-1}\bar{u}_i \quad\quad j=1,\hdots,n-p
|
|
34
|
+
* \f}
|
|
35
|
+
* where \f$p\f$ is the degree and \f$m+1\f$ the number knots
|
|
36
|
+
* of the desired interpolating spline.
|
|
37
|
+
*
|
|
38
|
+
* \param[in] parameters The input parameters. During interpolation one for each data point.
|
|
39
|
+
* \param[in] degree The spline degree which is used during the interpolation.
|
|
40
|
+
* \param[out] knots The output knot vector.
|
|
41
|
+
*
|
|
42
|
+
* \sa Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
|
|
43
|
+
**/
|
|
44
|
+
template <typename KnotVectorType>
|
|
45
|
+
void KnotAveraging(const KnotVectorType& parameters, DenseIndex degree, KnotVectorType& knots)
|
|
46
|
+
{
|
|
47
|
+
knots.resize(parameters.size()+degree+1);
|
|
48
|
+
|
|
49
|
+
for (DenseIndex j=1; j<parameters.size()-degree; ++j)
|
|
50
|
+
knots(j+degree) = parameters.segment(j,degree).mean();
|
|
51
|
+
|
|
52
|
+
knots.segment(0,degree+1) = KnotVectorType::Zero(degree+1);
|
|
53
|
+
knots.segment(knots.size()-degree-1,degree+1) = KnotVectorType::Ones(degree+1);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* \brief Computes knot averages when derivative constraints are present.
|
|
58
|
+
* Note that this is a technical interpretation of the referenced article
|
|
59
|
+
* since the algorithm contained therein is incorrect as written.
|
|
60
|
+
* \ingroup Splines_Module
|
|
61
|
+
*
|
|
62
|
+
* \param[in] parameters The parameters at which the interpolation B-Spline
|
|
63
|
+
* will intersect the given interpolation points. The parameters
|
|
64
|
+
* are assumed to be a non-decreasing sequence.
|
|
65
|
+
* \param[in] degree The degree of the interpolating B-Spline. This must be
|
|
66
|
+
* greater than zero.
|
|
67
|
+
* \param[in] derivativeIndices The indices corresponding to parameters at
|
|
68
|
+
* which there are derivative constraints. The indices are assumed
|
|
69
|
+
* to be a non-decreasing sequence.
|
|
70
|
+
* \param[out] knots The calculated knot vector. These will be returned as a
|
|
71
|
+
* non-decreasing sequence
|
|
72
|
+
*
|
|
73
|
+
* \sa Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008.
|
|
74
|
+
* Curve interpolation with directional constraints for engineering design.
|
|
75
|
+
* Engineering with Computers
|
|
76
|
+
**/
|
|
77
|
+
template <typename KnotVectorType, typename ParameterVectorType, typename IndexArray>
|
|
78
|
+
void KnotAveragingWithDerivatives(const ParameterVectorType& parameters,
|
|
79
|
+
const unsigned int degree,
|
|
80
|
+
const IndexArray& derivativeIndices,
|
|
81
|
+
KnotVectorType& knots)
|
|
82
|
+
{
|
|
83
|
+
typedef typename ParameterVectorType::Scalar Scalar;
|
|
84
|
+
|
|
85
|
+
DenseIndex numParameters = parameters.size();
|
|
86
|
+
DenseIndex numDerivatives = derivativeIndices.size();
|
|
87
|
+
|
|
88
|
+
if (numDerivatives < 1)
|
|
89
|
+
{
|
|
90
|
+
KnotAveraging(parameters, degree, knots);
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
DenseIndex startIndex;
|
|
95
|
+
DenseIndex endIndex;
|
|
96
|
+
|
|
97
|
+
DenseIndex numInternalDerivatives = numDerivatives;
|
|
98
|
+
|
|
99
|
+
if (derivativeIndices[0] == 0)
|
|
100
|
+
{
|
|
101
|
+
startIndex = 0;
|
|
102
|
+
--numInternalDerivatives;
|
|
103
|
+
}
|
|
104
|
+
else
|
|
105
|
+
{
|
|
106
|
+
startIndex = 1;
|
|
107
|
+
}
|
|
108
|
+
if (derivativeIndices[numDerivatives - 1] == numParameters - 1)
|
|
109
|
+
{
|
|
110
|
+
endIndex = numParameters - degree;
|
|
111
|
+
--numInternalDerivatives;
|
|
112
|
+
}
|
|
113
|
+
else
|
|
114
|
+
{
|
|
115
|
+
endIndex = numParameters - degree - 1;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// There are (endIndex - startIndex + 1) knots obtained from the averaging
|
|
119
|
+
// and 2 for the first and last parameters.
|
|
120
|
+
DenseIndex numAverageKnots = endIndex - startIndex + 3;
|
|
121
|
+
KnotVectorType averageKnots(numAverageKnots);
|
|
122
|
+
averageKnots[0] = parameters[0];
|
|
123
|
+
|
|
124
|
+
int newKnotIndex = 0;
|
|
125
|
+
for (DenseIndex i = startIndex; i <= endIndex; ++i)
|
|
126
|
+
averageKnots[++newKnotIndex] = parameters.segment(i, degree).mean();
|
|
127
|
+
averageKnots[++newKnotIndex] = parameters[numParameters - 1];
|
|
128
|
+
|
|
129
|
+
newKnotIndex = -1;
|
|
130
|
+
|
|
131
|
+
ParameterVectorType temporaryParameters(numParameters + 1);
|
|
132
|
+
KnotVectorType derivativeKnots(numInternalDerivatives);
|
|
133
|
+
for (DenseIndex i = 0; i < numAverageKnots - 1; ++i)
|
|
134
|
+
{
|
|
135
|
+
temporaryParameters[0] = averageKnots[i];
|
|
136
|
+
ParameterVectorType parameterIndices(numParameters);
|
|
137
|
+
int temporaryParameterIndex = 1;
|
|
138
|
+
for (DenseIndex j = 0; j < numParameters; ++j)
|
|
139
|
+
{
|
|
140
|
+
Scalar parameter = parameters[j];
|
|
141
|
+
if (parameter >= averageKnots[i] && parameter < averageKnots[i + 1])
|
|
142
|
+
{
|
|
143
|
+
parameterIndices[temporaryParameterIndex] = j;
|
|
144
|
+
temporaryParameters[temporaryParameterIndex++] = parameter;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
temporaryParameters[temporaryParameterIndex] = averageKnots[i + 1];
|
|
148
|
+
|
|
149
|
+
for (int j = 0; j <= temporaryParameterIndex - 2; ++j)
|
|
150
|
+
{
|
|
151
|
+
for (DenseIndex k = 0; k < derivativeIndices.size(); ++k)
|
|
152
|
+
{
|
|
153
|
+
if (parameterIndices[j + 1] == derivativeIndices[k]
|
|
154
|
+
&& parameterIndices[j + 1] != 0
|
|
155
|
+
&& parameterIndices[j + 1] != numParameters - 1)
|
|
156
|
+
{
|
|
157
|
+
derivativeKnots[++newKnotIndex] = temporaryParameters.segment(j, 3).mean();
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
KnotVectorType temporaryKnots(averageKnots.size() + derivativeKnots.size());
|
|
165
|
+
|
|
166
|
+
std::merge(averageKnots.data(), averageKnots.data() + averageKnots.size(),
|
|
167
|
+
derivativeKnots.data(), derivativeKnots.data() + derivativeKnots.size(),
|
|
168
|
+
temporaryKnots.data());
|
|
169
|
+
|
|
170
|
+
// Number of knots (one for each point and derivative) plus spline order.
|
|
171
|
+
DenseIndex numKnots = numParameters + numDerivatives + degree + 1;
|
|
172
|
+
knots.resize(numKnots);
|
|
173
|
+
|
|
174
|
+
knots.head(degree).fill(temporaryKnots[0]);
|
|
175
|
+
knots.tail(degree).fill(temporaryKnots.template tail<1>()[0]);
|
|
176
|
+
knots.segment(degree, temporaryKnots.size()) = temporaryKnots;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* \brief Computes chord length parameters which are required for spline interpolation.
|
|
181
|
+
* \ingroup Splines_Module
|
|
182
|
+
*
|
|
183
|
+
* \param[in] pts The data points to which a spline should be fit.
|
|
184
|
+
* \param[out] chord_lengths The resulting chord length vector.
|
|
185
|
+
*
|
|
186
|
+
* \sa Les Piegl and Wayne Tiller, The NURBS book (2nd ed.), 1997, 9.2.1 Global Curve Interpolation to Point Data
|
|
187
|
+
**/
|
|
188
|
+
template <typename PointArrayType, typename KnotVectorType>
|
|
189
|
+
void ChordLengths(const PointArrayType& pts, KnotVectorType& chord_lengths)
|
|
190
|
+
{
|
|
191
|
+
typedef typename KnotVectorType::Scalar Scalar;
|
|
192
|
+
|
|
193
|
+
const DenseIndex n = pts.cols();
|
|
194
|
+
|
|
195
|
+
// 1. compute the column-wise norms
|
|
196
|
+
chord_lengths.resize(pts.cols());
|
|
197
|
+
chord_lengths[0] = 0;
|
|
198
|
+
chord_lengths.rightCols(n-1) = (pts.array().leftCols(n-1) - pts.array().rightCols(n-1)).matrix().colwise().norm();
|
|
199
|
+
|
|
200
|
+
// 2. compute the partial sums
|
|
201
|
+
std::partial_sum(chord_lengths.data(), chord_lengths.data()+n, chord_lengths.data());
|
|
202
|
+
|
|
203
|
+
// 3. normalize the data
|
|
204
|
+
chord_lengths /= chord_lengths(n-1);
|
|
205
|
+
chord_lengths(n-1) = Scalar(1);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* \brief Spline fitting methods.
|
|
210
|
+
* \ingroup Splines_Module
|
|
211
|
+
**/
|
|
212
|
+
template <typename SplineType>
|
|
213
|
+
struct SplineFitting
|
|
214
|
+
{
|
|
215
|
+
typedef typename SplineType::KnotVectorType KnotVectorType;
|
|
216
|
+
typedef typename SplineType::ParameterVectorType ParameterVectorType;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* \brief Fits an interpolating Spline to the given data points.
|
|
220
|
+
*
|
|
221
|
+
* \param pts The points for which an interpolating spline will be computed.
|
|
222
|
+
* \param degree The degree of the interpolating spline.
|
|
223
|
+
*
|
|
224
|
+
* \returns A spline interpolating the initially provided points.
|
|
225
|
+
**/
|
|
226
|
+
template <typename PointArrayType>
|
|
227
|
+
static SplineType Interpolate(const PointArrayType& pts, DenseIndex degree);
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* \brief Fits an interpolating Spline to the given data points.
|
|
231
|
+
*
|
|
232
|
+
* \param pts The points for which an interpolating spline will be computed.
|
|
233
|
+
* \param degree The degree of the interpolating spline.
|
|
234
|
+
* \param knot_parameters The knot parameters for the interpolation.
|
|
235
|
+
*
|
|
236
|
+
* \returns A spline interpolating the initially provided points.
|
|
237
|
+
**/
|
|
238
|
+
template <typename PointArrayType>
|
|
239
|
+
static SplineType Interpolate(const PointArrayType& pts, DenseIndex degree, const KnotVectorType& knot_parameters);
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* \brief Fits an interpolating spline to the given data points and
|
|
243
|
+
* derivatives.
|
|
244
|
+
*
|
|
245
|
+
* \param points The points for which an interpolating spline will be computed.
|
|
246
|
+
* \param derivatives The desired derivatives of the interpolating spline at interpolation
|
|
247
|
+
* points.
|
|
248
|
+
* \param derivativeIndices An array indicating which point each derivative belongs to. This
|
|
249
|
+
* must be the same size as @a derivatives.
|
|
250
|
+
* \param degree The degree of the interpolating spline.
|
|
251
|
+
*
|
|
252
|
+
* \returns A spline interpolating @a points with @a derivatives at those points.
|
|
253
|
+
*
|
|
254
|
+
* \sa Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008.
|
|
255
|
+
* Curve interpolation with directional constraints for engineering design.
|
|
256
|
+
* Engineering with Computers
|
|
257
|
+
**/
|
|
258
|
+
template <typename PointArrayType, typename IndexArray>
|
|
259
|
+
static SplineType InterpolateWithDerivatives(const PointArrayType& points,
|
|
260
|
+
const PointArrayType& derivatives,
|
|
261
|
+
const IndexArray& derivativeIndices,
|
|
262
|
+
const unsigned int degree);
|
|
263
|
+
|
|
264
|
+
/**
|
|
265
|
+
* \brief Fits an interpolating spline to the given data points and derivatives.
|
|
266
|
+
*
|
|
267
|
+
* \param points The points for which an interpolating spline will be computed.
|
|
268
|
+
* \param derivatives The desired derivatives of the interpolating spline at interpolation points.
|
|
269
|
+
* \param derivativeIndices An array indicating which point each derivative belongs to. This
|
|
270
|
+
* must be the same size as @a derivatives.
|
|
271
|
+
* \param degree The degree of the interpolating spline.
|
|
272
|
+
* \param parameters The parameters corresponding to the interpolation points.
|
|
273
|
+
*
|
|
274
|
+
* \returns A spline interpolating @a points with @a derivatives at those points.
|
|
275
|
+
*
|
|
276
|
+
* \sa Les A. Piegl, Khairan Rajab, Volha Smarodzinana. 2008.
|
|
277
|
+
* Curve interpolation with directional constraints for engineering design.
|
|
278
|
+
* Engineering with Computers
|
|
279
|
+
*/
|
|
280
|
+
template <typename PointArrayType, typename IndexArray>
|
|
281
|
+
static SplineType InterpolateWithDerivatives(const PointArrayType& points,
|
|
282
|
+
const PointArrayType& derivatives,
|
|
283
|
+
const IndexArray& derivativeIndices,
|
|
284
|
+
const unsigned int degree,
|
|
285
|
+
const ParameterVectorType& parameters);
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
template <typename SplineType>
|
|
289
|
+
template <typename PointArrayType>
|
|
290
|
+
SplineType SplineFitting<SplineType>::Interpolate(const PointArrayType& pts, DenseIndex degree, const KnotVectorType& knot_parameters)
|
|
291
|
+
{
|
|
292
|
+
typedef typename SplineType::KnotVectorType::Scalar Scalar;
|
|
293
|
+
typedef typename SplineType::ControlPointVectorType ControlPointVectorType;
|
|
294
|
+
|
|
295
|
+
typedef Matrix<Scalar,Dynamic,Dynamic> MatrixType;
|
|
296
|
+
|
|
297
|
+
KnotVectorType knots;
|
|
298
|
+
KnotAveraging(knot_parameters, degree, knots);
|
|
299
|
+
|
|
300
|
+
DenseIndex n = pts.cols();
|
|
301
|
+
MatrixType A = MatrixType::Zero(n,n);
|
|
302
|
+
for (DenseIndex i=1; i<n-1; ++i)
|
|
303
|
+
{
|
|
304
|
+
const DenseIndex span = SplineType::Span(knot_parameters[i], degree, knots);
|
|
305
|
+
|
|
306
|
+
// The segment call should somehow be told the spline order at compile time.
|
|
307
|
+
A.row(i).segment(span-degree, degree+1) = SplineType::BasisFunctions(knot_parameters[i], degree, knots);
|
|
308
|
+
}
|
|
309
|
+
A(0,0) = 1.0;
|
|
310
|
+
A(n-1,n-1) = 1.0;
|
|
311
|
+
|
|
312
|
+
HouseholderQR<MatrixType> qr(A);
|
|
313
|
+
|
|
314
|
+
// Here, we are creating a temporary due to an Eigen issue.
|
|
315
|
+
ControlPointVectorType ctrls = qr.solve(MatrixType(pts.transpose())).transpose();
|
|
316
|
+
|
|
317
|
+
return SplineType(knots, ctrls);
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
template <typename SplineType>
|
|
321
|
+
template <typename PointArrayType>
|
|
322
|
+
SplineType SplineFitting<SplineType>::Interpolate(const PointArrayType& pts, DenseIndex degree)
|
|
323
|
+
{
|
|
324
|
+
KnotVectorType chord_lengths; // knot parameters
|
|
325
|
+
ChordLengths(pts, chord_lengths);
|
|
326
|
+
return Interpolate(pts, degree, chord_lengths);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
template <typename SplineType>
|
|
330
|
+
template <typename PointArrayType, typename IndexArray>
|
|
331
|
+
SplineType
|
|
332
|
+
SplineFitting<SplineType>::InterpolateWithDerivatives(const PointArrayType& points,
|
|
333
|
+
const PointArrayType& derivatives,
|
|
334
|
+
const IndexArray& derivativeIndices,
|
|
335
|
+
const unsigned int degree,
|
|
336
|
+
const ParameterVectorType& parameters)
|
|
337
|
+
{
|
|
338
|
+
typedef typename SplineType::KnotVectorType::Scalar Scalar;
|
|
339
|
+
typedef typename SplineType::ControlPointVectorType ControlPointVectorType;
|
|
340
|
+
|
|
341
|
+
typedef Matrix<Scalar, Dynamic, Dynamic> MatrixType;
|
|
342
|
+
|
|
343
|
+
const DenseIndex n = points.cols() + derivatives.cols();
|
|
344
|
+
|
|
345
|
+
KnotVectorType knots;
|
|
346
|
+
|
|
347
|
+
KnotAveragingWithDerivatives(parameters, degree, derivativeIndices, knots);
|
|
348
|
+
|
|
349
|
+
// fill matrix
|
|
350
|
+
MatrixType A = MatrixType::Zero(n, n);
|
|
351
|
+
|
|
352
|
+
// Use these dimensions for quicker populating, then transpose for solving.
|
|
353
|
+
MatrixType b(points.rows(), n);
|
|
354
|
+
|
|
355
|
+
DenseIndex startRow;
|
|
356
|
+
DenseIndex derivativeStart;
|
|
357
|
+
|
|
358
|
+
// End derivatives.
|
|
359
|
+
if (derivativeIndices[0] == 0)
|
|
360
|
+
{
|
|
361
|
+
A.template block<1, 2>(1, 0) << -1, 1;
|
|
362
|
+
|
|
363
|
+
Scalar y = (knots(degree + 1) - knots(0)) / degree;
|
|
364
|
+
b.col(1) = y*derivatives.col(0);
|
|
365
|
+
|
|
366
|
+
startRow = 2;
|
|
367
|
+
derivativeStart = 1;
|
|
368
|
+
}
|
|
369
|
+
else
|
|
370
|
+
{
|
|
371
|
+
startRow = 1;
|
|
372
|
+
derivativeStart = 0;
|
|
373
|
+
}
|
|
374
|
+
if (derivativeIndices[derivatives.cols() - 1] == points.cols() - 1)
|
|
375
|
+
{
|
|
376
|
+
A.template block<1, 2>(n - 2, n - 2) << -1, 1;
|
|
377
|
+
|
|
378
|
+
Scalar y = (knots(knots.size() - 1) - knots(knots.size() - (degree + 2))) / degree;
|
|
379
|
+
b.col(b.cols() - 2) = y*derivatives.col(derivatives.cols() - 1);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
DenseIndex row = startRow;
|
|
383
|
+
DenseIndex derivativeIndex = derivativeStart;
|
|
384
|
+
for (DenseIndex i = 1; i < parameters.size() - 1; ++i)
|
|
385
|
+
{
|
|
386
|
+
const DenseIndex span = SplineType::Span(parameters[i], degree, knots);
|
|
387
|
+
|
|
388
|
+
if (derivativeIndex < derivativeIndices.size() && derivativeIndices[derivativeIndex] == i)
|
|
389
|
+
{
|
|
390
|
+
A.block(row, span - degree, 2, degree + 1)
|
|
391
|
+
= SplineType::BasisFunctionDerivatives(parameters[i], 1, degree, knots);
|
|
392
|
+
|
|
393
|
+
b.col(row++) = points.col(i);
|
|
394
|
+
b.col(row++) = derivatives.col(derivativeIndex++);
|
|
395
|
+
}
|
|
396
|
+
else
|
|
397
|
+
{
|
|
398
|
+
A.row(row).segment(span - degree, degree + 1)
|
|
399
|
+
= SplineType::BasisFunctions(parameters[i], degree, knots);
|
|
400
|
+
b.col(row++) = points.col(i);
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
b.col(0) = points.col(0);
|
|
404
|
+
b.col(b.cols() - 1) = points.col(points.cols() - 1);
|
|
405
|
+
A(0,0) = 1;
|
|
406
|
+
A(n - 1, n - 1) = 1;
|
|
407
|
+
|
|
408
|
+
// Solve
|
|
409
|
+
FullPivLU<MatrixType> lu(A);
|
|
410
|
+
ControlPointVectorType controlPoints = lu.solve(MatrixType(b.transpose())).transpose();
|
|
411
|
+
|
|
412
|
+
SplineType spline(knots, controlPoints);
|
|
413
|
+
|
|
414
|
+
return spline;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
template <typename SplineType>
|
|
418
|
+
template <typename PointArrayType, typename IndexArray>
|
|
419
|
+
SplineType
|
|
420
|
+
SplineFitting<SplineType>::InterpolateWithDerivatives(const PointArrayType& points,
|
|
421
|
+
const PointArrayType& derivatives,
|
|
422
|
+
const IndexArray& derivativeIndices,
|
|
423
|
+
const unsigned int degree)
|
|
424
|
+
{
|
|
425
|
+
ParameterVectorType parameters;
|
|
426
|
+
ChordLengths(points, parameters);
|
|
427
|
+
return InterpolateWithDerivatives(points, derivatives, derivativeIndices, degree, parameters);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
#endif // EIGEN_SPLINE_FITTING_H
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 20010-2011 Hauke Heibel <hauke.heibel@gmail.com>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_SPLINES_FWD_H
|
|
11
|
+
#define EIGEN_SPLINES_FWD_H
|
|
12
|
+
|
|
13
|
+
#include "../../../../Eigen/Core"
|
|
14
|
+
|
|
15
|
+
namespace Eigen
|
|
16
|
+
{
|
|
17
|
+
template <typename Scalar, int Dim, int Degree = Dynamic> class Spline;
|
|
18
|
+
|
|
19
|
+
template < typename SplineType, int DerivativeOrder = Dynamic > struct SplineTraits {};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* \ingroup Splines_Module
|
|
23
|
+
* \brief Compile-time attributes of the Spline class for Dynamic degree.
|
|
24
|
+
**/
|
|
25
|
+
template <typename _Scalar, int _Dim, int _Degree>
|
|
26
|
+
struct SplineTraits< Spline<_Scalar, _Dim, _Degree>, Dynamic >
|
|
27
|
+
{
|
|
28
|
+
typedef _Scalar Scalar; /*!< The spline curve's scalar type. */
|
|
29
|
+
enum { Dimension = _Dim /*!< The spline curve's dimension. */ };
|
|
30
|
+
enum { Degree = _Degree /*!< The spline curve's degree. */ };
|
|
31
|
+
|
|
32
|
+
enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ };
|
|
33
|
+
enum { NumOfDerivativesAtCompileTime = OrderAtCompileTime /*!< The number of derivatives defined for the current spline. */ };
|
|
34
|
+
|
|
35
|
+
enum { DerivativeMemoryLayout = Dimension==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ };
|
|
36
|
+
|
|
37
|
+
/** \brief The data type used to store non-zero basis functions. */
|
|
38
|
+
typedef Array<Scalar,1,OrderAtCompileTime> BasisVectorType;
|
|
39
|
+
|
|
40
|
+
/** \brief The data type used to store the values of the basis function derivatives. */
|
|
41
|
+
typedef Array<Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType;
|
|
42
|
+
|
|
43
|
+
/** \brief The data type used to store the spline's derivative values. */
|
|
44
|
+
typedef Array<Scalar,Dimension,Dynamic,DerivativeMemoryLayout,Dimension,NumOfDerivativesAtCompileTime> DerivativeType;
|
|
45
|
+
|
|
46
|
+
/** \brief The point type the spline is representing. */
|
|
47
|
+
typedef Array<Scalar,Dimension,1> PointType;
|
|
48
|
+
|
|
49
|
+
/** \brief The data type used to store knot vectors. */
|
|
50
|
+
typedef Array<Scalar,1,Dynamic> KnotVectorType;
|
|
51
|
+
|
|
52
|
+
/** \brief The data type used to store parameter vectors. */
|
|
53
|
+
typedef Array<Scalar,1,Dynamic> ParameterVectorType;
|
|
54
|
+
|
|
55
|
+
/** \brief The data type representing the spline's control points. */
|
|
56
|
+
typedef Array<Scalar,Dimension,Dynamic> ControlPointVectorType;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* \ingroup Splines_Module
|
|
61
|
+
* \brief Compile-time attributes of the Spline class for fixed degree.
|
|
62
|
+
*
|
|
63
|
+
* The traits class inherits all attributes from the SplineTraits of Dynamic degree.
|
|
64
|
+
**/
|
|
65
|
+
template < typename _Scalar, int _Dim, int _Degree, int _DerivativeOrder >
|
|
66
|
+
struct SplineTraits< Spline<_Scalar, _Dim, _Degree>, _DerivativeOrder > : public SplineTraits< Spline<_Scalar, _Dim, _Degree> >
|
|
67
|
+
{
|
|
68
|
+
enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ };
|
|
69
|
+
enum { NumOfDerivativesAtCompileTime = _DerivativeOrder==Dynamic ? Dynamic : _DerivativeOrder+1 /*!< The number of derivatives defined for the current spline. */ };
|
|
70
|
+
|
|
71
|
+
enum { DerivativeMemoryLayout = _Dim==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ };
|
|
72
|
+
|
|
73
|
+
/** \brief The data type used to store the values of the basis function derivatives. */
|
|
74
|
+
typedef Array<_Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType;
|
|
75
|
+
|
|
76
|
+
/** \brief The data type used to store the spline's derivative values. */
|
|
77
|
+
typedef Array<_Scalar,_Dim,Dynamic,DerivativeMemoryLayout,_Dim,NumOfDerivativesAtCompileTime> DerivativeType;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
/** \brief 2D float B-spline with dynamic degree. */
|
|
81
|
+
typedef Spline<float,2> Spline2f;
|
|
82
|
+
|
|
83
|
+
/** \brief 3D float B-spline with dynamic degree. */
|
|
84
|
+
typedef Spline<float,3> Spline3f;
|
|
85
|
+
|
|
86
|
+
/** \brief 2D double B-spline with dynamic degree. */
|
|
87
|
+
typedef Spline<double,2> Spline2d;
|
|
88
|
+
|
|
89
|
+
/** \brief 3D double B-spline with dynamic degree. */
|
|
90
|
+
typedef Spline<double,3> Spline3d;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
#endif // EIGEN_SPLINES_FWD_H
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"""
|
|
2
|
+
pylibsparseir - Python bindings for the libsparseir library
|
|
3
|
+
|
|
4
|
+
This package provides Python bindings for the libsparseir C++ library,
|
|
5
|
+
enabling efficient computation of sparse intermediate representation (IR)
|
|
6
|
+
basis functions used in many-body physics calculations.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from .core import *
|
|
10
|
+
from .constants import *
|
|
11
|
+
|
|
12
|
+
# Import version from package metadata
|
|
13
|
+
try:
|
|
14
|
+
from importlib.metadata import version, PackageNotFoundError
|
|
15
|
+
__version__ = version("pylibsparseir")
|
|
16
|
+
except ImportError:
|
|
17
|
+
# Fallback for Python < 3.8
|
|
18
|
+
try:
|
|
19
|
+
import pkg_resources
|
|
20
|
+
__version__ = pkg_resources.get_distribution("pylibsparseir").version
|
|
21
|
+
except Exception:
|
|
22
|
+
__version__ = "unknown"
|
|
23
|
+
except PackageNotFoundError:
|
|
24
|
+
# Package not installed, fallback
|
|
25
|
+
__version__ = "unknown"
|
|
26
|
+
|
|
27
|
+
# Create version info tuple
|
|
28
|
+
try:
|
|
29
|
+
__version_info__ = tuple(map(int, __version__.split(".")))
|
|
30
|
+
except (ValueError, AttributeError):
|
|
31
|
+
__version_info__ = (0, 0, 0)
|