@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
|
@@ -7,266 +7,273 @@
|
|
|
7
7
|
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
8
|
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
9
|
|
|
10
|
-
|
|
11
10
|
#ifndef EIGEN_INTEGRAL_CONSTANT_H
|
|
12
11
|
#define EIGEN_INTEGRAL_CONSTANT_H
|
|
13
12
|
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
15
|
+
|
|
14
16
|
namespace Eigen {
|
|
15
17
|
|
|
16
18
|
namespace internal {
|
|
17
19
|
|
|
18
|
-
template<int N>
|
|
19
|
-
|
|
20
|
+
template <int N>
|
|
21
|
+
class FixedInt;
|
|
22
|
+
template <int N>
|
|
23
|
+
class VariableAndFixedInt;
|
|
20
24
|
|
|
21
25
|
/** \internal
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
FixedInt()
|
|
57
|
-
FixedInt(
|
|
58
|
-
|
|
26
|
+
* \class FixedInt
|
|
27
|
+
*
|
|
28
|
+
* This class embeds a compile-time integer \c N.
|
|
29
|
+
*
|
|
30
|
+
* It is similar to c++11 std::integral_constant<int,N> but with some additional features
|
|
31
|
+
* such as:
|
|
32
|
+
* - implicit conversion to int
|
|
33
|
+
* - arithmetic and some bitwise operators: -, +, *, /, %, &, |
|
|
34
|
+
* - c++98/14 compatibility with fix<N> and fix<N>() syntax to define integral constants.
|
|
35
|
+
*
|
|
36
|
+
* It is strongly discouraged to directly deal with this class FixedInt. Instances are expected to
|
|
37
|
+
* be created by the user using Eigen::fix<N> or Eigen::fix<N>().
|
|
38
|
+
* \code
|
|
39
|
+
* internal::cleanup_index_type<T>::type
|
|
40
|
+
* internal::cleanup_index_type<T,DynamicKey>::type
|
|
41
|
+
* \endcode
|
|
42
|
+
* where T can a FixedInt<N>, a pointer to function FixedInt<N> (*)(), or numerous other integer-like representations.
|
|
43
|
+
* \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
|
|
44
|
+
*
|
|
45
|
+
* For convenience, you can extract the compile-time value \c N in a generic way using the following helper:
|
|
46
|
+
* \code
|
|
47
|
+
* internal::get_fixed_value<T,DefaultVal>::value
|
|
48
|
+
* \endcode
|
|
49
|
+
* that will give you \c N if T equals FixedInt<N> or FixedInt<N> (*)(), and \c DefaultVal if T does not embed any
|
|
50
|
+
* compile-time value (e.g., T==int).
|
|
51
|
+
*
|
|
52
|
+
* \sa fix<N>, class VariableAndFixedInt
|
|
53
|
+
*/
|
|
54
|
+
template <int N>
|
|
55
|
+
class FixedInt {
|
|
56
|
+
public:
|
|
57
|
+
static constexpr int value = N;
|
|
58
|
+
constexpr operator int() const { return N; }
|
|
59
|
+
|
|
60
|
+
constexpr FixedInt() = default;
|
|
61
|
+
constexpr FixedInt(std::integral_constant<int, N>) {}
|
|
62
|
+
|
|
63
|
+
constexpr FixedInt(VariableAndFixedInt<N> other) {
|
|
64
|
+
#ifndef EIGEN_INTERNAL_DEBUGGING
|
|
59
65
|
EIGEN_UNUSED_VARIABLE(other);
|
|
60
|
-
|
|
61
|
-
eigen_internal_assert(int(other)==N);
|
|
66
|
+
#endif
|
|
67
|
+
eigen_internal_assert(int(other) == N);
|
|
62
68
|
}
|
|
63
69
|
|
|
64
|
-
FixedInt<-N> operator-() const { return FixedInt<-N>(); }
|
|
65
|
-
template<int M>
|
|
66
|
-
FixedInt<N+M> operator+( FixedInt<M>) const { return FixedInt<N+M>(); }
|
|
67
|
-
template<int M>
|
|
68
|
-
FixedInt<N-M> operator-( FixedInt<M>) const { return FixedInt<N-M>(); }
|
|
69
|
-
template<int M>
|
|
70
|
-
FixedInt<N*M> operator*( FixedInt<M>) const { return FixedInt<N*M>(); }
|
|
71
|
-
template<int M>
|
|
72
|
-
FixedInt<N/M> operator/( FixedInt<M>) const { return FixedInt<N/M>(); }
|
|
73
|
-
template<int M>
|
|
74
|
-
FixedInt<N%M> operator%( FixedInt<M>) const { return FixedInt<N%M>(); }
|
|
75
|
-
template<int M>
|
|
76
|
-
FixedInt<N|M> operator|( FixedInt<M>) const { return FixedInt<N|M>(); }
|
|
77
|
-
template<int M>
|
|
78
|
-
FixedInt<N&M> operator&( FixedInt<M>) const { return FixedInt<N&M>(); }
|
|
79
|
-
|
|
80
|
-
#if EIGEN_HAS_CXX14_VARIABLE_TEMPLATES
|
|
81
|
-
// Needed in C++14 to allow fix<N>():
|
|
82
|
-
FixedInt operator() () const { return *this; }
|
|
70
|
+
constexpr FixedInt<-N> operator-() const { return FixedInt<-N>(); }
|
|
83
71
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
72
|
+
template <int M>
|
|
73
|
+
constexpr FixedInt<N + M> operator+(FixedInt<M>) const {
|
|
74
|
+
return FixedInt<N + M>();
|
|
75
|
+
}
|
|
88
76
|
|
|
89
|
-
|
|
90
|
-
FixedInt
|
|
91
|
-
|
|
77
|
+
template <int M>
|
|
78
|
+
constexpr FixedInt<N - M> operator-(FixedInt<M>) const {
|
|
79
|
+
return FixedInt<N - M>();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
template <int M>
|
|
83
|
+
constexpr FixedInt<N * M> operator*(FixedInt<M>) const {
|
|
84
|
+
return FixedInt<N * M>();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
template <int M>
|
|
88
|
+
constexpr FixedInt<N / M> operator/(FixedInt<M>) const {
|
|
89
|
+
return FixedInt<N / M>();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
template <int M>
|
|
93
|
+
constexpr FixedInt<N % M> operator%(FixedInt<M>) const {
|
|
94
|
+
return FixedInt<N % M>();
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
template <int M>
|
|
98
|
+
constexpr FixedInt<N | M> operator|(FixedInt<M>) const {
|
|
99
|
+
return FixedInt<N | M>();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
template <int M>
|
|
103
|
+
constexpr FixedInt<N & M> operator&(FixedInt<M>) const {
|
|
104
|
+
return FixedInt<N & M>();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Needed in C++14 to allow fix<N>():
|
|
108
|
+
constexpr FixedInt operator()() const { return *this; }
|
|
109
|
+
|
|
110
|
+
constexpr VariableAndFixedInt<N> operator()(int val) const { return VariableAndFixedInt<N>(val); }
|
|
92
111
|
};
|
|
93
112
|
|
|
94
113
|
/** \internal
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
114
|
+
* \class VariableAndFixedInt
|
|
115
|
+
*
|
|
116
|
+
* This class embeds both a compile-time integer \c N and a runtime integer.
|
|
117
|
+
* Both values are supposed to be equal unless the compile-time value \c N has a special
|
|
118
|
+
* value meaning that the runtime-value should be used. Depending on the context, this special
|
|
119
|
+
* value can be either Eigen::Dynamic (for positive quantities) or Eigen::DynamicIndex (for
|
|
120
|
+
* quantities that can be negative).
|
|
121
|
+
*
|
|
122
|
+
* It is the return-type of the function Eigen::fix<N>(int), and most of the time this is the only
|
|
123
|
+
* way it is used. It is strongly discouraged to directly deal with instances of VariableAndFixedInt.
|
|
124
|
+
* Indeed, in order to write generic code, it is the responsibility of the callee to properly convert
|
|
125
|
+
* it to either a true compile-time quantity (i.e. a FixedInt<N>), or to a runtime quantity (e.g., an Index)
|
|
126
|
+
* using the following generic helper:
|
|
127
|
+
* \code
|
|
128
|
+
* internal::cleanup_index_type<T>::type
|
|
129
|
+
* internal::cleanup_index_type<T,DynamicKey>::type
|
|
130
|
+
* \endcode
|
|
131
|
+
* where T can be a template instantiation of VariableAndFixedInt or numerous other integer-like representations.
|
|
132
|
+
* \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
|
|
133
|
+
*
|
|
134
|
+
* For convenience, you can also extract the compile-time value \c N using the following helper:
|
|
135
|
+
* \code
|
|
136
|
+
* internal::get_fixed_value<T,DefaultVal>::value
|
|
137
|
+
* \endcode
|
|
138
|
+
* that will give you \c N if T equals VariableAndFixedInt<N>, and \c DefaultVal if T does not embed any compile-time
|
|
139
|
+
* value (e.g., T==int).
|
|
140
|
+
*
|
|
141
|
+
* \sa fix<N>(int), class FixedInt
|
|
142
|
+
*/
|
|
143
|
+
template <int N>
|
|
144
|
+
class VariableAndFixedInt {
|
|
145
|
+
public:
|
|
126
146
|
static const int value = N;
|
|
127
147
|
operator int() const { return m_value; }
|
|
128
148
|
VariableAndFixedInt(int val) { m_value = val; }
|
|
129
|
-
|
|
149
|
+
|
|
150
|
+
protected:
|
|
130
151
|
int m_value;
|
|
131
152
|
};
|
|
132
153
|
|
|
133
|
-
template<typename T, int Default=Dynamic>
|
|
154
|
+
template <typename T, int Default = Dynamic>
|
|
155
|
+
struct get_fixed_value {
|
|
134
156
|
static const int value = Default;
|
|
135
157
|
};
|
|
136
158
|
|
|
137
|
-
template<int N,int Default>
|
|
159
|
+
template <int N, int Default>
|
|
160
|
+
struct get_fixed_value<FixedInt<N>, Default> {
|
|
138
161
|
static const int value = N;
|
|
139
162
|
};
|
|
140
163
|
|
|
141
|
-
|
|
142
|
-
|
|
164
|
+
template <int N, int Default>
|
|
165
|
+
struct get_fixed_value<VariableAndFixedInt<N>, Default> {
|
|
143
166
|
static const int value = N;
|
|
144
167
|
};
|
|
145
|
-
#endif
|
|
146
|
-
|
|
147
|
-
template<int N,int Default> struct get_fixed_value<VariableAndFixedInt<N>,Default> {
|
|
148
|
-
static const int value = N ;
|
|
149
|
-
};
|
|
150
168
|
|
|
151
|
-
template<typename T, int N, int Default>
|
|
152
|
-
struct get_fixed_value<variable_if_dynamic<T,N>,Default> {
|
|
169
|
+
template <typename T, int N, int Default>
|
|
170
|
+
struct get_fixed_value<variable_if_dynamic<T, N>, Default> {
|
|
153
171
|
static const int value = N;
|
|
154
172
|
};
|
|
155
173
|
|
|
156
|
-
template<typename T>
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
174
|
+
template <typename T>
|
|
175
|
+
EIGEN_DEVICE_FUNC Index get_runtime_value(const T &x) {
|
|
176
|
+
return x;
|
|
177
|
+
}
|
|
160
178
|
|
|
161
179
|
// Cleanup integer/FixedInt/VariableAndFixedInt/etc types:
|
|
162
180
|
|
|
163
181
|
// By default, no cleanup:
|
|
164
|
-
template<typename T, int DynamicKey=Dynamic, typename EnableIf=void>
|
|
182
|
+
template <typename T, int DynamicKey = Dynamic, typename EnableIf = void>
|
|
183
|
+
struct cleanup_index_type {
|
|
184
|
+
typedef T type;
|
|
185
|
+
};
|
|
165
186
|
|
|
166
187
|
// Convert any integral type (e.g., short, int, unsigned int, etc.) to Eigen::Index
|
|
167
|
-
template<typename T, int DynamicKey>
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
template<int N, int DynamicKey> struct cleanup_index_type<FixedInt<N> (*)(), DynamicKey> { typedef FixedInt<N> type; };
|
|
172
|
-
#endif
|
|
188
|
+
template <typename T, int DynamicKey>
|
|
189
|
+
struct cleanup_index_type<T, DynamicKey, std::enable_if_t<internal::is_integral<T>::value>> {
|
|
190
|
+
typedef Index type;
|
|
191
|
+
};
|
|
173
192
|
|
|
174
193
|
// If VariableAndFixedInt does not match DynamicKey, then we turn it to a pure compile-time value:
|
|
175
|
-
template<int N, int DynamicKey>
|
|
194
|
+
template <int N, int DynamicKey>
|
|
195
|
+
struct cleanup_index_type<VariableAndFixedInt<N>, DynamicKey> {
|
|
196
|
+
typedef FixedInt<N> type;
|
|
197
|
+
};
|
|
176
198
|
// If VariableAndFixedInt matches DynamicKey, then we turn it to a pure runtime-value (aka Index):
|
|
177
|
-
template<int DynamicKey>
|
|
199
|
+
template <int DynamicKey>
|
|
200
|
+
struct cleanup_index_type<VariableAndFixedInt<DynamicKey>, DynamicKey> {
|
|
201
|
+
typedef Index type;
|
|
202
|
+
};
|
|
178
203
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
204
|
+
template <int N, int DynamicKey>
|
|
205
|
+
struct cleanup_index_type<std::integral_constant<int, N>, DynamicKey> {
|
|
206
|
+
typedef FixedInt<N> type;
|
|
207
|
+
};
|
|
182
208
|
|
|
183
|
-
}
|
|
209
|
+
} // end namespace internal
|
|
184
210
|
|
|
185
211
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
186
212
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
static const internal::FixedInt<N> fix{};
|
|
190
|
-
#else
|
|
191
|
-
template<int N>
|
|
192
|
-
inline internal::FixedInt<N> fix() { return internal::FixedInt<N>(); }
|
|
193
|
-
|
|
194
|
-
// The generic typename T is mandatory. Otherwise, a code like fix<N> could refer to either the function above or this next overload.
|
|
195
|
-
// This way a code like fix<N> can only refer to the previous function.
|
|
196
|
-
template<int N,typename T>
|
|
197
|
-
inline internal::VariableAndFixedInt<N> fix(T val) { return internal::VariableAndFixedInt<N>(internal::convert_index<int>(val)); }
|
|
198
|
-
#endif
|
|
213
|
+
template <int N>
|
|
214
|
+
constexpr internal::FixedInt<N> fix{};
|
|
199
215
|
|
|
200
|
-
#else
|
|
216
|
+
#else // EIGEN_PARSED_BY_DOXYGEN
|
|
201
217
|
|
|
202
218
|
/** \var fix<N>()
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
* \code
|
|
226
|
-
* template<int N> inline internal::FixedInt<N> fix();
|
|
227
|
-
* \endcode
|
|
228
|
-
* Here internal::FixedInt<N> is thus a pointer to function.
|
|
229
|
-
*
|
|
230
|
-
* If for some reason you want a true object in c++98 then you can write: \code fix<N>() \endcode which is also valid in c++14.
|
|
231
|
-
*
|
|
232
|
-
* \sa fix<N>(int), seq, seqN
|
|
233
|
-
*/
|
|
234
|
-
template<int N>
|
|
219
|
+
* \ingroup Core_Module
|
|
220
|
+
*
|
|
221
|
+
* This \em identifier permits to construct an object embedding a compile-time integer \c N.
|
|
222
|
+
*
|
|
223
|
+
* \tparam N the compile-time integer value
|
|
224
|
+
*
|
|
225
|
+
* It is typically used in conjunction with the Eigen::seq and Eigen::seqN functions to pass compile-time values to
|
|
226
|
+
* them: \code seqN(10,fix<4>,fix<-3>) // <=> [10 7 4 1] \endcode
|
|
227
|
+
*
|
|
228
|
+
* See also the function fix(int) to pass both a compile-time and runtime value.
|
|
229
|
+
*
|
|
230
|
+
* In c++14, it is implemented as:
|
|
231
|
+
* \code
|
|
232
|
+
* template<int N> static const internal::FixedInt<N> fix{};
|
|
233
|
+
* \endcode
|
|
234
|
+
* where internal::FixedInt<N> is an internal template class similar to
|
|
235
|
+
* <a href="http://en.cppreference.com/w/cpp/types/integral_constant">\c std::integral_constant </a><tt> <int,N> </tt>
|
|
236
|
+
* Here, \c fix<N> is thus an object of type \c internal::FixedInt<N>.
|
|
237
|
+
*
|
|
238
|
+
* \sa fix<N>(int), seq, seqN
|
|
239
|
+
*/
|
|
240
|
+
template <int N>
|
|
235
241
|
static const auto fix();
|
|
236
242
|
|
|
237
243
|
/** \fn fix<N>(int)
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
244
|
+
* \ingroup Core_Module
|
|
245
|
+
*
|
|
246
|
+
* This function returns an object embedding both a compile-time integer \c N, and a fallback runtime value \a val.
|
|
247
|
+
*
|
|
248
|
+
* \tparam N the compile-time integer value
|
|
249
|
+
* \param val the fallback runtime integer value
|
|
250
|
+
*
|
|
251
|
+
* This function is a more general version of the \ref fix identifier/function that can be used in template code
|
|
252
|
+
* where the compile-time value could turn out to actually mean "undefined at compile-time". For positive integers
|
|
253
|
+
* such as a size or a dimension, this case is identified by Eigen::Dynamic, whereas runtime signed integers
|
|
254
|
+
* (e.g., an increment/stride) are identified as Eigen::DynamicIndex. In such a case, the runtime value \a val
|
|
255
|
+
* will be used as a fallback.
|
|
256
|
+
*
|
|
257
|
+
* A typical use case would be:
|
|
258
|
+
* \code
|
|
259
|
+
* template<typename Derived> void foo(const MatrixBase<Derived> &mat) {
|
|
260
|
+
* const int N = Derived::RowsAtCompileTime==Dynamic ? Dynamic : Derived::RowsAtCompileTime/2;
|
|
261
|
+
* const int n = mat.rows()/2;
|
|
262
|
+
* ... mat( seqN(0,fix<N>(n) ) ...;
|
|
263
|
+
* }
|
|
264
|
+
* \endcode
|
|
265
|
+
* In this example, the function Eigen::seqN knows that the second argument is expected to be a size.
|
|
266
|
+
* If the passed compile-time value N equals Eigen::Dynamic, then the proxy object returned by fix will be dismissed,
|
|
267
|
+
* and converted to an Eigen::Index of value \c n. Otherwise, the runtime-value \c n will be dismissed, and the
|
|
268
|
+
* returned ArithmeticSequence will be of the exact same type as <tt> seqN(0,fix<N>) </tt>.
|
|
269
|
+
*
|
|
270
|
+
* \sa fix, seqN, class ArithmeticSequence
|
|
271
|
+
*/
|
|
272
|
+
template <int N>
|
|
266
273
|
static const auto fix(int val);
|
|
267
274
|
|
|
268
|
-
#endif
|
|
275
|
+
#endif // EIGEN_PARSED_BY_DOXYGEN
|
|
269
276
|
|
|
270
|
-
}
|
|
277
|
+
} // end namespace Eigen
|
|
271
278
|
|
|
272
|
-
#endif
|
|
279
|
+
#endif // EIGEN_INTEGRAL_CONSTANT_H
|
|
@@ -34,49 +34,49 @@
|
|
|
34
34
|
#define EIGEN_MKL_SUPPORT_H
|
|
35
35
|
|
|
36
36
|
#ifdef EIGEN_USE_MKL_ALL
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
#ifndef EIGEN_USE_BLAS
|
|
38
|
+
#define EIGEN_USE_BLAS
|
|
39
|
+
#endif
|
|
40
|
+
#ifndef EIGEN_USE_LAPACKE
|
|
41
|
+
#define EIGEN_USE_LAPACKE
|
|
42
|
+
#endif
|
|
43
|
+
#ifndef EIGEN_USE_MKL_VML
|
|
44
|
+
#define EIGEN_USE_MKL_VML
|
|
45
|
+
#endif
|
|
46
46
|
#endif
|
|
47
47
|
|
|
48
48
|
#ifdef EIGEN_USE_LAPACKE_STRICT
|
|
49
|
-
|
|
49
|
+
#define EIGEN_USE_LAPACKE
|
|
50
50
|
#endif
|
|
51
51
|
|
|
52
52
|
#if defined(EIGEN_USE_MKL_VML) && !defined(EIGEN_USE_MKL)
|
|
53
|
-
|
|
53
|
+
#define EIGEN_USE_MKL
|
|
54
54
|
#endif
|
|
55
55
|
|
|
56
|
-
|
|
57
56
|
#if defined EIGEN_USE_MKL
|
|
58
|
-
#
|
|
59
|
-
#
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
57
|
+
#if (!defined MKL_DIRECT_CALL) && (!defined EIGEN_MKL_NO_DIRECT_CALL)
|
|
58
|
+
#define MKL_DIRECT_CALL
|
|
59
|
+
#define MKL_DIRECT_CALL_JUST_SET
|
|
60
|
+
#endif
|
|
61
|
+
#include <mkl.h>
|
|
63
62
|
/*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
|
|
64
|
-
#
|
|
65
|
-
#
|
|
66
|
-
#
|
|
67
|
-
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
#
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
#
|
|
63
|
+
#ifndef INTEL_MKL_VERSION
|
|
64
|
+
#undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
|
|
65
|
+
#elif INTEL_MKL_VERSION < \
|
|
66
|
+
100305 /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
|
|
67
|
+
#undef EIGEN_USE_MKL
|
|
68
|
+
#endif
|
|
69
|
+
#ifndef EIGEN_USE_MKL
|
|
70
|
+
/*If the MKL version is too old, undef everything*/
|
|
71
|
+
#undef EIGEN_USE_MKL_ALL
|
|
72
|
+
#undef EIGEN_USE_LAPACKE
|
|
73
|
+
#undef EIGEN_USE_MKL_VML
|
|
74
|
+
#undef EIGEN_USE_LAPACKE_STRICT
|
|
75
|
+
#undef EIGEN_USE_LAPACKE
|
|
76
|
+
#ifdef MKL_DIRECT_CALL_JUST_SET
|
|
77
|
+
#undef MKL_DIRECT_CALL
|
|
78
|
+
#endif
|
|
79
|
+
#endif
|
|
80
80
|
#endif
|
|
81
81
|
|
|
82
82
|
#if defined EIGEN_USE_MKL
|
|
@@ -120,10 +120,13 @@
|
|
|
120
120
|
#include "../../misc/blas.h"
|
|
121
121
|
#endif
|
|
122
122
|
|
|
123
|
+
// IWYU pragma: private
|
|
124
|
+
#include "../InternalHeaderCheck.h"
|
|
125
|
+
|
|
123
126
|
namespace Eigen {
|
|
124
127
|
|
|
125
128
|
typedef std::complex<double> dcomplex;
|
|
126
|
-
typedef std::complex<float>
|
|
129
|
+
typedef std::complex<float> scomplex;
|
|
127
130
|
|
|
128
131
|
#if defined(EIGEN_USE_MKL)
|
|
129
132
|
typedef MKL_INT BlasIndex;
|
|
@@ -131,7 +134,6 @@ typedef MKL_INT BlasIndex;
|
|
|
131
134
|
typedef int BlasIndex;
|
|
132
135
|
#endif
|
|
133
136
|
|
|
134
|
-
}
|
|
135
|
-
|
|
137
|
+
} // end namespace Eigen
|
|
136
138
|
|
|
137
|
-
#endif
|
|
139
|
+
#endif // EIGEN_MKL_SUPPORT_H
|