@smake/eigen 1.0.2 → 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 -21
- package/eigen/Eigen/CholmodSupport +28 -28
- package/eigen/Eigen/Core +235 -326
- package/eigen/Eigen/Eigenvalues +16 -14
- package/eigen/Eigen/Geometry +21 -24
- package/eigen/Eigen/Householder +9 -8
- package/eigen/Eigen/IterativeLinearSolvers +8 -4
- package/eigen/Eigen/Jacobi +14 -14
- package/eigen/Eigen/KLUSupport +43 -0
- package/eigen/Eigen/LU +16 -20
- package/eigen/Eigen/MetisSupport +12 -12
- package/eigen/Eigen/OrderingMethods +54 -54
- package/eigen/Eigen/PaStiXSupport +23 -20
- package/eigen/Eigen/PardisoSupport +17 -14
- package/eigen/Eigen/QR +18 -21
- package/eigen/Eigen/QtAlignedMalloc +5 -13
- package/eigen/Eigen/SPQRSupport +21 -14
- package/eigen/Eigen/SVD +23 -18
- package/eigen/Eigen/Sparse +1 -4
- package/eigen/Eigen/SparseCholesky +18 -23
- package/eigen/Eigen/SparseCore +18 -17
- package/eigen/Eigen/SparseLU +12 -8
- 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 +377 -401
- package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
- package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
- package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
- package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
- package/eigen/Eigen/src/Core/Array.h +341 -294
- package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
- package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
- package/eigen/Eigen/src/Core/Assign.h +30 -40
- package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
- package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
- package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
- package/eigen/Eigen/src/Core/Block.h +375 -398
- package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
- package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
- package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
- package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
- package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
- package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
- package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
- package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
- package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
- package/eigen/Eigen/src/Core/DenseBase.h +632 -571
- package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
- package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
- package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
- package/eigen/Eigen/src/Core/Diagonal.h +169 -210
- package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
- package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
- package/eigen/Eigen/src/Core/Dot.h +172 -222
- package/eigen/Eigen/src/Core/EigenBase.h +75 -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 -109
- package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
- package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
- package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
- package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
- package/eigen/Eigen/src/Core/IO.h +147 -139
- package/eigen/Eigen/src/Core/IndexedView.h +321 -0
- 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 +56 -66
- package/eigen/Eigen/src/Core/Map.h +124 -142
- package/eigen/Eigen/src/Core/MapBase.h +256 -281
- package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
- package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
- package/eigen/Eigen/src/Core/Matrix.h +491 -416
- package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
- package/eigen/Eigen/src/Core/NestByValue.h +66 -85
- package/eigen/Eigen/src/Core/NoAlias.h +79 -85
- package/eigen/Eigen/src/Core/NumTraits.h +235 -148
- package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
- package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
- package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
- package/eigen/Eigen/src/Core/Product.h +260 -139
- package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
- package/eigen/Eigen/src/Core/Random.h +161 -136
- 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 +366 -336
- package/eigen/Eigen/src/Core/Ref.h +308 -209
- package/eigen/Eigen/src/Core/Replicate.h +94 -106
- package/eigen/Eigen/src/Core/Reshaped.h +398 -0
- package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
- package/eigen/Eigen/src/Core/Reverse.h +136 -145
- package/eigen/Eigen/src/Core/Select.h +70 -140
- package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
- 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 +97 -111
- package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
- package/eigen/Eigen/src/Core/SolverBase.h +138 -101
- package/eigen/Eigen/src/Core/StableNorm.h +156 -160
- package/eigen/Eigen/src/Core/StlIterators.h +619 -0
- package/eigen/Eigen/src/Core/Stride.h +91 -88
- package/eigen/Eigen/src/Core/Swap.h +70 -38
- package/eigen/Eigen/src/Core/Transpose.h +295 -273
- package/eigen/Eigen/src/Core/Transpositions.h +272 -317
- package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
- package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
- package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
- package/eigen/Eigen/src/Core/Visitor.h +480 -216
- package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
- package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
- package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
- package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
- package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
- package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
- package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
- package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
- package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
- 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 +277 -0
- package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
- package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
- package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
- 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 +3391 -723
- package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
- package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
- package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
- package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
- package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
- package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
- package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
- package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
- package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
- package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
- package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
- package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
- 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 +620 -0
- package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
- package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
- package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
- package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
- package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
- package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
- package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
- package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
- package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
- package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
- package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
- package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
- package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
- package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
- package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
- package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
- package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
- package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
- package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
- package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
- package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
- package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
- package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
- package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
- package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
- package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
- package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
- package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
- package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
- package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
- package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
- package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
- package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
- package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
- 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 -46
- 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 -275
- package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
- package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
- package/eigen/Eigen/src/Core/util/Assert.h +158 -0
- package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
- package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
- package/eigen/Eigen/src/Core/util/Constants.h +314 -263
- package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
- package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
- package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
- 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 +487 -0
- package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
- package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
- package/eigen/Eigen/src/Core/util/Macros.h +939 -646
- package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
- package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
- package/eigen/Eigen/src/Core/util/Meta.h +618 -426
- 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 +51 -0
- package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
- package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
- package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
- package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
- 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 +91 -107
- package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
- package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
- package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
- package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
- package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
- package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
- package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
- package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
- package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
- package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
- package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
- package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
- package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
- package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
- package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
- package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
- package/eigen/Eigen/src/Geometry/Transform.h +896 -953
- package/eigen/Eigen/src/Geometry/Translation.h +100 -98
- package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
- package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
- package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
- package/eigen/Eigen/src/Householder/Householder.h +104 -122
- package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
- package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
- package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
- package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
- package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
- package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
- package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
- package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
- package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
- package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
- package/eigen/Eigen/src/LU/Determinant.h +60 -63
- package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
- package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
- package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
- package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
- package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
- 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 +250 -282
- package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
- package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
- 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 -429
- package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
- package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
- package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
- package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
- package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
- 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 +263 -261
- package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
- 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 +585 -543
- package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
- package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
- package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
- package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
- package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
- package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
- package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
- package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
- package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
- package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
- package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
- package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
- package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
- package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
- package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
- package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
- 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 +1614 -1142
- package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
- package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
- package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
- 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 +371 -414
- 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 +146 -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 +814 -618
- 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 +273 -255
- 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 +90 -101
- 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 +125 -133
- 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 +451 -490
- package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
- 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 -732
- 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 +480 -380
- 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 +9976 -16182
- 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.inc +1370 -0
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
- 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/lib/LibEigen.d.ts +4 -0
- package/lib/LibEigen.js +14 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.js +7 -3
- package/package.json +2 -10
- package/eigen/Eigen/CMakeLists.txt +0 -19
- package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
- package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
- package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
- package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
- package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
- package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
- package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
- package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
- package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
- 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 -332
- package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
- package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
- package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
- package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
- package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
- package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
- package/lib/eigen.d.ts +0 -2
- package/lib/eigen.js +0 -15
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
//
|
|
4
4
|
// Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
5
|
// Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
|
|
6
|
+
// Copyright (C) 2020, Arm Limited and Contributors
|
|
6
7
|
//
|
|
7
8
|
// This Source Code Form is subject to the terms of the Mozilla
|
|
8
9
|
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
@@ -11,165 +12,173 @@
|
|
|
11
12
|
#ifndef EIGEN_CONSTANTS_H
|
|
12
13
|
#define EIGEN_CONSTANTS_H
|
|
13
14
|
|
|
15
|
+
// IWYU pragma: private
|
|
16
|
+
#include "../InternalHeaderCheck.h"
|
|
17
|
+
|
|
14
18
|
namespace Eigen {
|
|
15
19
|
|
|
16
20
|
/** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
* stored in some runtime variable.
|
|
22
|
+
*
|
|
23
|
+
* Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
|
|
24
|
+
*/
|
|
21
25
|
const int Dynamic = -1;
|
|
22
26
|
|
|
23
|
-
/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its
|
|
24
|
-
|
|
25
|
-
|
|
27
|
+
/** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its
|
|
28
|
+
* value has to be specified at runtime.
|
|
29
|
+
*/
|
|
26
30
|
const int DynamicIndex = 0xffffff;
|
|
27
31
|
|
|
32
|
+
/** This value means that the requested value is not defined.
|
|
33
|
+
*/
|
|
34
|
+
const int Undefined = 0xfffffe;
|
|
35
|
+
|
|
28
36
|
/** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
|
|
29
|
-
|
|
30
|
-
|
|
37
|
+
* The value Infinity there means the L-infinity norm.
|
|
38
|
+
*/
|
|
31
39
|
const int Infinity = -1;
|
|
32
40
|
|
|
33
41
|
/** This value means that the cost to evaluate an expression coefficient is either very expensive or
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
* cannot be known at compile time.
|
|
43
|
+
*
|
|
44
|
+
* This value has to be positive to (1) simplify cost computation, and (2) allow to distinguish between a very expensive
|
|
45
|
+
* and very very expensive expressions. It thus must also be large enough to make sure unrolling won't happen and that
|
|
46
|
+
* sub expressions will be evaluated, but not too large to avoid overflow.
|
|
47
|
+
*/
|
|
39
48
|
const int HugeCost = 10000;
|
|
40
49
|
|
|
41
50
|
/** \defgroup flags Flags
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
* \ingroup Core_Module
|
|
52
|
+
*
|
|
53
|
+
* These are the possible bits which can be OR'ed to constitute the flags of a matrix or
|
|
54
|
+
* expression.
|
|
55
|
+
*
|
|
56
|
+
* It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
|
|
57
|
+
* an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
|
|
58
|
+
* runtime overhead.
|
|
59
|
+
*
|
|
60
|
+
* \sa MatrixBase::Flags
|
|
61
|
+
*/
|
|
53
62
|
|
|
54
63
|
/** \ingroup flags
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
64
|
+
*
|
|
65
|
+
* for a matrix, this means that the storage order is row-major.
|
|
66
|
+
* If this bit is not set, the storage order is column-major.
|
|
67
|
+
* For an expression, this determines the storage order of
|
|
68
|
+
* the matrix created by evaluation of that expression.
|
|
69
|
+
* \sa \blank \ref TopicStorageOrders */
|
|
61
70
|
const unsigned int RowMajorBit = 0x1;
|
|
62
71
|
|
|
63
72
|
/** \ingroup flags
|
|
64
|
-
|
|
73
|
+
* means the expression should be evaluated by the calling expression */
|
|
65
74
|
const unsigned int EvalBeforeNestingBit = 0x2;
|
|
66
75
|
|
|
67
76
|
/** \ingroup flags
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
EIGEN_DEPRECATED
|
|
71
|
-
const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated
|
|
77
|
+
* \deprecated
|
|
78
|
+
* means the expression should be evaluated before any assignment */
|
|
79
|
+
EIGEN_DEPRECATED const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated
|
|
72
80
|
|
|
73
81
|
/** \ingroup flags
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
82
|
+
*
|
|
83
|
+
* Short version: means the expression might be vectorized
|
|
84
|
+
*
|
|
85
|
+
* Long version: means that the coefficients can be handled by packets
|
|
86
|
+
* and start at a memory location whose alignment meets the requirements
|
|
87
|
+
* of the present CPU architecture for optimized packet access. In the fixed-size
|
|
88
|
+
* case, there is the additional condition that it be possible to access all the
|
|
89
|
+
* coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
|
|
90
|
+
* and that any nontrivial strides don't break the alignment). In the dynamic-size case,
|
|
91
|
+
* there is no such condition on the total size and strides, so it might not be possible to access
|
|
92
|
+
* all coeffs by packets.
|
|
93
|
+
*
|
|
94
|
+
* \note This bit can be set regardless of whether vectorization is actually enabled.
|
|
95
|
+
* To check for actual vectorizability, see \a ActualPacketAccessBit.
|
|
96
|
+
*/
|
|
89
97
|
const unsigned int PacketAccessBit = 0x8;
|
|
90
98
|
|
|
91
99
|
#ifdef EIGEN_VECTORIZE
|
|
92
100
|
/** \ingroup flags
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
*
|
|
102
|
+
* If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
|
|
103
|
+
* is set to the value \a PacketAccessBit.
|
|
104
|
+
*
|
|
105
|
+
* If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
|
|
106
|
+
* is set to the value 0.
|
|
107
|
+
*/
|
|
100
108
|
const unsigned int ActualPacketAccessBit = PacketAccessBit;
|
|
101
109
|
#else
|
|
102
110
|
const unsigned int ActualPacketAccessBit = 0x0;
|
|
103
111
|
#endif
|
|
104
112
|
|
|
105
113
|
/** \ingroup flags
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
114
|
+
*
|
|
115
|
+
* Short version: means the expression can be seen as 1D vector.
|
|
116
|
+
*
|
|
117
|
+
* Long version: means that one can access the coefficients
|
|
118
|
+
* of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
|
|
119
|
+
* index-based access methods are guaranteed
|
|
120
|
+
* to not have to do any runtime computation of a (row, col)-pair from the index, so that it
|
|
121
|
+
* is guaranteed that whenever it is available, index-based access is at least as fast as
|
|
122
|
+
* (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
|
|
123
|
+
*
|
|
124
|
+
* If both PacketAccessBit and LinearAccessBit are set, then the
|
|
125
|
+
* packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
|
|
126
|
+
* lvalue expression.
|
|
127
|
+
*
|
|
128
|
+
* Typically, all vector expressions have the LinearAccessBit, but there is one exception:
|
|
129
|
+
* Product expressions don't have it, because it would be troublesome for vectorization, even when the
|
|
130
|
+
* Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
|
|
131
|
+
* not index-based packet access, so they don't have the LinearAccessBit.
|
|
132
|
+
*/
|
|
125
133
|
const unsigned int LinearAccessBit = 0x10;
|
|
126
134
|
|
|
127
135
|
/** \ingroup flags
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
136
|
+
*
|
|
137
|
+
* Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly
|
|
138
|
+
* addressable. This rules out read-only expressions.
|
|
139
|
+
*
|
|
140
|
+
* Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but
|
|
141
|
+
* not the other: \li writable expressions that don't have a very simple memory layout as a strided array, have
|
|
142
|
+
* LvalueBit but not DirectAccessBit \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit
|
|
143
|
+
* but not LvalueBit
|
|
144
|
+
*
|
|
145
|
+
* Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new
|
|
146
|
+
* value.
|
|
147
|
+
*/
|
|
139
148
|
const unsigned int LvalueBit = 0x20;
|
|
140
149
|
|
|
141
150
|
/** \ingroup flags
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
151
|
+
*
|
|
152
|
+
* Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
|
|
153
|
+
* of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
|
|
154
|
+
* outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
|
|
155
|
+
* though referenceable, do not have such a regular memory layout.
|
|
156
|
+
*
|
|
157
|
+
* See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
|
|
158
|
+
*/
|
|
150
159
|
const unsigned int DirectAccessBit = 0x40;
|
|
151
160
|
|
|
152
161
|
/** \deprecated \ingroup flags
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
+
*
|
|
163
|
+
* means the first coefficient packet is guaranteed to be aligned.
|
|
164
|
+
* An expression cannot have the AlignedBit without the PacketAccessBit flag.
|
|
165
|
+
* In other words, this means we are allow to perform an aligned packet access to the first element regardless
|
|
166
|
+
* of the expression kind:
|
|
167
|
+
* \code
|
|
168
|
+
* expression.packet<Aligned>(0);
|
|
169
|
+
* \endcode
|
|
170
|
+
*/
|
|
162
171
|
EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
|
|
163
172
|
|
|
164
173
|
const unsigned int NestByRefBit = 0x100;
|
|
165
174
|
|
|
166
175
|
/** \ingroup flags
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
176
|
+
*
|
|
177
|
+
* for an expression, this means that the storage order
|
|
178
|
+
* can be either row-major or column-major.
|
|
179
|
+
* The precise choice will be decided at evaluation time or when
|
|
180
|
+
* combined with other expressions.
|
|
181
|
+
* \sa \blank \ref RowMajorBit, \ref TopicStorageOrders */
|
|
173
182
|
const unsigned int NoPreferredStorageOrderBit = 0x200;
|
|
174
183
|
|
|
175
184
|
/** \ingroup flags
|
|
@@ -185,65 +194,63 @@ const unsigned int NoPreferredStorageOrderBit = 0x200;
|
|
|
185
194
|
*/
|
|
186
195
|
const unsigned int CompressedAccessBit = 0x400;
|
|
187
196
|
|
|
188
|
-
|
|
189
197
|
// list of flags that are inherited by default
|
|
190
|
-
const unsigned int HereditaryBits = RowMajorBit
|
|
191
|
-
| EvalBeforeNestingBit;
|
|
198
|
+
const unsigned int HereditaryBits = RowMajorBit | EvalBeforeNestingBit;
|
|
192
199
|
|
|
193
200
|
/** \defgroup enums Enumerations
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
201
|
+
* \ingroup Core_Module
|
|
202
|
+
*
|
|
203
|
+
* Various enumerations used in %Eigen. Many of these are used as template parameters.
|
|
204
|
+
*/
|
|
198
205
|
|
|
199
206
|
/** \ingroup enums
|
|
200
|
-
|
|
201
|
-
|
|
207
|
+
* Enum containing possible values for the \c Mode or \c UpLo parameter of
|
|
208
|
+
* MatrixBase::selfadjointView() and MatrixBase::triangularView(), and selfadjoint solvers. */
|
|
202
209
|
enum UpLoType {
|
|
203
210
|
/** View matrix as a lower triangular matrix. */
|
|
204
|
-
Lower=0x1,
|
|
211
|
+
Lower = 0x1,
|
|
205
212
|
/** View matrix as an upper triangular matrix. */
|
|
206
|
-
Upper=0x2,
|
|
213
|
+
Upper = 0x2,
|
|
207
214
|
/** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
|
|
208
|
-
UnitDiag=0x4,
|
|
215
|
+
UnitDiag = 0x4,
|
|
209
216
|
/** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
|
|
210
|
-
ZeroDiag=0x8,
|
|
217
|
+
ZeroDiag = 0x8,
|
|
211
218
|
/** View matrix as a lower triangular matrix with ones on the diagonal. */
|
|
212
|
-
UnitLower=UnitDiag|Lower,
|
|
219
|
+
UnitLower = UnitDiag | Lower,
|
|
213
220
|
/** View matrix as an upper triangular matrix with ones on the diagonal. */
|
|
214
|
-
UnitUpper=UnitDiag|Upper,
|
|
221
|
+
UnitUpper = UnitDiag | Upper,
|
|
215
222
|
/** View matrix as a lower triangular matrix with zeros on the diagonal. */
|
|
216
|
-
StrictlyLower=ZeroDiag|Lower,
|
|
223
|
+
StrictlyLower = ZeroDiag | Lower,
|
|
217
224
|
/** View matrix as an upper triangular matrix with zeros on the diagonal. */
|
|
218
|
-
StrictlyUpper=ZeroDiag|Upper,
|
|
225
|
+
StrictlyUpper = ZeroDiag | Upper,
|
|
219
226
|
/** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
|
|
220
|
-
SelfAdjoint=0x10,
|
|
227
|
+
SelfAdjoint = 0x10,
|
|
221
228
|
/** Used to support symmetric, non-selfadjoint, complex matrices. */
|
|
222
|
-
Symmetric=0x20
|
|
229
|
+
Symmetric = 0x20
|
|
223
230
|
};
|
|
224
231
|
|
|
225
232
|
/** \ingroup enums
|
|
226
|
-
|
|
233
|
+
* Enum for indicating whether a buffer is aligned or not. */
|
|
227
234
|
enum AlignmentType {
|
|
228
|
-
Unaligned=0,
|
|
229
|
-
Aligned8=8,
|
|
230
|
-
Aligned16=16,
|
|
231
|
-
Aligned32=32,
|
|
232
|
-
Aligned64=64,
|
|
233
|
-
Aligned128=128,
|
|
234
|
-
AlignedMask=255,
|
|
235
|
-
Aligned=16,
|
|
236
|
-
#if EIGEN_MAX_ALIGN_BYTES==128
|
|
235
|
+
Unaligned = 0, /**< Data pointer has no specific alignment. */
|
|
236
|
+
Aligned8 = 8, /**< Data pointer is aligned on a 8 bytes boundary. */
|
|
237
|
+
Aligned16 = 16, /**< Data pointer is aligned on a 16 bytes boundary. */
|
|
238
|
+
Aligned32 = 32, /**< Data pointer is aligned on a 32 bytes boundary. */
|
|
239
|
+
Aligned64 = 64, /**< Data pointer is aligned on a 64 bytes boundary. */
|
|
240
|
+
Aligned128 = 128, /**< Data pointer is aligned on a 128 bytes boundary. */
|
|
241
|
+
AlignedMask = 255,
|
|
242
|
+
Aligned = 16, /**< \deprecated Synonym for Aligned16. */
|
|
243
|
+
#if EIGEN_MAX_ALIGN_BYTES == 128
|
|
237
244
|
AlignedMax = Aligned128
|
|
238
|
-
#elif EIGEN_MAX_ALIGN_BYTES==64
|
|
245
|
+
#elif EIGEN_MAX_ALIGN_BYTES == 64
|
|
239
246
|
AlignedMax = Aligned64
|
|
240
|
-
#elif EIGEN_MAX_ALIGN_BYTES==32
|
|
247
|
+
#elif EIGEN_MAX_ALIGN_BYTES == 32
|
|
241
248
|
AlignedMax = Aligned32
|
|
242
|
-
#elif EIGEN_MAX_ALIGN_BYTES==16
|
|
249
|
+
#elif EIGEN_MAX_ALIGN_BYTES == 16
|
|
243
250
|
AlignedMax = Aligned16
|
|
244
|
-
#elif EIGEN_MAX_ALIGN_BYTES==8
|
|
251
|
+
#elif EIGEN_MAX_ALIGN_BYTES == 8
|
|
245
252
|
AlignedMax = Aligned8
|
|
246
|
-
#elif EIGEN_MAX_ALIGN_BYTES==0
|
|
253
|
+
#elif EIGEN_MAX_ALIGN_BYTES == 0
|
|
247
254
|
AlignedMax = Unaligned
|
|
248
255
|
#else
|
|
249
256
|
#error Invalid value for EIGEN_MAX_ALIGN_BYTES
|
|
@@ -251,41 +258,35 @@ enum AlignmentType {
|
|
|
251
258
|
};
|
|
252
259
|
|
|
253
260
|
/** \ingroup enums
|
|
254
|
-
* Enum
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
/** For Reverse,
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
/** For Reverse, all rows are reversed;
|
|
267
|
-
* for PartialReduxExpr and VectorwiseOp, act on rows. */
|
|
268
|
-
Horizontal,
|
|
269
|
-
/** For Reverse, both rows and columns are reversed;
|
|
270
|
-
* not used for PartialReduxExpr and VectorwiseOp. */
|
|
271
|
-
BothDirections
|
|
261
|
+
* Enum containing possible values for the \p Direction parameter of
|
|
262
|
+
* Reverse, PartialReduxExpr and VectorwiseOp. */
|
|
263
|
+
enum DirectionType {
|
|
264
|
+
/** For Reverse, all columns are reversed;
|
|
265
|
+
* for PartialReduxExpr and VectorwiseOp, act on columns. */
|
|
266
|
+
Vertical,
|
|
267
|
+
/** For Reverse, all rows are reversed;
|
|
268
|
+
* for PartialReduxExpr and VectorwiseOp, act on rows. */
|
|
269
|
+
Horizontal,
|
|
270
|
+
/** For Reverse, both rows and columns are reversed;
|
|
271
|
+
* not used for PartialReduxExpr and VectorwiseOp. */
|
|
272
|
+
BothDirections
|
|
272
273
|
};
|
|
273
274
|
|
|
274
275
|
/** \internal \ingroup enums
|
|
275
|
-
|
|
276
|
+
* Enum to specify how to traverse the entries of a matrix. */
|
|
276
277
|
enum TraversalType {
|
|
277
278
|
/** \internal Default traversal, no vectorization, no index-based access */
|
|
278
279
|
DefaultTraversal,
|
|
279
280
|
/** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
|
|
280
281
|
LinearTraversal,
|
|
281
282
|
/** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
|
|
282
|
-
|
|
283
|
+
* and good size */
|
|
283
284
|
InnerVectorizedTraversal,
|
|
284
285
|
/** \internal Vectorization path using a single loop plus scalar loops for the
|
|
285
|
-
|
|
286
|
+
* unaligned boundaries */
|
|
286
287
|
LinearVectorizedTraversal,
|
|
287
288
|
/** \internal Generic vectorization path using one vectorized loop per row/column with some
|
|
288
|
-
|
|
289
|
+
* scalar loops to handle the unaligned boundaries */
|
|
289
290
|
SliceVectorizedTraversal,
|
|
290
291
|
/** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
|
|
291
292
|
InvalidTraversal,
|
|
@@ -294,27 +295,24 @@ enum TraversalType {
|
|
|
294
295
|
};
|
|
295
296
|
|
|
296
297
|
/** \internal \ingroup enums
|
|
297
|
-
|
|
298
|
+
* Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
|
|
298
299
|
enum UnrollingType {
|
|
299
300
|
/** \internal Do not unroll loops. */
|
|
300
301
|
NoUnrolling,
|
|
301
302
|
/** \internal Unroll only the inner loop, but not the outer loop. */
|
|
302
303
|
InnerUnrolling,
|
|
303
|
-
/** \internal Unroll both the inner and the outer loop. If there is only one loop,
|
|
304
|
-
|
|
304
|
+
/** \internal Unroll both the inner and the outer loop. If there is only one loop,
|
|
305
|
+
* because linear traversal is used, then unroll that loop. */
|
|
305
306
|
CompleteUnrolling
|
|
306
307
|
};
|
|
307
308
|
|
|
308
309
|
/** \internal \ingroup enums
|
|
309
|
-
|
|
310
|
-
enum SpecializedType {
|
|
311
|
-
Specialized,
|
|
312
|
-
BuiltIn
|
|
313
|
-
};
|
|
310
|
+
* Enum to specify whether to use the default (built-in) implementation or the specialization. */
|
|
311
|
+
enum SpecializedType { Specialized, BuiltIn };
|
|
314
312
|
|
|
315
313
|
/** \ingroup enums
|
|
316
|
-
|
|
317
|
-
|
|
314
|
+
* Enum containing possible values for the \p Options_ template parameter of
|
|
315
|
+
* Matrix, Array and BandMatrix. */
|
|
318
316
|
enum StorageOptions {
|
|
319
317
|
/** Storage order is column major (see \ref TopicStorageOrders). */
|
|
320
318
|
ColMajor = 0,
|
|
@@ -327,12 +325,23 @@ enum StorageOptions {
|
|
|
327
325
|
};
|
|
328
326
|
|
|
329
327
|
/** \ingroup enums
|
|
330
|
-
|
|
328
|
+
* Enum for specifying whether to apply or solve on the left or right. */
|
|
331
329
|
enum SideType {
|
|
332
330
|
/** Apply transformation on the left. */
|
|
333
|
-
OnTheLeft = 1,
|
|
331
|
+
OnTheLeft = 1,
|
|
334
332
|
/** Apply transformation on the right. */
|
|
335
|
-
OnTheRight = 2
|
|
333
|
+
OnTheRight = 2
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
/** \ingroup enums
|
|
337
|
+
* Enum for specifying NaN-propagation behavior, e.g. for coeff-wise min/max. */
|
|
338
|
+
enum NaNPropagationOptions {
|
|
339
|
+
/** Implementation defined behavior if NaNs are present. */
|
|
340
|
+
PropagateFast = 0,
|
|
341
|
+
/** Always propagate NaNs. */
|
|
342
|
+
PropagateNaN,
|
|
343
|
+
/** Always propagate not-NaNs. */
|
|
344
|
+
PropagateNumbers
|
|
336
345
|
};
|
|
337
346
|
|
|
338
347
|
/* the following used to be written as:
|
|
@@ -342,83 +351,82 @@ enum SideType {
|
|
|
342
351
|
* EIGEN_UNUSED NoChange_t NoChange;
|
|
343
352
|
* }
|
|
344
353
|
*
|
|
345
|
-
* on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
|
|
354
|
+
* on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
|
|
346
355
|
* However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
|
|
347
356
|
* and we do not know how to get rid of them (bug 450).
|
|
348
357
|
*/
|
|
349
358
|
|
|
350
|
-
enum NoChange_t
|
|
359
|
+
enum NoChange_t { NoChange };
|
|
351
360
|
enum Sequential_t { Sequential };
|
|
352
|
-
enum Default_t
|
|
361
|
+
enum Default_t { Default };
|
|
353
362
|
|
|
354
363
|
/** \internal \ingroup enums
|
|
355
|
-
|
|
356
|
-
enum AmbiVectorMode {
|
|
357
|
-
IsDense = 0,
|
|
358
|
-
IsSparse
|
|
359
|
-
};
|
|
364
|
+
* Used in AmbiVector. */
|
|
365
|
+
enum AmbiVectorMode { IsDense = 0, IsSparse };
|
|
360
366
|
|
|
361
367
|
/** \ingroup enums
|
|
362
|
-
|
|
363
|
-
|
|
368
|
+
* Used as template parameter in DenseCoeffBase and MapBase to indicate
|
|
369
|
+
* which accessors should be provided. */
|
|
364
370
|
enum AccessorLevels {
|
|
365
371
|
/** Read-only access via a member function. */
|
|
366
|
-
ReadOnlyAccessors,
|
|
372
|
+
ReadOnlyAccessors,
|
|
367
373
|
/** Read/write access via member functions. */
|
|
368
|
-
WriteAccessors,
|
|
374
|
+
WriteAccessors,
|
|
369
375
|
/** Direct read-only access to the coefficients. */
|
|
370
|
-
DirectAccessors,
|
|
376
|
+
DirectAccessors,
|
|
371
377
|
/** Direct read/write access to the coefficients. */
|
|
372
378
|
DirectWriteAccessors
|
|
373
379
|
};
|
|
374
380
|
|
|
375
381
|
/** \ingroup enums
|
|
376
|
-
|
|
382
|
+
* Enum with options to give to various decompositions. */
|
|
377
383
|
enum DecompositionOptions {
|
|
378
384
|
/** \internal Not used (meant for LDLT?). */
|
|
379
|
-
Pivoting
|
|
385
|
+
Pivoting = 0x01,
|
|
380
386
|
/** \internal Not used (meant for LDLT?). */
|
|
381
|
-
NoPivoting
|
|
387
|
+
NoPivoting = 0x02,
|
|
382
388
|
/** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
|
|
383
|
-
ComputeFullU
|
|
389
|
+
ComputeFullU = 0x04,
|
|
384
390
|
/** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
|
|
385
|
-
ComputeThinU
|
|
391
|
+
ComputeThinU = 0x08,
|
|
386
392
|
/** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
|
|
387
|
-
ComputeFullV
|
|
393
|
+
ComputeFullV = 0x10,
|
|
388
394
|
/** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
|
|
389
|
-
ComputeThinV
|
|
395
|
+
ComputeThinV = 0x20,
|
|
390
396
|
/** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
|
|
391
|
-
|
|
392
|
-
EigenvaluesOnly
|
|
397
|
+
* that only the eigenvalues are to be computed and not the eigenvectors. */
|
|
398
|
+
EigenvaluesOnly = 0x40,
|
|
393
399
|
/** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
|
|
394
|
-
|
|
400
|
+
* that both the eigenvalues and the eigenvectors are to be computed. */
|
|
395
401
|
ComputeEigenvectors = 0x80,
|
|
396
402
|
/** \internal */
|
|
397
403
|
EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
|
|
398
404
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
|
399
|
-
|
|
400
|
-
Ax_lBx
|
|
405
|
+
* solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
|
|
406
|
+
Ax_lBx = 0x100,
|
|
401
407
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
|
402
|
-
|
|
403
|
-
ABx_lx
|
|
408
|
+
* solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
|
|
409
|
+
ABx_lx = 0x200,
|
|
404
410
|
/** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
|
|
405
|
-
|
|
406
|
-
BAx_lx
|
|
411
|
+
* solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
|
|
412
|
+
BAx_lx = 0x400,
|
|
407
413
|
/** \internal */
|
|
408
414
|
GenEigMask = Ax_lBx | ABx_lx | BAx_lx
|
|
409
415
|
};
|
|
410
416
|
|
|
411
417
|
/** \ingroup enums
|
|
412
|
-
|
|
418
|
+
* Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
|
|
413
419
|
enum QRPreconditioners {
|
|
420
|
+
/** Use a QR decomposition with column pivoting as the first step. */
|
|
421
|
+
ColPivHouseholderQRPreconditioner = 0x0,
|
|
414
422
|
/** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
|
|
415
|
-
NoQRPreconditioner,
|
|
423
|
+
NoQRPreconditioner = 0x40,
|
|
416
424
|
/** Use a QR decomposition without pivoting as the first step. */
|
|
417
|
-
HouseholderQRPreconditioner,
|
|
418
|
-
/** Use a QR decomposition with column pivoting as the first step. */
|
|
419
|
-
ColPivHouseholderQRPreconditioner,
|
|
425
|
+
HouseholderQRPreconditioner = 0x80,
|
|
420
426
|
/** Use a QR decomposition with full pivoting as the first step. */
|
|
421
|
-
FullPivHouseholderQRPreconditioner
|
|
427
|
+
FullPivHouseholderQRPreconditioner = 0xC0,
|
|
428
|
+
/** Used to disable the QR Preconditioner in BDCSVD. */
|
|
429
|
+
DisableQRDecomposition = NoQRPreconditioner
|
|
422
430
|
};
|
|
423
431
|
|
|
424
432
|
#ifdef Success
|
|
@@ -426,66 +434,86 @@ enum QRPreconditioners {
|
|
|
426
434
|
#endif
|
|
427
435
|
|
|
428
436
|
/** \ingroup enums
|
|
429
|
-
|
|
437
|
+
* Enum for reporting the status of a computation. */
|
|
430
438
|
enum ComputationInfo {
|
|
431
439
|
/** Computation was successful. */
|
|
432
|
-
Success = 0,
|
|
440
|
+
Success = 0,
|
|
433
441
|
/** The provided data did not satisfy the prerequisites. */
|
|
434
|
-
NumericalIssue = 1,
|
|
442
|
+
NumericalIssue = 1,
|
|
435
443
|
/** Iterative procedure did not converge. */
|
|
436
444
|
NoConvergence = 2,
|
|
437
445
|
/** The inputs are invalid, or the algorithm has been improperly called.
|
|
438
|
-
|
|
446
|
+
* When assertions are enabled, such errors trigger an assert. */
|
|
439
447
|
InvalidInput = 3
|
|
440
448
|
};
|
|
441
449
|
|
|
442
450
|
/** \ingroup enums
|
|
443
|
-
|
|
444
|
-
|
|
451
|
+
* Enum used to specify how a particular transformation is stored in a matrix.
|
|
452
|
+
* \sa Transform, Hyperplane::transform(). */
|
|
445
453
|
enum TransformTraits {
|
|
446
454
|
/** Transformation is an isometry. */
|
|
447
|
-
Isometry
|
|
448
|
-
/** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
|
|
449
|
-
|
|
450
|
-
Affine
|
|
455
|
+
Isometry = 0x1,
|
|
456
|
+
/** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
|
|
457
|
+
* assumed to be [0 ... 0 1]. */
|
|
458
|
+
Affine = 0x2,
|
|
451
459
|
/** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
|
|
452
460
|
AffineCompact = 0x10 | Affine,
|
|
453
461
|
/** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
|
|
454
|
-
Projective
|
|
462
|
+
Projective = 0x20
|
|
455
463
|
};
|
|
456
464
|
|
|
457
465
|
/** \internal \ingroup enums
|
|
458
|
-
|
|
459
|
-
namespace Architecture
|
|
460
|
-
{
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
466
|
+
* Enum used to choose between implementation depending on the computer architecture. */
|
|
467
|
+
namespace Architecture {
|
|
468
|
+
enum Type {
|
|
469
|
+
Generic = 0x0,
|
|
470
|
+
SSE = 0x1,
|
|
471
|
+
AltiVec = 0x2,
|
|
472
|
+
VSX = 0x3,
|
|
473
|
+
NEON = 0x4,
|
|
474
|
+
MSA = 0x5,
|
|
475
|
+
SVE = 0x6,
|
|
476
|
+
HVX = 0x7,
|
|
477
|
+
LSX = 0x8,
|
|
467
478
|
#if defined EIGEN_VECTORIZE_SSE
|
|
468
|
-
|
|
479
|
+
Target = SSE
|
|
469
480
|
#elif defined EIGEN_VECTORIZE_ALTIVEC
|
|
470
|
-
|
|
481
|
+
Target = AltiVec
|
|
471
482
|
#elif defined EIGEN_VECTORIZE_VSX
|
|
472
|
-
|
|
483
|
+
Target = VSX
|
|
473
484
|
#elif defined EIGEN_VECTORIZE_NEON
|
|
474
|
-
|
|
485
|
+
Target = NEON
|
|
486
|
+
#elif defined EIGEN_VECTORIZE_SVE
|
|
487
|
+
Target = SVE
|
|
488
|
+
#elif defined EIGEN_VECTORIZE_MSA
|
|
489
|
+
Target = MSA
|
|
490
|
+
#elif defined EIGEN_VECTORIZE_HVX
|
|
491
|
+
Target = HVX
|
|
492
|
+
#elif defined EIGEN_VECTORIZE_LSX
|
|
493
|
+
Target = LSX
|
|
475
494
|
#else
|
|
476
|
-
|
|
495
|
+
Target = Generic
|
|
477
496
|
#endif
|
|
478
|
-
|
|
479
|
-
}
|
|
497
|
+
};
|
|
498
|
+
} // namespace Architecture
|
|
480
499
|
|
|
481
500
|
/** \internal \ingroup enums
|
|
482
|
-
|
|
483
|
-
enum ProductImplType
|
|
484
|
-
|
|
501
|
+
* Enum used as template parameter in Product and product evaluators. */
|
|
502
|
+
enum ProductImplType {
|
|
503
|
+
DefaultProduct = 0,
|
|
504
|
+
LazyProduct,
|
|
505
|
+
AliasFreeProduct,
|
|
506
|
+
CoeffBasedProductMode,
|
|
507
|
+
LazyCoeffBasedProductMode,
|
|
508
|
+
OuterProduct,
|
|
509
|
+
InnerProduct,
|
|
510
|
+
GemvProduct,
|
|
511
|
+
GemmProduct
|
|
512
|
+
};
|
|
485
513
|
|
|
486
514
|
/** \internal \ingroup enums
|
|
487
|
-
|
|
488
|
-
enum Action {GetAction, SetAction};
|
|
515
|
+
* Enum used in experimental parallel implementation. */
|
|
516
|
+
enum Action { GetAction, SetAction };
|
|
489
517
|
|
|
490
518
|
/** The type used to identify a dense storage. */
|
|
491
519
|
struct Dense {};
|
|
@@ -509,29 +537,52 @@ struct MatrixXpr {};
|
|
|
509
537
|
struct ArrayXpr {};
|
|
510
538
|
|
|
511
539
|
// An evaluator must define its shape. By default, it can be one of the following:
|
|
512
|
-
struct DenseShape
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
struct
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
struct
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
struct
|
|
540
|
+
struct DenseShape {
|
|
541
|
+
static std::string debugName() { return "DenseShape"; }
|
|
542
|
+
};
|
|
543
|
+
struct SolverShape {
|
|
544
|
+
static std::string debugName() { return "SolverShape"; }
|
|
545
|
+
};
|
|
546
|
+
struct HomogeneousShape {
|
|
547
|
+
static std::string debugName() { return "HomogeneousShape"; }
|
|
548
|
+
};
|
|
549
|
+
struct DiagonalShape {
|
|
550
|
+
static std::string debugName() { return "DiagonalShape"; }
|
|
551
|
+
};
|
|
552
|
+
struct SkewSymmetricShape {
|
|
553
|
+
static std::string debugName() { return "SkewSymmetricShape"; }
|
|
554
|
+
};
|
|
555
|
+
struct BandShape {
|
|
556
|
+
static std::string debugName() { return "BandShape"; }
|
|
557
|
+
};
|
|
558
|
+
struct TriangularShape {
|
|
559
|
+
static std::string debugName() { return "TriangularShape"; }
|
|
560
|
+
};
|
|
561
|
+
struct SelfAdjointShape {
|
|
562
|
+
static std::string debugName() { return "SelfAdjointShape"; }
|
|
563
|
+
};
|
|
564
|
+
struct PermutationShape {
|
|
565
|
+
static std::string debugName() { return "PermutationShape"; }
|
|
566
|
+
};
|
|
567
|
+
struct TranspositionsShape {
|
|
568
|
+
static std::string debugName() { return "TranspositionsShape"; }
|
|
569
|
+
};
|
|
570
|
+
struct SparseShape {
|
|
571
|
+
static std::string debugName() { return "SparseShape"; }
|
|
572
|
+
};
|
|
522
573
|
|
|
523
574
|
namespace internal {
|
|
524
575
|
|
|
525
|
-
|
|
576
|
+
// random access iterators based on coeff*() accessors.
|
|
526
577
|
struct IndexBased {};
|
|
527
578
|
|
|
528
|
-
// evaluator based on iterators to access coefficients.
|
|
579
|
+
// evaluator based on iterators to access coefficients.
|
|
529
580
|
struct IteratorBased {};
|
|
530
581
|
|
|
531
582
|
/** \internal
|
|
532
583
|
* Constants for comparison functors
|
|
533
584
|
*/
|
|
534
|
-
enum ComparisonName {
|
|
585
|
+
enum ComparisonName : unsigned int {
|
|
535
586
|
cmp_EQ = 0,
|
|
536
587
|
cmp_LT = 1,
|
|
537
588
|
cmp_LE = 2,
|
|
@@ -540,8 +591,8 @@ enum ComparisonName {
|
|
|
540
591
|
cmp_GT = 5,
|
|
541
592
|
cmp_GE = 6
|
|
542
593
|
};
|
|
543
|
-
}
|
|
594
|
+
} // end namespace internal
|
|
544
595
|
|
|
545
|
-
}
|
|
596
|
+
} // end namespace Eigen
|
|
546
597
|
|
|
547
|
-
#endif
|
|
598
|
+
#endif // EIGEN_CONSTANTS_H
|