@smake/eigen 1.1.0 → 1.1.1
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.
- package/README.md +1 -1
- package/eigen/Eigen/AccelerateSupport +52 -0
- package/eigen/Eigen/Cholesky +18 -20
- package/eigen/Eigen/CholmodSupport +28 -28
- package/eigen/Eigen/Core +187 -120
- package/eigen/Eigen/Eigenvalues +16 -13
- package/eigen/Eigen/Geometry +18 -18
- package/eigen/Eigen/Householder +9 -7
- package/eigen/Eigen/IterativeLinearSolvers +8 -4
- package/eigen/Eigen/Jacobi +14 -13
- package/eigen/Eigen/KLUSupport +23 -21
- package/eigen/Eigen/LU +15 -16
- package/eigen/Eigen/MetisSupport +12 -12
- package/eigen/Eigen/OrderingMethods +54 -51
- package/eigen/Eigen/PaStiXSupport +23 -21
- package/eigen/Eigen/PardisoSupport +17 -14
- package/eigen/Eigen/QR +18 -20
- package/eigen/Eigen/QtAlignedMalloc +5 -12
- package/eigen/Eigen/SPQRSupport +21 -14
- package/eigen/Eigen/SVD +23 -17
- package/eigen/Eigen/Sparse +1 -2
- package/eigen/Eigen/SparseCholesky +18 -15
- package/eigen/Eigen/SparseCore +18 -17
- package/eigen/Eigen/SparseLU +9 -9
- package/eigen/Eigen/SparseQR +16 -14
- package/eigen/Eigen/StdDeque +5 -2
- package/eigen/Eigen/StdList +5 -2
- package/eigen/Eigen/StdVector +5 -2
- package/eigen/Eigen/SuperLUSupport +30 -24
- package/eigen/Eigen/ThreadPool +80 -0
- package/eigen/Eigen/UmfPackSupport +19 -17
- package/eigen/Eigen/Version +14 -0
- package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
- package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Cholesky/LDLT.h +366 -405
- package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
- package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
- package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
- package/eigen/Eigen/src/Core/Array.h +329 -370
- package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
- package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
- package/eigen/Eigen/src/Core/Assign.h +30 -40
- package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
- package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
- package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
- package/eigen/Eigen/src/Core/Block.h +371 -390
- package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
- package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
- package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
- package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
- package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
- package/eigen/Eigen/src/Core/DenseBase.h +630 -658
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
- package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
- package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
- package/eigen/Eigen/src/Core/Diagonal.h +168 -207
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
- package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
- package/eigen/Eigen/src/Core/Dot.h +167 -217
- package/eigen/Eigen/src/Core/EigenBase.h +74 -85
- package/eigen/Eigen/src/Core/Fill.h +138 -0
- package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
- package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -113
- package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
- package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
- package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
- package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
- package/eigen/Eigen/src/Core/IO.h +131 -156
- package/eigen/Eigen/src/Core/IndexedView.h +209 -125
- package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
- package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/Inverse.h +50 -59
- package/eigen/Eigen/src/Core/Map.h +123 -141
- package/eigen/Eigen/src/Core/MapBase.h +255 -282
- package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
- package/eigen/Eigen/src/Core/Matrix.h +463 -494
- package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
- package/eigen/Eigen/src/Core/NestByValue.h +58 -52
- package/eigen/Eigen/src/Core/NoAlias.h +79 -86
- package/eigen/Eigen/src/Core/NumTraits.h +206 -206
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
- package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
- package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
- package/eigen/Eigen/src/Core/Product.h +246 -130
- package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
- package/eigen/Eigen/src/Core/Random.h +153 -164
- package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
- package/eigen/Eigen/src/Core/RealView.h +250 -0
- package/eigen/Eigen/src/Core/Redux.h +334 -314
- package/eigen/Eigen/src/Core/Ref.h +259 -257
- package/eigen/Eigen/src/Core/Replicate.h +92 -104
- package/eigen/Eigen/src/Core/Reshaped.h +215 -271
- package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
- package/eigen/Eigen/src/Core/Reverse.h +133 -148
- package/eigen/Eigen/src/Core/Select.h +68 -140
- package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
- package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
- package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
- package/eigen/Eigen/src/Core/Solve.h +88 -102
- package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
- package/eigen/Eigen/src/Core/SolverBase.h +132 -133
- package/eigen/Eigen/src/Core/StableNorm.h +113 -147
- package/eigen/Eigen/src/Core/StlIterators.h +404 -248
- package/eigen/Eigen/src/Core/Stride.h +90 -92
- package/eigen/Eigen/src/Core/Swap.h +70 -39
- package/eigen/Eigen/src/Core/Transpose.h +258 -295
- package/eigen/Eigen/src/Core/Transpositions.h +270 -333
- package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
- package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
- package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
- package/eigen/Eigen/src/Core/Visitor.h +464 -308
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
- package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
- package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
- package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +229 -41
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2380 -1362
- package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
- package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
- package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
- package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
- package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
- package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
- package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
- package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
- package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
- package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
- package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
- package/eigen/Eigen/src/Core/arch/MSA/Complex.h +54 -82
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
- package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
- package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
- package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
- package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
- package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
- package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -47
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
- package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
- package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
- package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -277
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
- package/eigen/Eigen/src/Core/util/Assert.h +158 -0
- package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
- package/eigen/Eigen/src/Core/util/Constants.h +297 -262
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
- package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
- package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
- package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
- package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +417 -116
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
- package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
- package/eigen/Eigen/src/Core/util/Macros.h +655 -773
- package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
- package/eigen/Eigen/src/Core/util/Memory.h +970 -748
- package/eigen/Eigen/src/Core/util/Meta.h +581 -633
- package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
- package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
- package/eigen/Eigen/src/Core/util/ReshapedHelper.h +17 -17
- package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
- package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
- package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
- package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
- package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
- package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
- package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
- package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
- package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +89 -105
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
- package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
- package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
- package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
- package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
- package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
- package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
- package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
- package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
- package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
- package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
- package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
- package/eigen/Eigen/src/Geometry/Transform.h +858 -936
- package/eigen/Eigen/src/Geometry/Translation.h +94 -92
- package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
- package/eigen/Eigen/src/Householder/Householder.h +102 -124
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
- package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
- package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
- package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
- package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
- package/eigen/Eigen/src/LU/Determinant.h +50 -69
- package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
- package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
- package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
- package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
- package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
- package/eigen/Eigen/src/OrderingMethods/Amd.h +243 -265
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
- package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
- package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
- package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -430
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
- package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
- package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
- package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
- package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +244 -264
- package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
- package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
- package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SVD/JacobiSVD.h +577 -543
- package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
- package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
- package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
- package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
- package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
- package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
- package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
- package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
- package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
- package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
- package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1603 -1245
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
- package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
- package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
- package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
- package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +370 -416
- package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
- package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
- package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
- package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
- package/eigen/Eigen/src/SparseCore/SparseUtil.h +138 -115
- package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
- package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
- package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
- package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseLU/SparseLU.h +756 -710
- package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
- package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
- package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
- package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +245 -301
- package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
- package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
- package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +89 -100
- package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
- package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
- package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +124 -132
- package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
- package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
- package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
- package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
- package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseQR/SparseQR.h +450 -502
- package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
- package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
- package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
- package/eigen/Eigen/src/StlSupport/details.h +48 -50
- package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -730
- package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
- package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
- package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
- package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
- package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
- package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
- package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
- package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
- package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
- package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
- package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
- package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
- package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +428 -464
- package/eigen/Eigen/src/misc/Image.h +41 -43
- package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/misc/Kernel.h +39 -41
- package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
- package/eigen/Eigen/src/misc/blas.h +83 -426
- package/eigen/Eigen/src/misc/lapacke.h +9972 -16179
- package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
- package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
- package/eigen/Eigen/src/plugins/{BlockMethods.h → BlockMethods.inc} +434 -506
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
- package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
- package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
- package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
- package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
- package/package.json +1 -1
- package/eigen/COPYING.APACHE +0 -203
- package/eigen/COPYING.BSD +0 -26
- package/eigen/COPYING.GPL +0 -674
- package/eigen/COPYING.LGPL +0 -502
- package/eigen/COPYING.MINPACK +0 -51
- package/eigen/COPYING.MPL2 +0 -373
- package/eigen/COPYING.README +0 -18
- package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
- package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
- package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
- package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
- package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
- package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
- package/eigen/Eigen/src/misc/lapack.h +0 -152
- package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
- package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
- package/eigen/README.md +0 -5
|
@@ -10,344 +10,329 @@
|
|
|
10
10
|
#ifndef EIGEN_BANDMATRIX_H
|
|
11
11
|
#define EIGEN_BANDMATRIX_H
|
|
12
12
|
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
13
16
|
namespace Eigen {
|
|
14
17
|
|
|
15
18
|
namespace internal {
|
|
16
19
|
|
|
17
|
-
template<typename Derived>
|
|
18
|
-
class BandMatrixBase : public EigenBase<Derived>
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
template <typename Derived>
|
|
21
|
+
class BandMatrixBase : public EigenBase<Derived> {
|
|
22
|
+
public:
|
|
23
|
+
enum {
|
|
24
|
+
Flags = internal::traits<Derived>::Flags,
|
|
25
|
+
CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
|
|
26
|
+
RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
|
|
27
|
+
ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
|
|
28
|
+
MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
|
|
29
|
+
MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
|
|
30
|
+
Supers = internal::traits<Derived>::Supers,
|
|
31
|
+
Subs = internal::traits<Derived>::Subs,
|
|
32
|
+
Options = internal::traits<Derived>::Options
|
|
33
|
+
};
|
|
34
|
+
typedef typename internal::traits<Derived>::Scalar Scalar;
|
|
35
|
+
typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime> DenseMatrixType;
|
|
36
|
+
typedef typename DenseMatrixType::StorageIndex StorageIndex;
|
|
37
|
+
typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
|
|
38
|
+
typedef EigenBase<Derived> Base;
|
|
21
39
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
|
|
28
|
-
MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
|
|
29
|
-
Supers = internal::traits<Derived>::Supers,
|
|
30
|
-
Subs = internal::traits<Derived>::Subs,
|
|
31
|
-
Options = internal::traits<Derived>::Options
|
|
32
|
-
};
|
|
33
|
-
typedef typename internal::traits<Derived>::Scalar Scalar;
|
|
34
|
-
typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> DenseMatrixType;
|
|
35
|
-
typedef typename DenseMatrixType::StorageIndex StorageIndex;
|
|
36
|
-
typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
|
|
37
|
-
typedef EigenBase<Derived> Base;
|
|
40
|
+
protected:
|
|
41
|
+
enum {
|
|
42
|
+
DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic,
|
|
43
|
+
SizeAtCompileTime = min_size_prefer_dynamic(RowsAtCompileTime, ColsAtCompileTime)
|
|
44
|
+
};
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
public:
|
|
47
|
+
using Base::cols;
|
|
48
|
+
using Base::derived;
|
|
49
|
+
using Base::rows;
|
|
50
|
+
|
|
51
|
+
/** \returns the number of super diagonals */
|
|
52
|
+
inline Index supers() const { return derived().supers(); }
|
|
53
|
+
|
|
54
|
+
/** \returns the number of sub diagonals */
|
|
55
|
+
inline Index subs() const { return derived().subs(); }
|
|
56
|
+
|
|
57
|
+
/** \returns an expression of the underlying coefficient matrix */
|
|
58
|
+
inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
|
|
59
|
+
|
|
60
|
+
/** \returns an expression of the underlying coefficient matrix */
|
|
61
|
+
inline CoefficientsType& coeffs() { return derived().coeffs(); }
|
|
62
|
+
|
|
63
|
+
/** \returns a vector expression of the \a i -th column,
|
|
64
|
+
* only the meaningful part is returned.
|
|
65
|
+
* \warning the internal storage must be column major. */
|
|
66
|
+
inline Block<CoefficientsType, Dynamic, 1> col(Index i) {
|
|
67
|
+
EIGEN_STATIC_ASSERT((int(Options) & int(RowMajor)) == 0, THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
|
|
68
|
+
Index start = 0;
|
|
69
|
+
Index len = coeffs().rows();
|
|
70
|
+
if (i <= supers()) {
|
|
71
|
+
start = supers() - i;
|
|
72
|
+
len = (std::min)(rows(), std::max<Index>(0, coeffs().rows() - (supers() - i)));
|
|
73
|
+
} else if (i >= rows() - subs())
|
|
74
|
+
len = std::max<Index>(0, coeffs().rows() - (i + 1 - rows() + subs()));
|
|
75
|
+
return Block<CoefficientsType, Dynamic, 1>(coeffs(), start, i, len, 1);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** \returns a vector expression of the main diagonal */
|
|
79
|
+
inline Block<CoefficientsType, 1, SizeAtCompileTime> diagonal() {
|
|
80
|
+
return Block<CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** \returns a vector expression of the main diagonal (const version) */
|
|
84
|
+
inline const Block<const CoefficientsType, 1, SizeAtCompileTime> diagonal() const {
|
|
85
|
+
return Block<const CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
template <int Index>
|
|
89
|
+
struct DiagonalIntReturnType {
|
|
40
90
|
enum {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
using Base::rows;
|
|
51
|
-
using Base::cols;
|
|
52
|
-
|
|
53
|
-
/** \returns the number of super diagonals */
|
|
54
|
-
inline Index supers() const { return derived().supers(); }
|
|
55
|
-
|
|
56
|
-
/** \returns the number of sub diagonals */
|
|
57
|
-
inline Index subs() const { return derived().subs(); }
|
|
58
|
-
|
|
59
|
-
/** \returns an expression of the underlying coefficient matrix */
|
|
60
|
-
inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
|
|
61
|
-
|
|
62
|
-
/** \returns an expression of the underlying coefficient matrix */
|
|
63
|
-
inline CoefficientsType& coeffs() { return derived().coeffs(); }
|
|
64
|
-
|
|
65
|
-
/** \returns a vector expression of the \a i -th column,
|
|
66
|
-
* only the meaningful part is returned.
|
|
67
|
-
* \warning the internal storage must be column major. */
|
|
68
|
-
inline Block<CoefficientsType,Dynamic,1> col(Index i)
|
|
69
|
-
{
|
|
70
|
-
EIGEN_STATIC_ASSERT((int(Options) & int(RowMajor)) == 0, THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
|
|
71
|
-
Index start = 0;
|
|
72
|
-
Index len = coeffs().rows();
|
|
73
|
-
if (i<=supers())
|
|
74
|
-
{
|
|
75
|
-
start = supers()-i;
|
|
76
|
-
len = (std::min)(rows(),std::max<Index>(0,coeffs().rows() - (supers()-i)));
|
|
77
|
-
}
|
|
78
|
-
else if (i>=rows()-subs())
|
|
79
|
-
len = std::max<Index>(0,coeffs().rows() - (i + 1 - rows() + subs()));
|
|
80
|
-
return Block<CoefficientsType,Dynamic,1>(coeffs(), start, i, len, 1);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/** \returns a vector expression of the main diagonal */
|
|
84
|
-
inline Block<CoefficientsType,1,SizeAtCompileTime> diagonal()
|
|
85
|
-
{ return Block<CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
|
|
86
|
-
|
|
87
|
-
/** \returns a vector expression of the main diagonal (const version) */
|
|
88
|
-
inline const Block<const CoefficientsType,1,SizeAtCompileTime> diagonal() const
|
|
89
|
-
{ return Block<const CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
|
|
90
|
-
|
|
91
|
-
template<int Index> struct DiagonalIntReturnType {
|
|
92
|
-
enum {
|
|
93
|
-
ReturnOpposite = (int(Options) & int(SelfAdjoint)) && (((Index) > 0 && Supers == 0) || ((Index) < 0 && Subs == 0)),
|
|
94
|
-
Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
|
|
95
|
-
ActualIndex = ReturnOpposite ? -Index : Index,
|
|
96
|
-
DiagonalSize = (RowsAtCompileTime==Dynamic || ColsAtCompileTime==Dynamic)
|
|
97
|
-
? Dynamic
|
|
98
|
-
: (ActualIndex<0
|
|
99
|
-
? EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
|
|
100
|
-
: EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
|
|
101
|
-
};
|
|
102
|
-
typedef Block<CoefficientsType,1, DiagonalSize> BuildType;
|
|
103
|
-
typedef typename internal::conditional<Conjugate,
|
|
104
|
-
CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,BuildType >,
|
|
105
|
-
BuildType>::type Type;
|
|
91
|
+
ReturnOpposite =
|
|
92
|
+
(int(Options) & int(SelfAdjoint)) && (((Index) > 0 && Supers == 0) || ((Index) < 0 && Subs == 0)),
|
|
93
|
+
Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
|
|
94
|
+
ActualIndex = ReturnOpposite ? -Index : Index,
|
|
95
|
+
DiagonalSize =
|
|
96
|
+
(RowsAtCompileTime == Dynamic || ColsAtCompileTime == Dynamic)
|
|
97
|
+
? Dynamic
|
|
98
|
+
: (ActualIndex < 0 ? min_size_prefer_dynamic(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
|
|
99
|
+
: min_size_prefer_dynamic(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
|
|
106
100
|
};
|
|
101
|
+
typedef Block<CoefficientsType, 1, DiagonalSize> BuildType;
|
|
102
|
+
typedef std::conditional_t<Conjugate, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, BuildType>, BuildType>
|
|
103
|
+
Type;
|
|
104
|
+
};
|
|
107
105
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
protected:
|
|
153
|
-
|
|
154
|
-
inline Index diagonalLength(Index i) const
|
|
155
|
-
{ return i<0 ? (std::min)(cols(),rows()+i) : (std::min)(rows(),cols()-i); }
|
|
106
|
+
/** \returns a vector expression of the \a N -th sub or super diagonal */
|
|
107
|
+
template <int N>
|
|
108
|
+
inline typename DiagonalIntReturnType<N>::Type diagonal() {
|
|
109
|
+
return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers() - N, (std::max)(0, N), 1, diagonalLength(N));
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/** \returns a vector expression of the \a N -th sub or super diagonal */
|
|
113
|
+
template <int N>
|
|
114
|
+
inline const typename DiagonalIntReturnType<N>::Type diagonal() const {
|
|
115
|
+
return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers() - N, (std::max)(0, N), 1, diagonalLength(N));
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/** \returns a vector expression of the \a i -th sub or super diagonal */
|
|
119
|
+
inline Block<CoefficientsType, 1, Dynamic> diagonal(Index i) {
|
|
120
|
+
eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
|
|
121
|
+
return Block<CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1, diagonalLength(i));
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/** \returns a vector expression of the \a i -th sub or super diagonal */
|
|
125
|
+
inline const Block<const CoefficientsType, 1, Dynamic> diagonal(Index i) const {
|
|
126
|
+
eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
|
|
127
|
+
return Block<const CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1,
|
|
128
|
+
diagonalLength(i));
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
template <typename Dest>
|
|
132
|
+
inline void evalTo(Dest& dst) const {
|
|
133
|
+
dst.resize(rows(), cols());
|
|
134
|
+
dst.setZero();
|
|
135
|
+
dst.diagonal() = diagonal();
|
|
136
|
+
for (Index i = 1; i <= supers(); ++i) dst.diagonal(i) = diagonal(i);
|
|
137
|
+
for (Index i = 1; i <= subs(); ++i) dst.diagonal(-i) = diagonal(-i);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
DenseMatrixType toDenseMatrix() const {
|
|
141
|
+
DenseMatrixType res(rows(), cols());
|
|
142
|
+
evalTo(res);
|
|
143
|
+
return res;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
protected:
|
|
147
|
+
inline Index diagonalLength(Index i) const {
|
|
148
|
+
return i < 0 ? (std::min)(cols(), rows() + i) : (std::min)(rows(), cols() - i);
|
|
149
|
+
}
|
|
156
150
|
};
|
|
157
151
|
|
|
158
152
|
/**
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
template<typename
|
|
178
|
-
struct traits<BandMatrix<
|
|
179
|
-
|
|
180
|
-
typedef _Scalar Scalar;
|
|
153
|
+
* \class BandMatrix
|
|
154
|
+
* \ingroup Core_Module
|
|
155
|
+
*
|
|
156
|
+
* \brief Represents a rectangular matrix with a banded storage
|
|
157
|
+
*
|
|
158
|
+
* \tparam Scalar_ Numeric type, i.e. float, double, int
|
|
159
|
+
* \tparam Rows_ Number of rows, or \b Dynamic
|
|
160
|
+
* \tparam Cols_ Number of columns, or \b Dynamic
|
|
161
|
+
* \tparam Supers_ Number of super diagonal
|
|
162
|
+
* \tparam Subs_ Number of sub diagonal
|
|
163
|
+
* \tparam Options_ A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
|
|
164
|
+
* The former controls \ref TopicStorageOrders "storage order", and defaults to
|
|
165
|
+
* column-major. The latter controls whether the matrix represents a selfadjoint
|
|
166
|
+
* matrix in which case either Supers of Subs have to be null.
|
|
167
|
+
*
|
|
168
|
+
* \sa class TridiagonalMatrix
|
|
169
|
+
*/
|
|
170
|
+
|
|
171
|
+
template <typename Scalar_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
172
|
+
struct traits<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> > {
|
|
173
|
+
typedef Scalar_ Scalar;
|
|
181
174
|
typedef Dense StorageKind;
|
|
182
175
|
typedef Eigen::Index StorageIndex;
|
|
183
176
|
enum {
|
|
184
177
|
CoeffReadCost = NumTraits<Scalar>::ReadCost,
|
|
185
|
-
RowsAtCompileTime =
|
|
186
|
-
ColsAtCompileTime =
|
|
187
|
-
MaxRowsAtCompileTime =
|
|
188
|
-
MaxColsAtCompileTime =
|
|
178
|
+
RowsAtCompileTime = Rows_,
|
|
179
|
+
ColsAtCompileTime = Cols_,
|
|
180
|
+
MaxRowsAtCompileTime = Rows_,
|
|
181
|
+
MaxColsAtCompileTime = Cols_,
|
|
189
182
|
Flags = LvalueBit,
|
|
190
|
-
Supers =
|
|
191
|
-
Subs =
|
|
192
|
-
Options =
|
|
193
|
-
DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
|
|
183
|
+
Supers = Supers_,
|
|
184
|
+
Subs = Subs_,
|
|
185
|
+
Options = Options_,
|
|
186
|
+
DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic
|
|
194
187
|
};
|
|
195
|
-
typedef Matrix<Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) & int(RowMajor) ? RowMajor : ColMajor>
|
|
188
|
+
typedef Matrix<Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) & int(RowMajor) ? RowMajor : ColMajor>
|
|
189
|
+
CoefficientsType;
|
|
196
190
|
};
|
|
197
191
|
|
|
198
|
-
template<typename
|
|
199
|
-
class BandMatrix : public BandMatrixBase<BandMatrix<
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
|
|
205
|
-
typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
|
|
206
|
-
|
|
207
|
-
explicit inline BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
|
|
208
|
-
: m_coeffs(1+supers+subs,cols),
|
|
209
|
-
m_rows(rows), m_supers(supers), m_subs(subs)
|
|
210
|
-
{
|
|
211
|
-
}
|
|
192
|
+
template <typename Scalar_, int Rows, int Cols, int Supers, int Subs, int Options>
|
|
193
|
+
class BandMatrix : public BandMatrixBase<BandMatrix<Scalar_, Rows, Cols, Supers, Subs, Options> > {
|
|
194
|
+
public:
|
|
195
|
+
typedef typename internal::traits<BandMatrix>::Scalar Scalar;
|
|
196
|
+
typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
|
|
197
|
+
typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
|
|
212
198
|
|
|
213
|
-
|
|
214
|
-
|
|
199
|
+
explicit inline BandMatrix(Index rows = Rows, Index cols = Cols, Index supers = Supers, Index subs = Subs)
|
|
200
|
+
: m_coeffs(1 + supers + subs, cols), m_rows(rows), m_supers(supers), m_subs(subs) {}
|
|
215
201
|
|
|
216
|
-
|
|
217
|
-
|
|
202
|
+
/** \returns the number of columns */
|
|
203
|
+
constexpr Index rows() const { return m_rows.value(); }
|
|
218
204
|
|
|
219
|
-
|
|
220
|
-
|
|
205
|
+
/** \returns the number of rows */
|
|
206
|
+
constexpr Index cols() const { return m_coeffs.cols(); }
|
|
221
207
|
|
|
222
|
-
|
|
223
|
-
|
|
208
|
+
/** \returns the number of super diagonals */
|
|
209
|
+
constexpr Index supers() const { return m_supers.value(); }
|
|
224
210
|
|
|
225
|
-
|
|
226
|
-
|
|
211
|
+
/** \returns the number of sub diagonals */
|
|
212
|
+
constexpr Index subs() const { return m_subs.value(); }
|
|
227
213
|
|
|
228
|
-
|
|
214
|
+
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
|
215
|
+
inline CoefficientsType& coeffs() { return m_coeffs; }
|
|
229
216
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
217
|
+
protected:
|
|
218
|
+
CoefficientsType m_coeffs;
|
|
219
|
+
internal::variable_if_dynamic<Index, Rows> m_rows;
|
|
220
|
+
internal::variable_if_dynamic<Index, Supers> m_supers;
|
|
221
|
+
internal::variable_if_dynamic<Index, Subs> m_subs;
|
|
234
222
|
};
|
|
235
223
|
|
|
236
|
-
template<typename
|
|
224
|
+
template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
237
225
|
class BandMatrixWrapper;
|
|
238
226
|
|
|
239
|
-
template<typename
|
|
240
|
-
struct traits<BandMatrixWrapper<
|
|
241
|
-
|
|
242
|
-
typedef typename
|
|
243
|
-
typedef typename
|
|
244
|
-
typedef typename _CoefficientsType::StorageIndex StorageIndex;
|
|
227
|
+
template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
228
|
+
struct traits<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
|
|
229
|
+
typedef typename CoefficientsType_::Scalar Scalar;
|
|
230
|
+
typedef typename CoefficientsType_::StorageKind StorageKind;
|
|
231
|
+
typedef typename CoefficientsType_::StorageIndex StorageIndex;
|
|
245
232
|
enum {
|
|
246
|
-
CoeffReadCost = internal::traits<
|
|
247
|
-
RowsAtCompileTime =
|
|
248
|
-
ColsAtCompileTime =
|
|
249
|
-
MaxRowsAtCompileTime =
|
|
250
|
-
MaxColsAtCompileTime =
|
|
233
|
+
CoeffReadCost = internal::traits<CoefficientsType_>::CoeffReadCost,
|
|
234
|
+
RowsAtCompileTime = Rows_,
|
|
235
|
+
ColsAtCompileTime = Cols_,
|
|
236
|
+
MaxRowsAtCompileTime = Rows_,
|
|
237
|
+
MaxColsAtCompileTime = Cols_,
|
|
251
238
|
Flags = LvalueBit,
|
|
252
|
-
Supers =
|
|
253
|
-
Subs =
|
|
254
|
-
Options =
|
|
255
|
-
DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
|
|
239
|
+
Supers = Supers_,
|
|
240
|
+
Subs = Subs_,
|
|
241
|
+
Options = Options_,
|
|
242
|
+
DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic
|
|
256
243
|
};
|
|
257
|
-
typedef
|
|
244
|
+
typedef CoefficientsType_ CoefficientsType;
|
|
258
245
|
};
|
|
259
246
|
|
|
260
|
-
template<typename
|
|
261
|
-
class BandMatrixWrapper
|
|
262
|
-
{
|
|
263
|
-
|
|
247
|
+
template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
248
|
+
class BandMatrixWrapper
|
|
249
|
+
: public BandMatrixBase<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
|
|
250
|
+
public:
|
|
251
|
+
typedef typename internal::traits<BandMatrixWrapper>::Scalar Scalar;
|
|
252
|
+
typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType CoefficientsType;
|
|
253
|
+
typedef typename internal::traits<BandMatrixWrapper>::StorageIndex StorageIndex;
|
|
264
254
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
255
|
+
explicit inline BandMatrixWrapper(const CoefficientsType& coeffs, Index rows = Rows_, Index cols = Cols_,
|
|
256
|
+
Index supers = Supers_, Index subs = Subs_)
|
|
257
|
+
: m_coeffs(coeffs), m_rows(rows), m_supers(supers), m_subs(subs) {
|
|
258
|
+
EIGEN_UNUSED_VARIABLE(cols);
|
|
259
|
+
// eigen_assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
|
|
260
|
+
}
|
|
268
261
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
m_rows(rows), m_supers(supers), m_subs(subs)
|
|
272
|
-
{
|
|
273
|
-
EIGEN_UNUSED_VARIABLE(cols);
|
|
274
|
-
//internal::assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
|
|
275
|
-
}
|
|
262
|
+
/** \returns the number of columns */
|
|
263
|
+
constexpr Index rows() const { return m_rows.value(); }
|
|
276
264
|
|
|
277
|
-
|
|
278
|
-
|
|
265
|
+
/** \returns the number of rows */
|
|
266
|
+
constexpr Index cols() const { return m_coeffs.cols(); }
|
|
279
267
|
|
|
280
|
-
|
|
281
|
-
|
|
268
|
+
/** \returns the number of super diagonals */
|
|
269
|
+
constexpr Index supers() const { return m_supers.value(); }
|
|
282
270
|
|
|
283
|
-
|
|
284
|
-
|
|
271
|
+
/** \returns the number of sub diagonals */
|
|
272
|
+
constexpr Index subs() const { return m_subs.value(); }
|
|
285
273
|
|
|
286
|
-
|
|
287
|
-
inline EIGEN_CONSTEXPR Index subs() const { return m_subs.value(); }
|
|
274
|
+
inline const CoefficientsType& coeffs() const { return m_coeffs; }
|
|
288
275
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
internal::variable_if_dynamic<Index, _Rows> m_rows;
|
|
295
|
-
internal::variable_if_dynamic<Index, _Supers> m_supers;
|
|
296
|
-
internal::variable_if_dynamic<Index, _Subs> m_subs;
|
|
276
|
+
protected:
|
|
277
|
+
const CoefficientsType& m_coeffs;
|
|
278
|
+
internal::variable_if_dynamic<Index, Rows_> m_rows;
|
|
279
|
+
internal::variable_if_dynamic<Index, Supers_> m_supers;
|
|
280
|
+
internal::variable_if_dynamic<Index, Subs_> m_subs;
|
|
297
281
|
};
|
|
298
282
|
|
|
299
283
|
/**
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
template<typename Scalar, int Size, int Options>
|
|
312
|
-
class TridiagonalMatrix : public BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor>
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
284
|
+
* \class TridiagonalMatrix
|
|
285
|
+
* \ingroup Core_Module
|
|
286
|
+
*
|
|
287
|
+
* \brief Represents a tridiagonal matrix with a compact banded storage
|
|
288
|
+
*
|
|
289
|
+
* \tparam Scalar Numeric type, i.e. float, double, int
|
|
290
|
+
* \tparam Size Number of rows and cols, or \b Dynamic
|
|
291
|
+
* \tparam Options Can be 0 or \b SelfAdjoint
|
|
292
|
+
*
|
|
293
|
+
* \sa class BandMatrix
|
|
294
|
+
*/
|
|
295
|
+
template <typename Scalar, int Size, int Options>
|
|
296
|
+
class TridiagonalMatrix : public BandMatrix<Scalar, Size, Size, Options & SelfAdjoint ? 0 : 1, 1, Options | RowMajor> {
|
|
297
|
+
typedef BandMatrix<Scalar, Size, Size, Options & SelfAdjoint ? 0 : 1, 1, Options | RowMajor> Base;
|
|
298
|
+
typedef typename Base::StorageIndex StorageIndex;
|
|
299
|
+
|
|
300
|
+
public:
|
|
301
|
+
explicit TridiagonalMatrix(Index size = Size) : Base(size, size, Options & SelfAdjoint ? 0 : 1, 1) {}
|
|
302
|
+
|
|
303
|
+
inline typename Base::template DiagonalIntReturnType<1>::Type super() { return Base::template diagonal<1>(); }
|
|
304
|
+
inline const typename Base::template DiagonalIntReturnType<1>::Type super() const {
|
|
305
|
+
return Base::template diagonal<1>();
|
|
306
|
+
}
|
|
307
|
+
inline typename Base::template DiagonalIntReturnType<-1>::Type sub() { return Base::template diagonal<-1>(); }
|
|
308
|
+
inline const typename Base::template DiagonalIntReturnType<-1>::Type sub() const {
|
|
309
|
+
return Base::template diagonal<-1>();
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
protected:
|
|
328
313
|
};
|
|
329
314
|
|
|
330
|
-
|
|
331
315
|
struct BandShape {};
|
|
332
316
|
|
|
333
|
-
template<typename
|
|
334
|
-
struct evaluator_traits<BandMatrix<
|
|
335
|
-
|
|
336
|
-
{
|
|
317
|
+
template <typename Scalar_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
318
|
+
struct evaluator_traits<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> >
|
|
319
|
+
: public evaluator_traits_base<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> > {
|
|
337
320
|
typedef BandShape Shape;
|
|
338
321
|
};
|
|
339
322
|
|
|
340
|
-
template<typename
|
|
341
|
-
struct evaluator_traits<BandMatrixWrapper<
|
|
342
|
-
|
|
343
|
-
{
|
|
323
|
+
template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
|
|
324
|
+
struct evaluator_traits<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> >
|
|
325
|
+
: public evaluator_traits_base<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
|
|
344
326
|
typedef BandShape Shape;
|
|
345
327
|
};
|
|
346
328
|
|
|
347
|
-
template<>
|
|
329
|
+
template <>
|
|
330
|
+
struct AssignmentKind<DenseShape, BandShape> {
|
|
331
|
+
typedef EigenBase2EigenBase Kind;
|
|
332
|
+
};
|
|
348
333
|
|
|
349
|
-
}
|
|
334
|
+
} // end namespace internal
|
|
350
335
|
|
|
351
|
-
}
|
|
336
|
+
} // end namespace Eigen
|
|
352
337
|
|
|
353
|
-
#endif
|
|
338
|
+
#endif // EIGEN_BANDMATRIX_H
|