@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
|
@@ -11,179 +11,167 @@
|
|
|
11
11
|
#ifndef EIGEN_SPARSE_TRIANGULARVIEW_H
|
|
12
12
|
#define EIGEN_SPARSE_TRIANGULARVIEW_H
|
|
13
13
|
|
|
14
|
+
// IWYU pragma: private
|
|
15
|
+
#include "./InternalHeaderCheck.h"
|
|
16
|
+
|
|
14
17
|
namespace Eigen {
|
|
15
18
|
|
|
16
19
|
/** \ingroup SparseCore_Module
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
protected:
|
|
38
|
-
// dummy solve function to make TriangularView happy.
|
|
39
|
-
void solve() const;
|
|
40
|
-
|
|
41
|
-
typedef SparseMatrixBase<TriangularViewType> Base;
|
|
42
|
-
public:
|
|
43
|
-
|
|
44
|
-
EIGEN_SPARSE_PUBLIC_INTERFACE(TriangularViewType)
|
|
45
|
-
|
|
46
|
-
typedef typename MatrixType::Nested MatrixTypeNested;
|
|
47
|
-
typedef typename internal::remove_reference<MatrixTypeNested>::type MatrixTypeNestedNonRef;
|
|
48
|
-
typedef typename internal::remove_all<MatrixTypeNested>::type MatrixTypeNestedCleaned;
|
|
49
|
-
|
|
50
|
-
template<typename RhsType, typename DstType>
|
|
51
|
-
EIGEN_DEVICE_FUNC
|
|
52
|
-
EIGEN_STRONG_INLINE void _solve_impl(const RhsType &rhs, DstType &dst) const {
|
|
53
|
-
if(!(internal::is_same<RhsType,DstType>::value && internal::extract_data(dst) == internal::extract_data(rhs)))
|
|
54
|
-
dst = rhs;
|
|
55
|
-
this->solveInPlace(dst);
|
|
56
|
-
}
|
|
20
|
+
*
|
|
21
|
+
* \brief Base class for a triangular part in a \b sparse matrix
|
|
22
|
+
*
|
|
23
|
+
* This class is an abstract base class of class TriangularView, and objects of type TriangularViewImpl cannot be
|
|
24
|
+
* instantiated. It extends class TriangularView with additional methods which are available for sparse expressions
|
|
25
|
+
* only.
|
|
26
|
+
*
|
|
27
|
+
* \sa class TriangularView, SparseMatrixBase::triangularView()
|
|
28
|
+
*/
|
|
29
|
+
template <typename MatrixType, unsigned int Mode>
|
|
30
|
+
class TriangularViewImpl<MatrixType, Mode, Sparse> : public SparseMatrixBase<TriangularView<MatrixType, Mode> > {
|
|
31
|
+
enum {
|
|
32
|
+
SkipFirst =
|
|
33
|
+
((Mode & Lower) && !(MatrixType::Flags & RowMajorBit)) || ((Mode & Upper) && (MatrixType::Flags & RowMajorBit)),
|
|
34
|
+
SkipLast = !SkipFirst,
|
|
35
|
+
SkipDiag = (Mode & ZeroDiag) ? 1 : 0,
|
|
36
|
+
HasUnitDiag = (Mode & UnitDiag) ? 1 : 0
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
typedef TriangularView<MatrixType, Mode> TriangularViewType;
|
|
57
40
|
|
|
58
|
-
|
|
59
|
-
|
|
41
|
+
protected:
|
|
42
|
+
// dummy solve function to make TriangularView happy.
|
|
43
|
+
void solve() const;
|
|
44
|
+
|
|
45
|
+
typedef SparseMatrixBase<TriangularViewType> Base;
|
|
46
|
+
|
|
47
|
+
public:
|
|
48
|
+
EIGEN_SPARSE_PUBLIC_INTERFACE(TriangularViewType)
|
|
49
|
+
|
|
50
|
+
typedef typename MatrixType::Nested MatrixTypeNested;
|
|
51
|
+
typedef std::remove_reference_t<MatrixTypeNested> MatrixTypeNestedNonRef;
|
|
52
|
+
typedef internal::remove_all_t<MatrixTypeNested> MatrixTypeNestedCleaned;
|
|
53
|
+
|
|
54
|
+
template <typename RhsType, typename DstType>
|
|
55
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void _solve_impl(const RhsType& rhs, DstType& dst) const {
|
|
56
|
+
if (!(internal::is_same<RhsType, DstType>::value && internal::extract_data(dst) == internal::extract_data(rhs)))
|
|
57
|
+
dst = rhs;
|
|
58
|
+
this->solveInPlace(dst);
|
|
59
|
+
}
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
/** Applies the inverse of \c *this to the dense vector or matrix \a other, "in-place" */
|
|
62
|
+
template <typename OtherDerived>
|
|
63
|
+
void solveInPlace(MatrixBase<OtherDerived>& other) const;
|
|
64
|
+
|
|
65
|
+
/** Applies the inverse of \c *this to the sparse vector or matrix \a other, "in-place" */
|
|
66
|
+
template <typename OtherDerived>
|
|
67
|
+
void solveInPlace(SparseMatrixBase<OtherDerived>& other) const;
|
|
64
68
|
};
|
|
65
69
|
|
|
66
70
|
namespace internal {
|
|
67
71
|
|
|
68
|
-
template<typename ArgType, unsigned int Mode>
|
|
69
|
-
struct unary_evaluator<TriangularView<ArgType,Mode>, IteratorBased>
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
protected:
|
|
75
|
-
|
|
72
|
+
template <typename ArgType, unsigned int Mode>
|
|
73
|
+
struct unary_evaluator<TriangularView<ArgType, Mode>, IteratorBased> : evaluator_base<TriangularView<ArgType, Mode> > {
|
|
74
|
+
typedef TriangularView<ArgType, Mode> XprType;
|
|
75
|
+
|
|
76
|
+
protected:
|
|
76
77
|
typedef typename XprType::Scalar Scalar;
|
|
77
78
|
typedef typename XprType::StorageIndex StorageIndex;
|
|
78
79
|
typedef typename evaluator<ArgType>::InnerIterator EvalIterator;
|
|
79
|
-
|
|
80
|
-
enum { SkipFirst = ((Mode&Lower) && !(ArgType::Flags&RowMajorBit))
|
|
81
|
-
|| ((Mode&Upper) && (ArgType::Flags&RowMajorBit)),
|
|
82
|
-
SkipLast = !SkipFirst,
|
|
83
|
-
SkipDiag = (Mode&ZeroDiag) ? 1 : 0,
|
|
84
|
-
HasUnitDiag = (Mode&UnitDiag) ? 1 : 0
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
public:
|
|
88
|
-
|
|
80
|
+
|
|
89
81
|
enum {
|
|
90
|
-
|
|
91
|
-
|
|
82
|
+
SkipFirst =
|
|
83
|
+
((Mode & Lower) && !(ArgType::Flags & RowMajorBit)) || ((Mode & Upper) && (ArgType::Flags & RowMajorBit)),
|
|
84
|
+
SkipLast = !SkipFirst,
|
|
85
|
+
SkipDiag = (Mode & ZeroDiag) ? 1 : 0,
|
|
86
|
+
HasUnitDiag = (Mode & UnitDiag) ? 1 : 0
|
|
92
87
|
};
|
|
93
|
-
|
|
94
|
-
explicit unary_evaluator(const XprType &xpr) : m_argImpl(xpr.nestedExpression()), m_arg(xpr.nestedExpression()) {}
|
|
95
|
-
|
|
96
|
-
inline Index nonZerosEstimate() const {
|
|
97
|
-
return m_argImpl.nonZerosEstimate();
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
class InnerIterator : public EvalIterator
|
|
101
|
-
{
|
|
102
|
-
typedef EvalIterator Base;
|
|
103
|
-
public:
|
|
104
|
-
|
|
105
|
-
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& xprEval, Index outer)
|
|
106
|
-
: Base(xprEval.m_argImpl,outer), m_returnOne(false), m_containsDiag(Base::outer()<xprEval.m_arg.innerSize())
|
|
107
|
-
{
|
|
108
|
-
if(SkipFirst)
|
|
109
|
-
{
|
|
110
|
-
while((*this) && ((HasUnitDiag||SkipDiag) ? this->index()<=outer : this->index()<outer))
|
|
111
|
-
Base::operator++();
|
|
112
|
-
if(HasUnitDiag)
|
|
113
|
-
m_returnOne = m_containsDiag;
|
|
114
|
-
}
|
|
115
|
-
else if(HasUnitDiag && ((!Base::operator bool()) || Base::index()>=Base::outer()))
|
|
116
|
-
{
|
|
117
|
-
if((!SkipFirst) && Base::operator bool())
|
|
118
|
-
Base::operator++();
|
|
119
|
-
m_returnOne = m_containsDiag;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
88
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
89
|
+
public:
|
|
90
|
+
enum { CoeffReadCost = evaluator<ArgType>::CoeffReadCost, Flags = XprType::Flags };
|
|
91
|
+
|
|
92
|
+
explicit unary_evaluator(const XprType& xpr) : m_argImpl(xpr.nestedExpression()), m_arg(xpr.nestedExpression()) {}
|
|
93
|
+
|
|
94
|
+
inline Index nonZerosEstimate() const { return m_argImpl.nonZerosEstimate(); }
|
|
95
|
+
|
|
96
|
+
class InnerIterator : public EvalIterator {
|
|
97
|
+
typedef EvalIterator Base;
|
|
98
|
+
|
|
99
|
+
public:
|
|
100
|
+
EIGEN_STRONG_INLINE InnerIterator(const unary_evaluator& xprEval, Index outer)
|
|
101
|
+
: Base(xprEval.m_argImpl, outer),
|
|
102
|
+
m_returnOne(false),
|
|
103
|
+
m_containsDiag(Base::outer() < xprEval.m_arg.innerSize()) {
|
|
104
|
+
if (SkipFirst) {
|
|
105
|
+
while ((*this) && ((HasUnitDiag || SkipDiag) ? this->index() <= outer : this->index() < outer))
|
|
129
106
|
Base::operator++();
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
m_returnOne = m_containsDiag;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return *this;
|
|
107
|
+
if (HasUnitDiag) m_returnOne = m_containsDiag;
|
|
108
|
+
} else if (HasUnitDiag && ((!Base::operator bool()) || Base::index() >= Base::outer())) {
|
|
109
|
+
if ((!SkipFirst) && Base::operator bool()) Base::operator++();
|
|
110
|
+
m_returnOne = m_containsDiag;
|
|
138
111
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
{
|
|
147
|
-
if (
|
|
148
|
-
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
EIGEN_STRONG_INLINE InnerIterator& operator++() {
|
|
115
|
+
if (HasUnitDiag && m_returnOne)
|
|
116
|
+
m_returnOne = false;
|
|
117
|
+
else {
|
|
118
|
+
Base::operator++();
|
|
119
|
+
if (HasUnitDiag && (!SkipFirst) && ((!Base::operator bool()) || Base::index() >= Base::outer())) {
|
|
120
|
+
if ((!SkipFirst) && Base::operator bool()) Base::operator++();
|
|
121
|
+
m_returnOne = m_containsDiag;
|
|
149
122
|
}
|
|
150
123
|
}
|
|
124
|
+
return *this;
|
|
125
|
+
}
|
|
151
126
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
if(HasUnitDiag && m_returnOne) return Scalar(1);
|
|
162
|
-
else return Base::value();
|
|
127
|
+
EIGEN_STRONG_INLINE operator bool() const {
|
|
128
|
+
if (HasUnitDiag && m_returnOne) return true;
|
|
129
|
+
if (SkipFirst)
|
|
130
|
+
return Base::operator bool();
|
|
131
|
+
else {
|
|
132
|
+
if (SkipDiag)
|
|
133
|
+
return (Base::operator bool() && this->index() < this->outer());
|
|
134
|
+
else
|
|
135
|
+
return (Base::operator bool() && this->index() <= this->outer());
|
|
163
136
|
}
|
|
137
|
+
}
|
|
164
138
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
139
|
+
inline Index row() const { return (ArgType::Flags & RowMajorBit ? Base::outer() : this->index()); }
|
|
140
|
+
inline Index col() const { return (ArgType::Flags & RowMajorBit ? this->index() : Base::outer()); }
|
|
141
|
+
inline StorageIndex index() const {
|
|
142
|
+
if (HasUnitDiag && m_returnOne)
|
|
143
|
+
return internal::convert_index<StorageIndex>(Base::outer());
|
|
144
|
+
else
|
|
145
|
+
return Base::index();
|
|
146
|
+
}
|
|
147
|
+
inline Scalar value() const {
|
|
148
|
+
if (HasUnitDiag && m_returnOne)
|
|
149
|
+
return Scalar(1);
|
|
150
|
+
else
|
|
151
|
+
return Base::value();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
protected:
|
|
155
|
+
bool m_returnOne;
|
|
156
|
+
bool m_containsDiag;
|
|
157
|
+
|
|
158
|
+
private:
|
|
159
|
+
Scalar& valueRef();
|
|
170
160
|
};
|
|
171
|
-
|
|
172
|
-
protected:
|
|
161
|
+
|
|
162
|
+
protected:
|
|
173
163
|
evaluator<ArgType> m_argImpl;
|
|
174
164
|
const ArgType& m_arg;
|
|
175
165
|
};
|
|
176
166
|
|
|
177
|
-
}
|
|
167
|
+
} // end namespace internal
|
|
178
168
|
|
|
179
|
-
template<typename Derived>
|
|
180
|
-
template<int Mode>
|
|
181
|
-
inline const TriangularView<const Derived, Mode>
|
|
182
|
-
SparseMatrixBase<Derived>::triangularView() const
|
|
183
|
-
{
|
|
169
|
+
template <typename Derived>
|
|
170
|
+
template <int Mode>
|
|
171
|
+
inline const TriangularView<const Derived, Mode> SparseMatrixBase<Derived>::triangularView() const {
|
|
184
172
|
return TriangularView<const Derived, Mode>(derived());
|
|
185
173
|
}
|
|
186
174
|
|
|
187
|
-
}
|
|
175
|
+
} // end namespace Eigen
|
|
188
176
|
|
|
189
|
-
#endif
|
|
177
|
+
#endif // EIGEN_SPARSE_TRIANGULARVIEW_H
|
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
#ifndef EIGEN_SPARSEUTIL_H
|
|
11
11
|
#define EIGEN_SPARSEUTIL_H
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
14
17
|
|
|
15
18
|
#ifdef NDEBUG
|
|
16
19
|
#define EIGEN_DBG_SPARSE(X)
|
|
@@ -18,127 +21,149 @@ namespace Eigen {
|
|
|
18
21
|
#define EIGEN_DBG_SPARSE(X) X
|
|
19
22
|
#endif
|
|
20
23
|
|
|
21
|
-
#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op)
|
|
22
|
-
template<typename OtherDerived>
|
|
23
|
-
EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) \
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
EIGEN_STRONG_INLINE Derived& operator Op(const Derived& other) \
|
|
28
|
-
{ \
|
|
29
|
-
return Base::operator Op(other); \
|
|
30
|
-
}
|
|
24
|
+
#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
|
|
25
|
+
template <typename OtherDerived> \
|
|
26
|
+
EIGEN_STRONG_INLINE Derived& operator Op(const Eigen::SparseMatrixBase<OtherDerived>& other) { \
|
|
27
|
+
return Base::operator Op(other.derived()); \
|
|
28
|
+
} \
|
|
29
|
+
EIGEN_STRONG_INLINE Derived& operator Op(const Derived & other) { return Base::operator Op(other); }
|
|
31
30
|
|
|
32
31
|
#define EIGEN_SPARSE_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
|
|
33
|
-
template<typename Other>
|
|
34
|
-
EIGEN_STRONG_INLINE Derived& operator Op(const Other& scalar) \
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
template<typename
|
|
53
|
-
|
|
54
|
-
template<typename
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
template<typename
|
|
60
|
-
|
|
61
|
-
template<typename Lhs, typename Rhs>
|
|
62
|
-
|
|
63
|
-
template<typename Lhs, typename Rhs>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
template<typename Lhs, typename Rhs,
|
|
71
|
-
|
|
72
|
-
|
|
32
|
+
template <typename Other> \
|
|
33
|
+
EIGEN_STRONG_INLINE Derived& operator Op(const Other & scalar) { \
|
|
34
|
+
return Base::operator Op(scalar); \
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#define EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATORS(Derived) EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(Derived, =)
|
|
38
|
+
|
|
39
|
+
#define EIGEN_SPARSE_PUBLIC_INTERFACE(Derived) EIGEN_GENERIC_PUBLIC_INTERFACE(Derived)
|
|
40
|
+
|
|
41
|
+
const int CoherentAccessPattern = 0x1;
|
|
42
|
+
const int InnerRandomAccessPattern = 0x2 | CoherentAccessPattern;
|
|
43
|
+
const int OuterRandomAccessPattern = 0x4 | CoherentAccessPattern;
|
|
44
|
+
const int RandomAccessPattern = 0x8 | OuterRandomAccessPattern | InnerRandomAccessPattern;
|
|
45
|
+
|
|
46
|
+
template <typename Scalar_, int Flags_ = 0, typename StorageIndex_ = int>
|
|
47
|
+
class SparseMatrix;
|
|
48
|
+
template <typename Scalar_, int Flags_ = 0, typename StorageIndex_ = int>
|
|
49
|
+
class SparseVector;
|
|
50
|
+
|
|
51
|
+
template <typename MatrixType, unsigned int UpLo>
|
|
52
|
+
class SparseSelfAdjointView;
|
|
53
|
+
template <typename Lhs, typename Rhs>
|
|
54
|
+
class SparseDiagonalProduct;
|
|
55
|
+
template <typename MatrixType>
|
|
56
|
+
class SparseView;
|
|
57
|
+
|
|
58
|
+
template <typename Lhs, typename Rhs>
|
|
59
|
+
class SparseSparseProduct;
|
|
60
|
+
template <typename Lhs, typename Rhs>
|
|
61
|
+
class SparseTimeDenseProduct;
|
|
62
|
+
template <typename Lhs, typename Rhs>
|
|
63
|
+
class DenseTimeSparseProduct;
|
|
64
|
+
template <typename Lhs, typename Rhs, bool Transpose>
|
|
65
|
+
class SparseDenseOuterProduct;
|
|
66
|
+
|
|
67
|
+
template <typename Lhs, typename Rhs>
|
|
68
|
+
struct SparseSparseProductReturnType;
|
|
69
|
+
template <typename Lhs, typename Rhs,
|
|
70
|
+
int InnerSize = internal::min_size_prefer_fixed(internal::traits<Lhs>::ColsAtCompileTime,
|
|
71
|
+
internal::traits<Rhs>::RowsAtCompileTime)>
|
|
72
|
+
struct DenseSparseProductReturnType;
|
|
73
|
+
|
|
74
|
+
template <typename Lhs, typename Rhs,
|
|
75
|
+
int InnerSize = internal::min_size_prefer_fixed(internal::traits<Lhs>::ColsAtCompileTime,
|
|
76
|
+
internal::traits<Rhs>::RowsAtCompileTime)>
|
|
77
|
+
struct SparseDenseProductReturnType;
|
|
78
|
+
template <typename MatrixType, int UpLo>
|
|
79
|
+
class SparseSymmetricPermutationProduct;
|
|
73
80
|
|
|
74
81
|
namespace internal {
|
|
75
82
|
|
|
76
|
-
template<typename T,int Rows,int Cols,int Flags>
|
|
83
|
+
template <typename T, int Rows, int Cols, int Flags>
|
|
84
|
+
struct sparse_eval;
|
|
85
|
+
|
|
86
|
+
template <typename T>
|
|
87
|
+
struct eval<T, Sparse> : sparse_eval<T, traits<T>::RowsAtCompileTime, traits<T>::ColsAtCompileTime, traits<T>::Flags> {
|
|
88
|
+
};
|
|
77
89
|
|
|
78
|
-
template<typename T
|
|
79
|
-
|
|
80
|
-
|
|
90
|
+
template <typename T, int Cols, int Flags>
|
|
91
|
+
struct sparse_eval<T, 1, Cols, Flags> {
|
|
92
|
+
typedef typename traits<T>::Scalar Scalar_;
|
|
93
|
+
typedef typename traits<T>::StorageIndex StorageIndex_;
|
|
81
94
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
typedef typename traits<T>::StorageIndex _StorageIndex;
|
|
85
|
-
public:
|
|
86
|
-
typedef SparseVector<_Scalar, RowMajor, _StorageIndex> type;
|
|
95
|
+
public:
|
|
96
|
+
typedef SparseVector<Scalar_, RowMajor, StorageIndex_> type;
|
|
87
97
|
};
|
|
88
98
|
|
|
89
|
-
template<typename T,int Rows,int Flags>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
template <typename T, int Rows, int Flags>
|
|
100
|
+
struct sparse_eval<T, Rows, 1, Flags> {
|
|
101
|
+
typedef typename traits<T>::Scalar Scalar_;
|
|
102
|
+
typedef typename traits<T>::StorageIndex StorageIndex_;
|
|
103
|
+
|
|
104
|
+
public:
|
|
105
|
+
typedef SparseVector<Scalar_, ColMajor, StorageIndex_> type;
|
|
94
106
|
};
|
|
95
107
|
|
|
96
108
|
// TODO this seems almost identical to plain_matrix_type<T, Sparse>
|
|
97
|
-
template<typename T,int Rows,int Cols,int Flags>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
109
|
+
template <typename T, int Rows, int Cols, int Flags>
|
|
110
|
+
struct sparse_eval {
|
|
111
|
+
typedef typename traits<T>::Scalar Scalar_;
|
|
112
|
+
typedef typename traits<T>::StorageIndex StorageIndex_;
|
|
113
|
+
enum { Options_ = ((Flags & RowMajorBit) == RowMajorBit) ? RowMajor : ColMajor };
|
|
114
|
+
|
|
115
|
+
public:
|
|
116
|
+
typedef SparseMatrix<Scalar_, Options_, StorageIndex_> type;
|
|
103
117
|
};
|
|
104
118
|
|
|
105
|
-
template<typename T,int Flags>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
119
|
+
template <typename T, int Flags>
|
|
120
|
+
struct sparse_eval<T, 1, 1, Flags> {
|
|
121
|
+
typedef typename traits<T>::Scalar Scalar_;
|
|
122
|
+
|
|
123
|
+
public:
|
|
124
|
+
typedef Matrix<Scalar_, 1, 1> type;
|
|
109
125
|
};
|
|
110
126
|
|
|
111
|
-
template<typename T>
|
|
112
|
-
{
|
|
113
|
-
typedef typename traits<T>::Scalar
|
|
114
|
-
typedef typename traits<T>::StorageIndex
|
|
115
|
-
enum {
|
|
116
|
-
|
|
117
|
-
|
|
127
|
+
template <typename T>
|
|
128
|
+
struct plain_matrix_type<T, Sparse> {
|
|
129
|
+
typedef typename traits<T>::Scalar Scalar_;
|
|
130
|
+
typedef typename traits<T>::StorageIndex StorageIndex_;
|
|
131
|
+
enum { Options_ = ((evaluator<T>::Flags & RowMajorBit) == RowMajorBit) ? RowMajor : ColMajor };
|
|
132
|
+
|
|
133
|
+
public:
|
|
134
|
+
typedef SparseMatrix<Scalar_, Options_, StorageIndex_> type;
|
|
118
135
|
};
|
|
119
136
|
|
|
120
|
-
template<typename T>
|
|
121
|
-
struct plain_object_eval<T,Sparse>
|
|
122
|
-
|
|
123
|
-
{};
|
|
137
|
+
template <typename T>
|
|
138
|
+
struct plain_object_eval<T, Sparse>
|
|
139
|
+
: sparse_eval<T, traits<T>::RowsAtCompileTime, traits<T>::ColsAtCompileTime, evaluator<T>::Flags> {};
|
|
124
140
|
|
|
125
|
-
template<typename Decomposition, typename RhsType>
|
|
126
|
-
struct solve_traits<Decomposition,RhsType,Sparse>
|
|
127
|
-
|
|
128
|
-
|
|
141
|
+
template <typename Decomposition, typename RhsType>
|
|
142
|
+
struct solve_traits<Decomposition, RhsType, Sparse> {
|
|
143
|
+
typedef typename sparse_eval<RhsType, RhsType::RowsAtCompileTime, RhsType::ColsAtCompileTime,
|
|
144
|
+
traits<RhsType>::Flags>::type PlainObject;
|
|
129
145
|
};
|
|
130
146
|
|
|
131
|
-
template<typename Derived>
|
|
132
|
-
struct generic_xpr_base<Derived, MatrixXpr, Sparse>
|
|
133
|
-
{
|
|
147
|
+
template <typename Derived>
|
|
148
|
+
struct generic_xpr_base<Derived, MatrixXpr, Sparse> {
|
|
134
149
|
typedef SparseMatrixBase<Derived> type;
|
|
135
150
|
};
|
|
136
151
|
|
|
137
|
-
struct SparseTriangularShape
|
|
138
|
-
|
|
152
|
+
struct SparseTriangularShape {
|
|
153
|
+
static std::string debugName() { return "SparseTriangularShape"; }
|
|
154
|
+
};
|
|
155
|
+
struct SparseSelfAdjointShape {
|
|
156
|
+
static std::string debugName() { return "SparseSelfAdjointShape"; }
|
|
157
|
+
};
|
|
139
158
|
|
|
140
|
-
template<>
|
|
141
|
-
|
|
159
|
+
template <>
|
|
160
|
+
struct glue_shapes<SparseShape, SelfAdjointShape> {
|
|
161
|
+
typedef SparseSelfAdjointShape type;
|
|
162
|
+
};
|
|
163
|
+
template <>
|
|
164
|
+
struct glue_shapes<SparseShape, TriangularShape> {
|
|
165
|
+
typedef SparseTriangularShape type;
|
|
166
|
+
};
|
|
142
167
|
|
|
143
168
|
// return type of SparseCompressedBase::lower_bound;
|
|
144
169
|
struct LowerBoundIndex {
|
|
@@ -148,25 +173,22 @@ struct LowerBoundIndex {
|
|
|
148
173
|
bool found;
|
|
149
174
|
};
|
|
150
175
|
|
|
151
|
-
}
|
|
176
|
+
} // end namespace internal
|
|
152
177
|
|
|
153
178
|
/** \ingroup SparseCore_Module
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
template<typename Scalar, typename StorageIndex=typename SparseMatrix<Scalar>::StorageIndex
|
|
162
|
-
class Triplet
|
|
163
|
-
|
|
164
|
-
public:
|
|
179
|
+
*
|
|
180
|
+
* \class Triplet
|
|
181
|
+
*
|
|
182
|
+
* \brief A small structure to hold a non zero as a triplet (i,j,value).
|
|
183
|
+
*
|
|
184
|
+
* \sa SparseMatrix::setFromTriplets()
|
|
185
|
+
*/
|
|
186
|
+
template <typename Scalar, typename StorageIndex = typename SparseMatrix<Scalar>::StorageIndex>
|
|
187
|
+
class Triplet {
|
|
188
|
+
public:
|
|
165
189
|
Triplet() : m_row(0), m_col(0), m_value(0) {}
|
|
166
190
|
|
|
167
|
-
Triplet(const StorageIndex& i, const StorageIndex& j, const Scalar& v = Scalar(0))
|
|
168
|
-
: m_row(i), m_col(j), m_value(v)
|
|
169
|
-
{}
|
|
191
|
+
Triplet(const StorageIndex& i, const StorageIndex& j, const Scalar& v = Scalar(0)) : m_row(i), m_col(j), m_value(v) {}
|
|
170
192
|
|
|
171
193
|
/** \returns the row index of the element */
|
|
172
194
|
const StorageIndex& row() const { return m_row; }
|
|
@@ -176,11 +198,12 @@ public:
|
|
|
176
198
|
|
|
177
199
|
/** \returns the value of the element */
|
|
178
200
|
const Scalar& value() const { return m_value; }
|
|
179
|
-
|
|
201
|
+
|
|
202
|
+
protected:
|
|
180
203
|
StorageIndex m_row, m_col;
|
|
181
204
|
Scalar m_value;
|
|
182
205
|
};
|
|
183
206
|
|
|
184
|
-
}
|
|
207
|
+
} // end namespace Eigen
|
|
185
208
|
|
|
186
|
-
#endif
|
|
209
|
+
#endif // EIGEN_SPARSEUTIL_H
|