@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
|
@@ -10,72 +10,95 @@
|
|
|
10
10
|
#ifndef EIGEN_NULLARY_FUNCTORS_H
|
|
11
11
|
#define EIGEN_NULLARY_FUNCTORS_H
|
|
12
12
|
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
15
|
+
|
|
13
16
|
namespace Eigen {
|
|
14
17
|
|
|
15
18
|
namespace internal {
|
|
16
19
|
|
|
17
|
-
template<typename Scalar>
|
|
20
|
+
template <typename Scalar>
|
|
18
21
|
struct scalar_constant_op {
|
|
19
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_constant_op(const
|
|
20
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_constant_op(const Scalar& other) : m_other(other) {}
|
|
23
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()() const { return m_other; }
|
|
24
|
+
template <typename PacketType>
|
|
25
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const PacketType packetOp() const {
|
|
26
|
+
return internal::pset1<PacketType>(m_other);
|
|
27
|
+
}
|
|
24
28
|
const Scalar m_other;
|
|
25
29
|
};
|
|
26
|
-
template<typename Scalar>
|
|
27
|
-
struct functor_traits<scalar_constant_op<Scalar
|
|
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
|
-
|
|
30
|
+
template <typename Scalar>
|
|
31
|
+
struct functor_traits<scalar_constant_op<Scalar>> {
|
|
32
|
+
enum {
|
|
33
|
+
Cost = 0 /* as the constant value should be loaded in register only once for the whole expression */,
|
|
34
|
+
PacketAccess = packet_traits<Scalar>::Vectorizable,
|
|
35
|
+
IsRepeatable = true
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
template <typename Scalar>
|
|
40
|
+
struct scalar_zero_op {
|
|
41
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE scalar_zero_op() = default;
|
|
42
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()() const { return Scalar(0); }
|
|
43
|
+
template <typename PacketType>
|
|
44
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const PacketType packetOp() const {
|
|
45
|
+
return internal::pzero<PacketType>(PacketType());
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
template <typename Scalar>
|
|
49
|
+
struct functor_traits<scalar_zero_op<Scalar>> : functor_traits<scalar_constant_op<Scalar>> {};
|
|
50
|
+
|
|
51
|
+
template <typename Scalar>
|
|
52
|
+
struct scalar_identity_op {
|
|
53
|
+
template <typename IndexType>
|
|
54
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(IndexType row, IndexType col) const {
|
|
55
|
+
return row == col ? Scalar(1) : Scalar(0);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
template <typename Scalar>
|
|
59
|
+
struct functor_traits<scalar_identity_op<Scalar>> {
|
|
60
|
+
enum { Cost = NumTraits<Scalar>::AddCost, PacketAccess = false, IsRepeatable = true };
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
template <typename Scalar, bool IsInteger>
|
|
64
|
+
struct linspaced_op_impl;
|
|
65
|
+
|
|
66
|
+
template <typename Scalar>
|
|
67
|
+
struct linspaced_op_impl<Scalar, /*IsInteger*/ false> {
|
|
68
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
|
69
|
+
|
|
70
|
+
EIGEN_DEVICE_FUNC linspaced_op_impl(const Scalar& low, const Scalar& high, Index num_steps)
|
|
71
|
+
: m_low(low),
|
|
72
|
+
m_high(high),
|
|
73
|
+
m_size1(num_steps == 1 ? 1 : num_steps - 1),
|
|
74
|
+
m_step(num_steps == 1 ? Scalar() : Scalar((high - low) / RealScalar(num_steps - 1))),
|
|
75
|
+
m_flip(numext::abs(high) < numext::abs(low)) {}
|
|
76
|
+
|
|
77
|
+
template <typename IndexType>
|
|
78
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(IndexType i) const {
|
|
79
|
+
if (m_flip)
|
|
80
|
+
return (i == 0) ? m_low : Scalar(m_high - RealScalar(m_size1 - i) * m_step);
|
|
55
81
|
else
|
|
56
|
-
return (i==m_size1)? m_high : (m_low + RealScalar(i)*m_step);
|
|
82
|
+
return (i == m_size1) ? m_high : Scalar(m_low + RealScalar(i) * m_step);
|
|
57
83
|
}
|
|
58
84
|
|
|
59
|
-
template<typename IndexType>
|
|
60
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const
|
|
61
|
-
{
|
|
85
|
+
template <typename Packet, typename IndexType>
|
|
86
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const {
|
|
62
87
|
// Principle:
|
|
63
88
|
// [low, ..., low] + ( [step, ..., step] * ( [i, ..., i] + [0, ..., size] ) )
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
else
|
|
73
|
-
{
|
|
89
|
+
Packet low = pset1<Packet>(m_low);
|
|
90
|
+
Packet high = pset1<Packet>(m_high);
|
|
91
|
+
Packet step = pset1<Packet>(m_step);
|
|
92
|
+
if (m_flip) {
|
|
93
|
+
Packet pi = plset<Packet>(Scalar(i - m_size1));
|
|
94
|
+
Packet res = pmadd(step, pi, high);
|
|
95
|
+
Packet mask = pcmp_lt(pzero(res), plset<Packet>(Scalar(i)));
|
|
96
|
+
return pselect<Packet>(mask, res, low);
|
|
97
|
+
} else {
|
|
74
98
|
Packet pi = plset<Packet>(Scalar(i));
|
|
75
|
-
Packet res =
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return res;
|
|
99
|
+
Packet res = pmadd(step, pi, low);
|
|
100
|
+
Packet mask = pcmp_lt(pi, pset1<Packet>(Scalar(m_size1)));
|
|
101
|
+
return pselect<Packet>(mask, res, high);
|
|
79
102
|
}
|
|
80
103
|
}
|
|
81
104
|
|
|
@@ -86,22 +109,21 @@ struct linspaced_op_impl<Scalar,Packet,/*IsInteger*/false>
|
|
|
86
109
|
const bool m_flip;
|
|
87
110
|
};
|
|
88
111
|
|
|
89
|
-
template <typename Scalar
|
|
90
|
-
struct linspaced_op_impl<Scalar,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
else return m_low + convert_index<Scalar>(i)*m_multiplier;
|
|
112
|
+
template <typename Scalar>
|
|
113
|
+
struct linspaced_op_impl<Scalar, /*IsInteger*/ true> {
|
|
114
|
+
EIGEN_DEVICE_FUNC linspaced_op_impl(const Scalar& low, const Scalar& high, Index num_steps)
|
|
115
|
+
: m_low(low),
|
|
116
|
+
m_multiplier((high - low) / convert_index<Scalar>(num_steps <= 1 ? 1 : num_steps - 1)),
|
|
117
|
+
m_divisor(convert_index<Scalar>((high >= low ? num_steps : -num_steps) + (high - low)) /
|
|
118
|
+
((numext::abs(high - low) + 1) == 0 ? 1 : (numext::abs(high - low) + 1))),
|
|
119
|
+
m_use_divisor(num_steps > 1 && (numext::abs(high - low) + 1) < num_steps) {}
|
|
120
|
+
|
|
121
|
+
template <typename IndexType>
|
|
122
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(IndexType i) const {
|
|
123
|
+
if (m_use_divisor)
|
|
124
|
+
return m_low + convert_index<Scalar>(i) / m_divisor;
|
|
125
|
+
else
|
|
126
|
+
return m_low + convert_index<Scalar>(i) * m_multiplier;
|
|
105
127
|
}
|
|
106
128
|
|
|
107
129
|
const Scalar m_low;
|
|
@@ -115,74 +137,138 @@ struct linspaced_op_impl<Scalar,Packet,/*IsInteger*/true>
|
|
|
115
137
|
// Forward declaration (we default to random access which does not really give
|
|
116
138
|
// us a speed gain when using packet access but it allows to use the functor in
|
|
117
139
|
// nested expressions).
|
|
118
|
-
template <typename Scalar
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
{
|
|
140
|
+
template <typename Scalar>
|
|
141
|
+
struct linspaced_op;
|
|
142
|
+
template <typename Scalar>
|
|
143
|
+
struct functor_traits<linspaced_op<Scalar>> {
|
|
144
|
+
enum {
|
|
123
145
|
Cost = 1,
|
|
124
|
-
PacketAccess =
|
|
125
|
-
|
|
146
|
+
PacketAccess = (!NumTraits<Scalar>::IsInteger) && packet_traits<Scalar>::HasSetLinear,
|
|
147
|
+
/*&& ((!NumTraits<Scalar>::IsInteger) || packet_traits<Scalar>::HasDiv),*/ // <- vectorization for integer is
|
|
148
|
+
// currently disabled
|
|
126
149
|
IsRepeatable = true
|
|
127
150
|
};
|
|
128
151
|
};
|
|
129
|
-
template <typename Scalar
|
|
130
|
-
{
|
|
131
|
-
linspaced_op(const Scalar& low, const Scalar& high, Index num_steps)
|
|
132
|
-
|
|
133
|
-
{}
|
|
152
|
+
template <typename Scalar>
|
|
153
|
+
struct linspaced_op {
|
|
154
|
+
EIGEN_DEVICE_FUNC linspaced_op(const Scalar& low, const Scalar& high, Index num_steps)
|
|
155
|
+
: impl((num_steps == 1 ? high : low), high, num_steps) {}
|
|
134
156
|
|
|
135
|
-
template<typename IndexType>
|
|
136
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()
|
|
157
|
+
template <typename IndexType>
|
|
158
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(IndexType i) const {
|
|
159
|
+
return impl(i);
|
|
160
|
+
}
|
|
137
161
|
|
|
138
|
-
template<typename Packet,typename IndexType>
|
|
139
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const {
|
|
162
|
+
template <typename Packet, typename IndexType>
|
|
163
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Packet packetOp(IndexType i) const {
|
|
164
|
+
return impl.template packetOp<Packet>(i);
|
|
165
|
+
}
|
|
140
166
|
|
|
141
167
|
// This proxy object handles the actual required temporaries and the different
|
|
142
168
|
// implementations (integer vs. floating point).
|
|
143
|
-
const linspaced_op_impl<Scalar,
|
|
169
|
+
const linspaced_op_impl<Scalar, NumTraits<Scalar>::IsInteger> impl;
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
template <typename Scalar>
|
|
173
|
+
struct equalspaced_op {
|
|
174
|
+
typedef typename NumTraits<Scalar>::Real RealScalar;
|
|
175
|
+
|
|
176
|
+
EIGEN_DEVICE_FUNC equalspaced_op(const Scalar& start, const Scalar& step) : m_start(start), m_step(step) {}
|
|
177
|
+
template <typename IndexType>
|
|
178
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar operator()(IndexType i) const {
|
|
179
|
+
return m_start + m_step * static_cast<Scalar>(i);
|
|
180
|
+
}
|
|
181
|
+
template <typename Packet, typename IndexType>
|
|
182
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp(IndexType i) const {
|
|
183
|
+
const Packet cst_start = pset1<Packet>(m_start);
|
|
184
|
+
const Packet cst_step = pset1<Packet>(m_step);
|
|
185
|
+
const Packet cst_lin0 = plset<Packet>(Scalar(0));
|
|
186
|
+
const Packet cst_offset = pmadd(cst_lin0, cst_step, cst_start);
|
|
187
|
+
|
|
188
|
+
Packet i_packet = pset1<Packet>(static_cast<Scalar>(i));
|
|
189
|
+
return pmadd(i_packet, cst_step, cst_offset);
|
|
190
|
+
}
|
|
191
|
+
const Scalar m_start;
|
|
192
|
+
const Scalar m_step;
|
|
193
|
+
};
|
|
194
|
+
|
|
195
|
+
template <typename Scalar>
|
|
196
|
+
struct functor_traits<equalspaced_op<Scalar>> {
|
|
197
|
+
enum {
|
|
198
|
+
Cost = NumTraits<Scalar>::AddCost + NumTraits<Scalar>::MulCost,
|
|
199
|
+
PacketAccess =
|
|
200
|
+
packet_traits<Scalar>::HasSetLinear && packet_traits<Scalar>::HasMul && packet_traits<Scalar>::HasAdd,
|
|
201
|
+
IsRepeatable = true
|
|
202
|
+
};
|
|
144
203
|
};
|
|
145
204
|
|
|
146
205
|
// Linear access is automatically determined from the operator() prototypes available for the given functor.
|
|
147
206
|
// If it exposes an operator()(i,j), then we assume the i and j coefficients are required independently
|
|
148
207
|
// and linear access is not possible. In all other cases, linear access is enabled.
|
|
149
208
|
// Users should not have to deal with this structure.
|
|
150
|
-
template<typename Functor>
|
|
209
|
+
template <typename Functor>
|
|
210
|
+
struct functor_has_linear_access {
|
|
211
|
+
enum { ret = !has_binary_operator<Functor>::value };
|
|
212
|
+
};
|
|
151
213
|
|
|
152
214
|
// For unreliable compilers, let's specialize the has_*ary_operator
|
|
153
215
|
// helpers so that at least built-in nullary functors work fine.
|
|
154
|
-
#if !(
|
|
155
|
-
template<typename Scalar,typename IndexType>
|
|
156
|
-
struct has_nullary_operator<scalar_constant_op<Scalar>,IndexType> {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
template<typename Scalar,typename IndexType>
|
|
160
|
-
struct
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
template<typename Scalar,typename IndexType>
|
|
177
|
-
struct
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
216
|
+
#if !(EIGEN_COMP_MSVC || EIGEN_COMP_GNUC || (EIGEN_COMP_ICC >= 1600))
|
|
217
|
+
template <typename Scalar, typename IndexType>
|
|
218
|
+
struct has_nullary_operator<scalar_constant_op<Scalar>, IndexType> {
|
|
219
|
+
enum { value = 1 };
|
|
220
|
+
};
|
|
221
|
+
template <typename Scalar, typename IndexType>
|
|
222
|
+
struct has_unary_operator<scalar_constant_op<Scalar>, IndexType> {
|
|
223
|
+
enum { value = 0 };
|
|
224
|
+
};
|
|
225
|
+
template <typename Scalar, typename IndexType>
|
|
226
|
+
struct has_binary_operator<scalar_constant_op<Scalar>, IndexType> {
|
|
227
|
+
enum { value = 0 };
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
template <typename Scalar, typename IndexType>
|
|
231
|
+
struct has_nullary_operator<scalar_identity_op<Scalar>, IndexType> {
|
|
232
|
+
enum { value = 0 };
|
|
233
|
+
};
|
|
234
|
+
template <typename Scalar, typename IndexType>
|
|
235
|
+
struct has_unary_operator<scalar_identity_op<Scalar>, IndexType> {
|
|
236
|
+
enum { value = 0 };
|
|
237
|
+
};
|
|
238
|
+
template <typename Scalar, typename IndexType>
|
|
239
|
+
struct has_binary_operator<scalar_identity_op<Scalar>, IndexType> {
|
|
240
|
+
enum { value = 1 };
|
|
241
|
+
};
|
|
242
|
+
|
|
243
|
+
template <typename Scalar, typename IndexType>
|
|
244
|
+
struct has_nullary_operator<linspaced_op<Scalar>, IndexType> {
|
|
245
|
+
enum { value = 0 };
|
|
246
|
+
};
|
|
247
|
+
template <typename Scalar, typename IndexType>
|
|
248
|
+
struct has_unary_operator<linspaced_op<Scalar>, IndexType> {
|
|
249
|
+
enum { value = 1 };
|
|
250
|
+
};
|
|
251
|
+
template <typename Scalar, typename IndexType>
|
|
252
|
+
struct has_binary_operator<linspaced_op<Scalar>, IndexType> {
|
|
253
|
+
enum { value = 0 };
|
|
254
|
+
};
|
|
255
|
+
|
|
256
|
+
template <typename Scalar, typename IndexType>
|
|
257
|
+
struct has_nullary_operator<scalar_random_op<Scalar>, IndexType> {
|
|
258
|
+
enum { value = 1 };
|
|
259
|
+
};
|
|
260
|
+
template <typename Scalar, typename IndexType>
|
|
261
|
+
struct has_unary_operator<scalar_random_op<Scalar>, IndexType> {
|
|
262
|
+
enum { value = 0 };
|
|
263
|
+
};
|
|
264
|
+
template <typename Scalar, typename IndexType>
|
|
265
|
+
struct has_binary_operator<scalar_random_op<Scalar>, IndexType> {
|
|
266
|
+
enum { value = 0 };
|
|
267
|
+
};
|
|
182
268
|
#endif
|
|
183
269
|
|
|
184
|
-
}
|
|
270
|
+
} // end namespace internal
|
|
185
271
|
|
|
186
|
-
}
|
|
272
|
+
} // end namespace Eigen
|
|
187
273
|
|
|
188
|
-
#endif
|
|
274
|
+
#endif // EIGEN_NULLARY_FUNCTORS_H
|
|
@@ -10,118 +10,131 @@
|
|
|
10
10
|
#ifndef EIGEN_STL_FUNCTORS_H
|
|
11
11
|
#define EIGEN_STL_FUNCTORS_H
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../InternalHeaderCheck.h"
|
|
14
15
|
|
|
16
|
+
namespace Eigen {
|
|
15
17
|
namespace internal {
|
|
16
18
|
|
|
17
19
|
// default functor traits for STL functors:
|
|
18
20
|
|
|
19
|
-
template<typename T>
|
|
20
|
-
struct functor_traits<std::multiplies<T> >
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
template<typename T>
|
|
40
|
-
struct functor_traits<std::
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
template<typename T>
|
|
60
|
-
struct functor_traits<std::
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
21
|
+
template <typename T>
|
|
22
|
+
struct functor_traits<std::multiplies<T> > {
|
|
23
|
+
enum { Cost = NumTraits<T>::MulCost, PacketAccess = false };
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
template <typename T>
|
|
27
|
+
struct functor_traits<std::divides<T> > {
|
|
28
|
+
enum { Cost = NumTraits<T>::MulCost, PacketAccess = false };
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
template <typename T>
|
|
32
|
+
struct functor_traits<std::plus<T> > {
|
|
33
|
+
enum { Cost = NumTraits<T>::AddCost, PacketAccess = false };
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
template <typename T>
|
|
37
|
+
struct functor_traits<std::minus<T> > {
|
|
38
|
+
enum { Cost = NumTraits<T>::AddCost, PacketAccess = false };
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
template <typename T>
|
|
42
|
+
struct functor_traits<std::negate<T> > {
|
|
43
|
+
enum { Cost = NumTraits<T>::AddCost, PacketAccess = false };
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
template <typename T>
|
|
47
|
+
struct functor_traits<std::logical_or<T> > {
|
|
48
|
+
enum { Cost = 1, PacketAccess = false };
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
template <typename T>
|
|
52
|
+
struct functor_traits<std::logical_and<T> > {
|
|
53
|
+
enum { Cost = 1, PacketAccess = false };
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
template <typename T>
|
|
57
|
+
struct functor_traits<std::logical_not<T> > {
|
|
58
|
+
enum { Cost = 1, PacketAccess = false };
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
template <typename T>
|
|
62
|
+
struct functor_traits<std::greater<T> > {
|
|
63
|
+
enum { Cost = 1, PacketAccess = false };
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
template <typename T>
|
|
67
|
+
struct functor_traits<std::less<T> > {
|
|
68
|
+
enum { Cost = 1, PacketAccess = false };
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
template <typename T>
|
|
72
|
+
struct functor_traits<std::greater_equal<T> > {
|
|
73
|
+
enum { Cost = 1, PacketAccess = false };
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
template <typename T>
|
|
77
|
+
struct functor_traits<std::less_equal<T> > {
|
|
78
|
+
enum { Cost = 1, PacketAccess = false };
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
template <typename T>
|
|
82
|
+
struct functor_traits<std::equal_to<T> > {
|
|
83
|
+
enum { Cost = 1, PacketAccess = false };
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
template <typename T>
|
|
87
|
+
struct functor_traits<std::not_equal_to<T> > {
|
|
88
|
+
enum { Cost = 1, PacketAccess = false };
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
#if (EIGEN_COMP_CXXVER < 17)
|
|
87
92
|
// std::unary_negate is deprecated since c++17 and will be removed in c++20
|
|
88
|
-
template<typename T>
|
|
89
|
-
struct functor_traits<std::unary_negate<T> >
|
|
90
|
-
|
|
93
|
+
template <typename T>
|
|
94
|
+
struct functor_traits<std::unary_negate<T> > {
|
|
95
|
+
enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false };
|
|
96
|
+
};
|
|
91
97
|
|
|
92
98
|
// std::binary_negate is deprecated since c++17 and will be removed in c++20
|
|
93
|
-
template<typename T>
|
|
94
|
-
struct functor_traits<std::binary_negate<T> >
|
|
95
|
-
|
|
99
|
+
template <typename T>
|
|
100
|
+
struct functor_traits<std::binary_negate<T> > {
|
|
101
|
+
enum { Cost = 1 + functor_traits<T>::Cost, PacketAccess = false };
|
|
102
|
+
};
|
|
96
103
|
#endif
|
|
97
104
|
|
|
98
105
|
#ifdef EIGEN_STDEXT_SUPPORT
|
|
99
106
|
|
|
100
|
-
template<typename T0,typename T1>
|
|
101
|
-
struct functor_traits<std::project1st<T0,T1> >
|
|
102
|
-
|
|
107
|
+
template <typename T0, typename T1>
|
|
108
|
+
struct functor_traits<std::project1st<T0, T1> > {
|
|
109
|
+
enum { Cost = 0, PacketAccess = false };
|
|
110
|
+
};
|
|
103
111
|
|
|
104
|
-
template<typename T0,typename T1>
|
|
105
|
-
struct functor_traits<std::project2nd<T0,T1> >
|
|
106
|
-
|
|
112
|
+
template <typename T0, typename T1>
|
|
113
|
+
struct functor_traits<std::project2nd<T0, T1> > {
|
|
114
|
+
enum { Cost = 0, PacketAccess = false };
|
|
115
|
+
};
|
|
107
116
|
|
|
108
|
-
template<typename T0,typename T1>
|
|
109
|
-
struct functor_traits<std::select2nd<std::pair<T0,T1> > >
|
|
110
|
-
|
|
117
|
+
template <typename T0, typename T1>
|
|
118
|
+
struct functor_traits<std::select2nd<std::pair<T0, T1> > > {
|
|
119
|
+
enum { Cost = 0, PacketAccess = false };
|
|
120
|
+
};
|
|
111
121
|
|
|
112
|
-
template<typename T0,typename T1>
|
|
113
|
-
struct functor_traits<std::select1st<std::pair<T0,T1> > >
|
|
114
|
-
|
|
122
|
+
template <typename T0, typename T1>
|
|
123
|
+
struct functor_traits<std::select1st<std::pair<T0, T1> > > {
|
|
124
|
+
enum { Cost = 0, PacketAccess = false };
|
|
125
|
+
};
|
|
115
126
|
|
|
116
|
-
template<typename T0,typename T1>
|
|
117
|
-
struct functor_traits<std::unary_compose<T0,T1> >
|
|
118
|
-
|
|
127
|
+
template <typename T0, typename T1>
|
|
128
|
+
struct functor_traits<std::unary_compose<T0, T1> > {
|
|
129
|
+
enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost, PacketAccess = false };
|
|
130
|
+
};
|
|
119
131
|
|
|
120
|
-
template<typename T0,typename T1,typename T2>
|
|
121
|
-
struct functor_traits<std::binary_compose<T0,T1,T2> >
|
|
122
|
-
|
|
132
|
+
template <typename T0, typename T1, typename T2>
|
|
133
|
+
struct functor_traits<std::binary_compose<T0, T1, T2> > {
|
|
134
|
+
enum { Cost = functor_traits<T0>::Cost + functor_traits<T1>::Cost + functor_traits<T2>::Cost, PacketAccess = false };
|
|
135
|
+
};
|
|
123
136
|
|
|
124
|
-
#endif
|
|
137
|
+
#endif // EIGEN_STDEXT_SUPPORT
|
|
125
138
|
|
|
126
139
|
// allow to add new functors and specializations of functor_traits from outside Eigen.
|
|
127
140
|
// this macro is really needed because functor_traits must be specialized after it is declared but before it is used...
|
|
@@ -129,8 +142,8 @@ struct functor_traits<std::binary_compose<T0,T1,T2> >
|
|
|
129
142
|
#include EIGEN_FUNCTORS_PLUGIN
|
|
130
143
|
#endif
|
|
131
144
|
|
|
132
|
-
}
|
|
145
|
+
} // end namespace internal
|
|
133
146
|
|
|
134
|
-
}
|
|
147
|
+
} // end namespace Eigen
|
|
135
148
|
|
|
136
|
-
#endif
|
|
149
|
+
#endif // EIGEN_STL_FUNCTORS_H
|