@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
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2017 Gael Guennebaud <gael.guennebaud@inria.fr>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_INTEGRAL_CONSTANT_H
|
|
11
|
+
#define EIGEN_INTEGRAL_CONSTANT_H
|
|
12
|
+
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
namespace internal {
|
|
19
|
+
|
|
20
|
+
template <int N>
|
|
21
|
+
class FixedInt;
|
|
22
|
+
template <int N>
|
|
23
|
+
class VariableAndFixedInt;
|
|
24
|
+
|
|
25
|
+
/** \internal
|
|
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
|
|
65
|
+
EIGEN_UNUSED_VARIABLE(other);
|
|
66
|
+
#endif
|
|
67
|
+
eigen_internal_assert(int(other) == N);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
constexpr FixedInt<-N> operator-() const { return FixedInt<-N>(); }
|
|
71
|
+
|
|
72
|
+
template <int M>
|
|
73
|
+
constexpr FixedInt<N + M> operator+(FixedInt<M>) const {
|
|
74
|
+
return FixedInt<N + M>();
|
|
75
|
+
}
|
|
76
|
+
|
|
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); }
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
/** \internal
|
|
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:
|
|
146
|
+
static const int value = N;
|
|
147
|
+
operator int() const { return m_value; }
|
|
148
|
+
VariableAndFixedInt(int val) { m_value = val; }
|
|
149
|
+
|
|
150
|
+
protected:
|
|
151
|
+
int m_value;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
template <typename T, int Default = Dynamic>
|
|
155
|
+
struct get_fixed_value {
|
|
156
|
+
static const int value = Default;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
template <int N, int Default>
|
|
160
|
+
struct get_fixed_value<FixedInt<N>, Default> {
|
|
161
|
+
static const int value = N;
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
template <int N, int Default>
|
|
165
|
+
struct get_fixed_value<VariableAndFixedInt<N>, Default> {
|
|
166
|
+
static const int value = N;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
template <typename T, int N, int Default>
|
|
170
|
+
struct get_fixed_value<variable_if_dynamic<T, N>, Default> {
|
|
171
|
+
static const int value = N;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
template <typename T>
|
|
175
|
+
EIGEN_DEVICE_FUNC Index get_runtime_value(const T &x) {
|
|
176
|
+
return x;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// Cleanup integer/FixedInt/VariableAndFixedInt/etc types:
|
|
180
|
+
|
|
181
|
+
// By default, no cleanup:
|
|
182
|
+
template <typename T, int DynamicKey = Dynamic, typename EnableIf = void>
|
|
183
|
+
struct cleanup_index_type {
|
|
184
|
+
typedef T type;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// Convert any integral type (e.g., short, int, unsigned int, etc.) to Eigen::Index
|
|
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
|
+
};
|
|
192
|
+
|
|
193
|
+
// If VariableAndFixedInt does not match DynamicKey, then we turn it to a pure compile-time value:
|
|
194
|
+
template <int N, int DynamicKey>
|
|
195
|
+
struct cleanup_index_type<VariableAndFixedInt<N>, DynamicKey> {
|
|
196
|
+
typedef FixedInt<N> type;
|
|
197
|
+
};
|
|
198
|
+
// If VariableAndFixedInt matches DynamicKey, then we turn it to a pure runtime-value (aka Index):
|
|
199
|
+
template <int DynamicKey>
|
|
200
|
+
struct cleanup_index_type<VariableAndFixedInt<DynamicKey>, DynamicKey> {
|
|
201
|
+
typedef Index type;
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
template <int N, int DynamicKey>
|
|
205
|
+
struct cleanup_index_type<std::integral_constant<int, N>, DynamicKey> {
|
|
206
|
+
typedef FixedInt<N> type;
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
} // end namespace internal
|
|
210
|
+
|
|
211
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
212
|
+
|
|
213
|
+
template <int N>
|
|
214
|
+
constexpr internal::FixedInt<N> fix{};
|
|
215
|
+
|
|
216
|
+
#else // EIGEN_PARSED_BY_DOXYGEN
|
|
217
|
+
|
|
218
|
+
/** \var fix<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>
|
|
241
|
+
static const auto fix();
|
|
242
|
+
|
|
243
|
+
/** \fn fix<N>(int)
|
|
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>
|
|
273
|
+
static const auto fix(int val);
|
|
274
|
+
|
|
275
|
+
#endif // EIGEN_PARSED_BY_DOXYGEN
|
|
276
|
+
|
|
277
|
+
} // end namespace Eigen
|
|
278
|
+
|
|
279
|
+
#endif // EIGEN_INTEGRAL_CONSTANT_H
|
|
@@ -34,42 +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
|
-
#
|
|
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>
|
|
59
62
|
/*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
|
|
60
|
-
#
|
|
61
|
-
#
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
#
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
#
|
|
69
|
-
#
|
|
70
|
-
#
|
|
71
|
-
#
|
|
72
|
-
#
|
|
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
|
|
73
80
|
#endif
|
|
74
81
|
|
|
75
82
|
#if defined EIGEN_USE_MKL
|
|
@@ -113,10 +120,13 @@
|
|
|
113
120
|
#include "../../misc/blas.h"
|
|
114
121
|
#endif
|
|
115
122
|
|
|
123
|
+
// IWYU pragma: private
|
|
124
|
+
#include "../InternalHeaderCheck.h"
|
|
125
|
+
|
|
116
126
|
namespace Eigen {
|
|
117
127
|
|
|
118
128
|
typedef std::complex<double> dcomplex;
|
|
119
|
-
typedef std::complex<float>
|
|
129
|
+
typedef std::complex<float> scomplex;
|
|
120
130
|
|
|
121
131
|
#if defined(EIGEN_USE_MKL)
|
|
122
132
|
typedef MKL_INT BlasIndex;
|
|
@@ -124,7 +134,6 @@ typedef MKL_INT BlasIndex;
|
|
|
124
134
|
typedef int BlasIndex;
|
|
125
135
|
#endif
|
|
126
136
|
|
|
127
|
-
}
|
|
128
|
-
|
|
137
|
+
} // end namespace Eigen
|
|
129
138
|
|
|
130
|
-
#endif
|
|
139
|
+
#endif // EIGEN_MKL_SUPPORT_H
|