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