@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
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2025 Charlie Schlosser <cs.schlosser@gmail.com>
|
|
5
|
+
//
|
|
6
|
+
// This Source Code Form is subject to the terms of the Mozilla
|
|
7
|
+
// Public License v. 2.0. If a copy of the MPL was not distributed
|
|
8
|
+
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
9
|
+
|
|
10
|
+
#ifndef EIGEN_REDUCTIONS_AVX_H
|
|
11
|
+
#define EIGEN_REDUCTIONS_AVX_H
|
|
12
|
+
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "../../InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
17
|
+
|
|
18
|
+
namespace internal {
|
|
19
|
+
|
|
20
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet8i -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
21
|
+
|
|
22
|
+
template <>
|
|
23
|
+
EIGEN_STRONG_INLINE int predux(const Packet8i& a) {
|
|
24
|
+
Packet4i lo = _mm256_castsi256_si128(a);
|
|
25
|
+
Packet4i hi = _mm256_extractf128_si256(a, 1);
|
|
26
|
+
return predux(padd(lo, hi));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
template <>
|
|
30
|
+
EIGEN_STRONG_INLINE int predux_mul(const Packet8i& a) {
|
|
31
|
+
Packet4i lo = _mm256_castsi256_si128(a);
|
|
32
|
+
Packet4i hi = _mm256_extractf128_si256(a, 1);
|
|
33
|
+
return predux_mul(pmul(lo, hi));
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
template <>
|
|
37
|
+
EIGEN_STRONG_INLINE int predux_min(const Packet8i& a) {
|
|
38
|
+
Packet4i lo = _mm256_castsi256_si128(a);
|
|
39
|
+
Packet4i hi = _mm256_extractf128_si256(a, 1);
|
|
40
|
+
return predux_min(pmin(lo, hi));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
template <>
|
|
44
|
+
EIGEN_STRONG_INLINE int predux_max(const Packet8i& a) {
|
|
45
|
+
Packet4i lo = _mm256_castsi256_si128(a);
|
|
46
|
+
Packet4i hi = _mm256_extractf128_si256(a, 1);
|
|
47
|
+
return predux_max(pmax(lo, hi));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
template <>
|
|
51
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet8i& a) {
|
|
52
|
+
#ifdef EIGEN_VECTORIZE_AVX2
|
|
53
|
+
return _mm256_movemask_epi8(a) != 0x0;
|
|
54
|
+
#else
|
|
55
|
+
return _mm256_movemask_ps(_mm256_castsi256_ps(a)) != 0x0;
|
|
56
|
+
#endif
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet8ui -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
60
|
+
|
|
61
|
+
template <>
|
|
62
|
+
EIGEN_STRONG_INLINE uint32_t predux(const Packet8ui& a) {
|
|
63
|
+
Packet4ui lo = _mm256_castsi256_si128(a);
|
|
64
|
+
Packet4ui hi = _mm256_extractf128_si256(a, 1);
|
|
65
|
+
return predux(padd(lo, hi));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
template <>
|
|
69
|
+
EIGEN_STRONG_INLINE uint32_t predux_mul(const Packet8ui& a) {
|
|
70
|
+
Packet4ui lo = _mm256_castsi256_si128(a);
|
|
71
|
+
Packet4ui hi = _mm256_extractf128_si256(a, 1);
|
|
72
|
+
return predux_mul(pmul(lo, hi));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
template <>
|
|
76
|
+
EIGEN_STRONG_INLINE uint32_t predux_min(const Packet8ui& a) {
|
|
77
|
+
Packet4ui lo = _mm256_castsi256_si128(a);
|
|
78
|
+
Packet4ui hi = _mm256_extractf128_si256(a, 1);
|
|
79
|
+
return predux_min(pmin(lo, hi));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
template <>
|
|
83
|
+
EIGEN_STRONG_INLINE uint32_t predux_max(const Packet8ui& a) {
|
|
84
|
+
Packet4ui lo = _mm256_castsi256_si128(a);
|
|
85
|
+
Packet4ui hi = _mm256_extractf128_si256(a, 1);
|
|
86
|
+
return predux_max(pmax(lo, hi));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
template <>
|
|
90
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet8ui& a) {
|
|
91
|
+
#ifdef EIGEN_VECTORIZE_AVX2
|
|
92
|
+
return _mm256_movemask_epi8(a) != 0x0;
|
|
93
|
+
#else
|
|
94
|
+
return _mm256_movemask_ps(_mm256_castsi256_ps(a)) != 0x0;
|
|
95
|
+
#endif
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
#ifdef EIGEN_VECTORIZE_AVX2
|
|
99
|
+
|
|
100
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet4l -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
101
|
+
|
|
102
|
+
template <>
|
|
103
|
+
EIGEN_STRONG_INLINE int64_t predux(const Packet4l& a) {
|
|
104
|
+
Packet2l lo = _mm256_castsi256_si128(a);
|
|
105
|
+
Packet2l hi = _mm256_extractf128_si256(a, 1);
|
|
106
|
+
return predux(padd(lo, hi));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
template <>
|
|
110
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet4l& a) {
|
|
111
|
+
return _mm256_movemask_pd(_mm256_castsi256_pd(a)) != 0x0;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet4ul -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
115
|
+
|
|
116
|
+
template <>
|
|
117
|
+
EIGEN_STRONG_INLINE uint64_t predux(const Packet4ul& a) {
|
|
118
|
+
return static_cast<uint64_t>(predux(Packet4l(a)));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
template <>
|
|
122
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet4ul& a) {
|
|
123
|
+
return _mm256_movemask_pd(_mm256_castsi256_pd(a)) != 0x0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
#endif
|
|
127
|
+
|
|
128
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet8f -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
129
|
+
|
|
130
|
+
template <>
|
|
131
|
+
EIGEN_STRONG_INLINE float predux(const Packet8f& a) {
|
|
132
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
133
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
134
|
+
return predux(padd(lo, hi));
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
template <>
|
|
138
|
+
EIGEN_STRONG_INLINE float predux_mul(const Packet8f& a) {
|
|
139
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
140
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
141
|
+
return predux_mul(pmul(lo, hi));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
template <>
|
|
145
|
+
EIGEN_STRONG_INLINE float predux_min(const Packet8f& a) {
|
|
146
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
147
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
148
|
+
return predux_min(pmin(lo, hi));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
template <>
|
|
152
|
+
EIGEN_STRONG_INLINE float predux_min<PropagateNumbers>(const Packet8f& a) {
|
|
153
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
154
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
155
|
+
return predux_min<PropagateNumbers>(pmin<PropagateNumbers>(lo, hi));
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
template <>
|
|
159
|
+
EIGEN_STRONG_INLINE float predux_min<PropagateNaN>(const Packet8f& a) {
|
|
160
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
161
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
162
|
+
return predux_min<PropagateNaN>(pmin<PropagateNaN>(lo, hi));
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
template <>
|
|
166
|
+
EIGEN_STRONG_INLINE float predux_max(const Packet8f& a) {
|
|
167
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
168
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
169
|
+
return predux_max(pmax(lo, hi));
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
template <>
|
|
173
|
+
EIGEN_STRONG_INLINE float predux_max<PropagateNumbers>(const Packet8f& a) {
|
|
174
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
175
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
176
|
+
return predux_max<PropagateNumbers>(pmax<PropagateNumbers>(lo, hi));
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
template <>
|
|
180
|
+
EIGEN_STRONG_INLINE float predux_max<PropagateNaN>(const Packet8f& a) {
|
|
181
|
+
Packet4f lo = _mm256_castps256_ps128(a);
|
|
182
|
+
Packet4f hi = _mm256_extractf128_ps(a, 1);
|
|
183
|
+
return predux_max<PropagateNaN>(pmax<PropagateNaN>(lo, hi));
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
template <>
|
|
187
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet8f& a) {
|
|
188
|
+
return _mm256_movemask_ps(a) != 0x0;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet4d -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
192
|
+
|
|
193
|
+
template <>
|
|
194
|
+
EIGEN_STRONG_INLINE double predux(const Packet4d& a) {
|
|
195
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
196
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
197
|
+
return predux(padd(lo, hi));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
template <>
|
|
201
|
+
EIGEN_STRONG_INLINE double predux_mul(const Packet4d& a) {
|
|
202
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
203
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
204
|
+
return predux_mul(pmul(lo, hi));
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
template <>
|
|
208
|
+
EIGEN_STRONG_INLINE double predux_min(const Packet4d& a) {
|
|
209
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
210
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
211
|
+
return predux_min(pmin(lo, hi));
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
template <>
|
|
215
|
+
EIGEN_STRONG_INLINE double predux_min<PropagateNumbers>(const Packet4d& a) {
|
|
216
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
217
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
218
|
+
return predux_min<PropagateNumbers>(pmin<PropagateNumbers>(lo, hi));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
template <>
|
|
222
|
+
EIGEN_STRONG_INLINE double predux_min<PropagateNaN>(const Packet4d& a) {
|
|
223
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
224
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
225
|
+
return predux_min<PropagateNaN>(pmin<PropagateNaN>(lo, hi));
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
template <>
|
|
229
|
+
EIGEN_STRONG_INLINE double predux_max(const Packet4d& a) {
|
|
230
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
231
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
232
|
+
return predux_max(pmax(lo, hi));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
template <>
|
|
236
|
+
EIGEN_STRONG_INLINE double predux_max<PropagateNumbers>(const Packet4d& a) {
|
|
237
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
238
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
239
|
+
return predux_max<PropagateNumbers>(pmax<PropagateNumbers>(lo, hi));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
template <>
|
|
243
|
+
EIGEN_STRONG_INLINE double predux_max<PropagateNaN>(const Packet4d& a) {
|
|
244
|
+
Packet2d lo = _mm256_castpd256_pd128(a);
|
|
245
|
+
Packet2d hi = _mm256_extractf128_pd(a, 1);
|
|
246
|
+
return predux_max<PropagateNaN>(pmax<PropagateNaN>(lo, hi));
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
template <>
|
|
250
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet4d& a) {
|
|
251
|
+
return _mm256_movemask_pd(a) != 0x0;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet8h -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
255
|
+
#ifndef EIGEN_VECTORIZE_AVX512FP16
|
|
256
|
+
|
|
257
|
+
template <>
|
|
258
|
+
EIGEN_STRONG_INLINE half predux(const Packet8h& a) {
|
|
259
|
+
return static_cast<half>(predux(half2float(a)));
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
template <>
|
|
263
|
+
EIGEN_STRONG_INLINE half predux_mul(const Packet8h& a) {
|
|
264
|
+
return static_cast<half>(predux_mul(half2float(a)));
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
template <>
|
|
268
|
+
EIGEN_STRONG_INLINE half predux_min(const Packet8h& a) {
|
|
269
|
+
return static_cast<half>(predux_min(half2float(a)));
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
template <>
|
|
273
|
+
EIGEN_STRONG_INLINE half predux_min<PropagateNumbers>(const Packet8h& a) {
|
|
274
|
+
return static_cast<half>(predux_min<PropagateNumbers>(half2float(a)));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
template <>
|
|
278
|
+
EIGEN_STRONG_INLINE half predux_min<PropagateNaN>(const Packet8h& a) {
|
|
279
|
+
return static_cast<half>(predux_min<PropagateNaN>(half2float(a)));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
template <>
|
|
283
|
+
EIGEN_STRONG_INLINE half predux_max(const Packet8h& a) {
|
|
284
|
+
return static_cast<half>(predux_max(half2float(a)));
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
template <>
|
|
288
|
+
EIGEN_STRONG_INLINE half predux_max<PropagateNumbers>(const Packet8h& a) {
|
|
289
|
+
return static_cast<half>(predux_max<PropagateNumbers>(half2float(a)));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
template <>
|
|
293
|
+
EIGEN_STRONG_INLINE half predux_max<PropagateNaN>(const Packet8h& a) {
|
|
294
|
+
return static_cast<half>(predux_max<PropagateNaN>(half2float(a)));
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
template <>
|
|
298
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet8h& a) {
|
|
299
|
+
return _mm_movemask_epi8(a) != 0;
|
|
300
|
+
}
|
|
301
|
+
#endif // EIGEN_VECTORIZE_AVX512FP16
|
|
302
|
+
|
|
303
|
+
/* -- -- -- -- -- -- -- -- -- -- -- -- Packet8bf -- -- -- -- -- -- -- -- -- -- -- -- */
|
|
304
|
+
|
|
305
|
+
template <>
|
|
306
|
+
EIGEN_STRONG_INLINE bfloat16 predux(const Packet8bf& a) {
|
|
307
|
+
return static_cast<bfloat16>(predux<Packet8f>(Bf16ToF32(a)));
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
template <>
|
|
311
|
+
EIGEN_STRONG_INLINE bfloat16 predux_mul(const Packet8bf& a) {
|
|
312
|
+
return static_cast<bfloat16>(predux_mul<Packet8f>(Bf16ToF32(a)));
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
template <>
|
|
316
|
+
EIGEN_STRONG_INLINE bfloat16 predux_min(const Packet8bf& a) {
|
|
317
|
+
return static_cast<bfloat16>(predux_min(Bf16ToF32(a)));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
template <>
|
|
321
|
+
EIGEN_STRONG_INLINE bfloat16 predux_min<PropagateNumbers>(const Packet8bf& a) {
|
|
322
|
+
return static_cast<bfloat16>(predux_min<PropagateNumbers>(Bf16ToF32(a)));
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
template <>
|
|
326
|
+
EIGEN_STRONG_INLINE bfloat16 predux_min<PropagateNaN>(const Packet8bf& a) {
|
|
327
|
+
return static_cast<bfloat16>(predux_min<PropagateNaN>(Bf16ToF32(a)));
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
template <>
|
|
331
|
+
EIGEN_STRONG_INLINE bfloat16 predux_max(const Packet8bf& a) {
|
|
332
|
+
return static_cast<bfloat16>(predux_max<Packet8f>(Bf16ToF32(a)));
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
template <>
|
|
336
|
+
EIGEN_STRONG_INLINE bfloat16 predux_max<PropagateNumbers>(const Packet8bf& a) {
|
|
337
|
+
return static_cast<bfloat16>(predux_max<PropagateNumbers>(Bf16ToF32(a)));
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
template <>
|
|
341
|
+
EIGEN_STRONG_INLINE bfloat16 predux_max<PropagateNaN>(const Packet8bf& a) {
|
|
342
|
+
return static_cast<bfloat16>(predux_max<PropagateNaN>(Bf16ToF32(a)));
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
template <>
|
|
346
|
+
EIGEN_STRONG_INLINE bool predux_any(const Packet8bf& a) {
|
|
347
|
+
return _mm_movemask_epi8(a) != 0;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
} // end namespace internal
|
|
351
|
+
} // end namespace Eigen
|
|
352
|
+
|
|
353
|
+
#endif // EIGEN_REDUCTIONS_AVX_H
|