@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
|
@@ -12,14 +12,17 @@
|
|
|
12
12
|
#ifndef EIGEN_CWISE_TERNARY_OP_H
|
|
13
13
|
#define EIGEN_CWISE_TERNARY_OP_H
|
|
14
14
|
|
|
15
|
+
// IWYU pragma: private
|
|
16
|
+
#include "./InternalHeaderCheck.h"
|
|
17
|
+
|
|
15
18
|
namespace Eigen {
|
|
16
19
|
|
|
17
20
|
namespace internal {
|
|
18
21
|
template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3>
|
|
19
|
-
struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3
|
|
22
|
+
struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>> {
|
|
20
23
|
// we must not inherit from traits<Arg1> since it has
|
|
21
24
|
// the potential to cause problems with MSVC
|
|
22
|
-
typedef
|
|
25
|
+
typedef remove_all_t<Arg1> Ancestor;
|
|
23
26
|
typedef typename traits<Ancestor>::XprKind XprKind;
|
|
24
27
|
enum {
|
|
25
28
|
RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
|
|
@@ -31,9 +34,8 @@ struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
|
|
|
31
34
|
// even though we require Arg1, Arg2, and Arg3 to have the same scalar type
|
|
32
35
|
// (see CwiseTernaryOp constructor),
|
|
33
36
|
// we still want to handle the case when the result type is different.
|
|
34
|
-
typedef typename result_of<TernaryOp(
|
|
35
|
-
|
|
36
|
-
const typename Arg3::Scalar&)>::type Scalar;
|
|
37
|
+
typedef typename result_of<TernaryOp(const typename Arg1::Scalar&, const typename Arg2::Scalar&,
|
|
38
|
+
const typename Arg3::Scalar&)>::type Scalar;
|
|
37
39
|
|
|
38
40
|
typedef typename internal::traits<Arg1>::StorageKind StorageKind;
|
|
39
41
|
typedef typename internal::traits<Arg1>::StorageIndex StorageIndex;
|
|
@@ -41,138 +43,114 @@ struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
|
|
|
41
43
|
typedef typename Arg1::Nested Arg1Nested;
|
|
42
44
|
typedef typename Arg2::Nested Arg2Nested;
|
|
43
45
|
typedef typename Arg3::Nested Arg3Nested;
|
|
44
|
-
typedef
|
|
45
|
-
typedef
|
|
46
|
-
typedef
|
|
47
|
-
enum { Flags =
|
|
46
|
+
typedef std::remove_reference_t<Arg1Nested> Arg1Nested_;
|
|
47
|
+
typedef std::remove_reference_t<Arg2Nested> Arg2Nested_;
|
|
48
|
+
typedef std::remove_reference_t<Arg3Nested> Arg3Nested_;
|
|
49
|
+
enum { Flags = Arg1Nested_::Flags & RowMajorBit };
|
|
48
50
|
};
|
|
49
51
|
} // end namespace internal
|
|
50
52
|
|
|
51
|
-
template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
|
|
52
|
-
typename StorageKind>
|
|
53
|
+
template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3, typename StorageKind>
|
|
53
54
|
class CwiseTernaryOpImpl;
|
|
54
55
|
|
|
55
56
|
/** \class CwiseTernaryOp
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
* \ingroup Core_Module
|
|
58
|
+
*
|
|
59
|
+
* \brief Generic expression where a coefficient-wise ternary operator is
|
|
59
60
|
* applied to two expressions
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
*
|
|
62
|
+
* \tparam TernaryOp template functor implementing the operator
|
|
63
|
+
* \tparam Arg1Type the type of the first argument
|
|
64
|
+
* \tparam Arg2Type the type of the second argument
|
|
65
|
+
* \tparam Arg3Type the type of the third argument
|
|
66
|
+
*
|
|
67
|
+
* This class represents an expression where a coefficient-wise ternary
|
|
67
68
|
* operator is applied to three expressions.
|
|
68
|
-
|
|
69
|
+
* It is the return type of ternary operators, by which we mean only those
|
|
69
70
|
* ternary operators where
|
|
70
|
-
|
|
71
|
-
|
|
71
|
+
* all three arguments are Eigen expressions.
|
|
72
|
+
* For example, the return type of betainc(matrix1, matrix2, matrix3) is a
|
|
72
73
|
* CwiseTernaryOp.
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
*
|
|
75
|
+
* Most of the time, this is the only way that it is used, so you typically
|
|
75
76
|
* don't have to name
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
* CwiseTernaryOp types explicitly.
|
|
78
|
+
*
|
|
79
|
+
* \sa MatrixBase::ternaryExpr(const MatrixBase<Argument2> &, const
|
|
79
80
|
* MatrixBase<Argument3> &, const CustomTernaryOp &) const, class CwiseBinaryOp,
|
|
80
81
|
* class CwiseUnaryOp, class CwiseNullaryOp
|
|
81
|
-
|
|
82
|
-
template <typename TernaryOp, typename Arg1Type, typename Arg2Type,
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
typename internal::traits<Arg1Type>::StorageKind>,
|
|
87
|
-
internal::no_assignment_operator
|
|
88
|
-
{
|
|
82
|
+
*/
|
|
83
|
+
template <typename TernaryOp, typename Arg1Type, typename Arg2Type, typename Arg3Type>
|
|
84
|
+
class CwiseTernaryOp : public CwiseTernaryOpImpl<TernaryOp, Arg1Type, Arg2Type, Arg3Type,
|
|
85
|
+
typename internal::traits<Arg1Type>::StorageKind>,
|
|
86
|
+
internal::no_assignment_operator {
|
|
89
87
|
public:
|
|
90
|
-
typedef
|
|
91
|
-
typedef
|
|
92
|
-
typedef
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
88
|
+
typedef internal::remove_all_t<Arg1Type> Arg1;
|
|
89
|
+
typedef internal::remove_all_t<Arg2Type> Arg2;
|
|
90
|
+
typedef internal::remove_all_t<Arg3Type> Arg3;
|
|
91
|
+
|
|
92
|
+
// require the sizes to match
|
|
93
|
+
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg2)
|
|
94
|
+
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg3)
|
|
95
|
+
|
|
96
|
+
// The index types should match
|
|
97
|
+
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
|
|
98
|
+
typename internal::traits<Arg2Type>::StorageKind>::value),
|
|
99
|
+
STORAGE_KIND_MUST_MATCH)
|
|
100
|
+
EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
|
|
101
|
+
typename internal::traits<Arg3Type>::StorageKind>::value),
|
|
102
|
+
STORAGE_KIND_MUST_MATCH)
|
|
103
|
+
|
|
104
|
+
typedef typename CwiseTernaryOpImpl<TernaryOp, Arg1Type, Arg2Type, Arg3Type,
|
|
105
|
+
typename internal::traits<Arg1Type>::StorageKind>::Base Base;
|
|
97
106
|
EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseTernaryOp)
|
|
98
107
|
|
|
99
108
|
typedef typename internal::ref_selector<Arg1Type>::type Arg1Nested;
|
|
100
109
|
typedef typename internal::ref_selector<Arg2Type>::type Arg2Nested;
|
|
101
110
|
typedef typename internal::ref_selector<Arg3Type>::type Arg3Nested;
|
|
102
|
-
typedef
|
|
103
|
-
typedef
|
|
104
|
-
typedef
|
|
105
|
-
|
|
106
|
-
EIGEN_DEVICE_FUNC
|
|
107
|
-
|
|
108
|
-
const Arg3& a3,
|
|
109
|
-
const TernaryOp& func = TernaryOp())
|
|
111
|
+
typedef std::remove_reference_t<Arg1Nested> Arg1Nested_;
|
|
112
|
+
typedef std::remove_reference_t<Arg2Nested> Arg2Nested_;
|
|
113
|
+
typedef std::remove_reference_t<Arg3Nested> Arg3Nested_;
|
|
114
|
+
|
|
115
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CwiseTernaryOp(const Arg1& a1, const Arg2& a2, const Arg3& a3,
|
|
116
|
+
const TernaryOp& func = TernaryOp())
|
|
110
117
|
: m_arg1(a1), m_arg2(a2), m_arg3(a3), m_functor(func) {
|
|
111
|
-
|
|
112
|
-
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg2)
|
|
113
|
-
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg3)
|
|
114
|
-
|
|
115
|
-
// The index types should match
|
|
116
|
-
EIGEN_STATIC_ASSERT((internal::is_same<
|
|
117
|
-
typename internal::traits<Arg1Type>::StorageKind,
|
|
118
|
-
typename internal::traits<Arg2Type>::StorageKind>::value),
|
|
119
|
-
STORAGE_KIND_MUST_MATCH)
|
|
120
|
-
EIGEN_STATIC_ASSERT((internal::is_same<
|
|
121
|
-
typename internal::traits<Arg1Type>::StorageKind,
|
|
122
|
-
typename internal::traits<Arg3Type>::StorageKind>::value),
|
|
123
|
-
STORAGE_KIND_MUST_MATCH)
|
|
124
|
-
|
|
125
|
-
eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() &&
|
|
126
|
-
a1.rows() == a3.rows() && a1.cols() == a3.cols());
|
|
118
|
+
eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() && a1.rows() == a3.rows() && a1.cols() == a3.cols());
|
|
127
119
|
}
|
|
128
120
|
|
|
129
|
-
EIGEN_DEVICE_FUNC
|
|
130
|
-
EIGEN_STRONG_INLINE Index rows() const {
|
|
121
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const {
|
|
131
122
|
// return the fixed size type if available to enable compile time
|
|
132
123
|
// optimizations
|
|
133
|
-
if (internal::traits<
|
|
134
|
-
|
|
135
|
-
internal::traits<typename internal::remove_all<Arg2Nested>::type>::
|
|
136
|
-
RowsAtCompileTime == Dynamic)
|
|
124
|
+
if (internal::traits<internal::remove_all_t<Arg1Nested>>::RowsAtCompileTime == Dynamic &&
|
|
125
|
+
internal::traits<internal::remove_all_t<Arg2Nested>>::RowsAtCompileTime == Dynamic)
|
|
137
126
|
return m_arg3.rows();
|
|
138
|
-
else if (internal::traits<
|
|
139
|
-
|
|
140
|
-
internal::traits<typename internal::remove_all<Arg3Nested>::type>::
|
|
141
|
-
RowsAtCompileTime == Dynamic)
|
|
127
|
+
else if (internal::traits<internal::remove_all_t<Arg1Nested>>::RowsAtCompileTime == Dynamic &&
|
|
128
|
+
internal::traits<internal::remove_all_t<Arg3Nested>>::RowsAtCompileTime == Dynamic)
|
|
142
129
|
return m_arg2.rows();
|
|
143
130
|
else
|
|
144
131
|
return m_arg1.rows();
|
|
145
132
|
}
|
|
146
|
-
EIGEN_DEVICE_FUNC
|
|
147
|
-
EIGEN_STRONG_INLINE Index cols() const {
|
|
133
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const {
|
|
148
134
|
// return the fixed size type if available to enable compile time
|
|
149
135
|
// optimizations
|
|
150
|
-
if (internal::traits<
|
|
151
|
-
|
|
152
|
-
internal::traits<typename internal::remove_all<Arg2Nested>::type>::
|
|
153
|
-
ColsAtCompileTime == Dynamic)
|
|
136
|
+
if (internal::traits<internal::remove_all_t<Arg1Nested>>::ColsAtCompileTime == Dynamic &&
|
|
137
|
+
internal::traits<internal::remove_all_t<Arg2Nested>>::ColsAtCompileTime == Dynamic)
|
|
154
138
|
return m_arg3.cols();
|
|
155
|
-
else if (internal::traits<
|
|
156
|
-
|
|
157
|
-
internal::traits<typename internal::remove_all<Arg3Nested>::type>::
|
|
158
|
-
ColsAtCompileTime == Dynamic)
|
|
139
|
+
else if (internal::traits<internal::remove_all_t<Arg1Nested>>::ColsAtCompileTime == Dynamic &&
|
|
140
|
+
internal::traits<internal::remove_all_t<Arg3Nested>>::ColsAtCompileTime == Dynamic)
|
|
159
141
|
return m_arg2.cols();
|
|
160
142
|
else
|
|
161
143
|
return m_arg1.cols();
|
|
162
144
|
}
|
|
163
145
|
|
|
164
146
|
/** \returns the first argument nested expression */
|
|
165
|
-
EIGEN_DEVICE_FUNC
|
|
166
|
-
const _Arg1Nested& arg1() const { return m_arg1; }
|
|
147
|
+
EIGEN_DEVICE_FUNC const Arg1Nested_& arg1() const { return m_arg1; }
|
|
167
148
|
/** \returns the first argument nested expression */
|
|
168
|
-
EIGEN_DEVICE_FUNC
|
|
169
|
-
const _Arg2Nested& arg2() const { return m_arg2; }
|
|
149
|
+
EIGEN_DEVICE_FUNC const Arg2Nested_& arg2() const { return m_arg2; }
|
|
170
150
|
/** \returns the third argument nested expression */
|
|
171
|
-
EIGEN_DEVICE_FUNC
|
|
172
|
-
const _Arg3Nested& arg3() const { return m_arg3; }
|
|
151
|
+
EIGEN_DEVICE_FUNC const Arg3Nested_& arg3() const { return m_arg3; }
|
|
173
152
|
/** \returns the functor representing the ternary operation */
|
|
174
|
-
EIGEN_DEVICE_FUNC
|
|
175
|
-
const TernaryOp& functor() const { return m_functor; }
|
|
153
|
+
EIGEN_DEVICE_FUNC const TernaryOp& functor() const { return m_functor; }
|
|
176
154
|
|
|
177
155
|
protected:
|
|
178
156
|
Arg1Nested m_arg1;
|
|
@@ -182,14 +160,10 @@ class CwiseTernaryOp : public CwiseTernaryOpImpl<
|
|
|
182
160
|
};
|
|
183
161
|
|
|
184
162
|
// Generic API dispatcher
|
|
185
|
-
template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
|
|
186
|
-
|
|
187
|
-
class CwiseTernaryOpImpl
|
|
188
|
-
: public internal::generic_xpr_base<
|
|
189
|
-
CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type {
|
|
163
|
+
template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3, typename StorageKind>
|
|
164
|
+
class CwiseTernaryOpImpl : public internal::generic_xpr_base<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>>::type {
|
|
190
165
|
public:
|
|
191
|
-
typedef typename internal::generic_xpr_base<
|
|
192
|
-
CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type Base;
|
|
166
|
+
typedef typename internal::generic_xpr_base<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>>::type Base;
|
|
193
167
|
};
|
|
194
168
|
|
|
195
169
|
} // end namespace Eigen
|
|
@@ -11,93 +11,81 @@
|
|
|
11
11
|
#ifndef EIGEN_CWISE_UNARY_OP_H
|
|
12
12
|
#define EIGEN_CWISE_UNARY_OP_H
|
|
13
13
|
|
|
14
|
+
// IWYU pragma: private
|
|
15
|
+
#include "./InternalHeaderCheck.h"
|
|
16
|
+
|
|
14
17
|
namespace Eigen {
|
|
15
18
|
|
|
16
19
|
namespace internal {
|
|
17
|
-
template<typename UnaryOp, typename XprType>
|
|
18
|
-
struct traits<CwiseUnaryOp<UnaryOp, XprType> >
|
|
19
|
-
|
|
20
|
-
{
|
|
21
|
-
typedef typename result_of<
|
|
22
|
-
UnaryOp(const typename XprType::Scalar&)
|
|
23
|
-
>::type Scalar;
|
|
20
|
+
template <typename UnaryOp, typename XprType>
|
|
21
|
+
struct traits<CwiseUnaryOp<UnaryOp, XprType> > : traits<XprType> {
|
|
22
|
+
typedef typename result_of<UnaryOp(const typename XprType::Scalar&)>::type Scalar;
|
|
24
23
|
typedef typename XprType::Nested XprTypeNested;
|
|
25
|
-
typedef
|
|
26
|
-
enum {
|
|
27
|
-
Flags = _XprTypeNested::Flags & RowMajorBit
|
|
28
|
-
};
|
|
24
|
+
typedef std::remove_reference_t<XprTypeNested> XprTypeNested_;
|
|
25
|
+
enum { Flags = XprTypeNested_::Flags & RowMajorBit };
|
|
29
26
|
};
|
|
30
|
-
}
|
|
27
|
+
} // namespace internal
|
|
31
28
|
|
|
32
|
-
template<typename UnaryOp, typename XprType, typename StorageKind>
|
|
29
|
+
template <typename UnaryOp, typename XprType, typename StorageKind>
|
|
33
30
|
class CwiseUnaryOpImpl;
|
|
34
31
|
|
|
35
32
|
/** \class CwiseUnaryOp
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
template<typename UnaryOp, typename XprType>
|
|
55
|
-
class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>,
|
|
56
|
-
{
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
typedef typename internal::remove_all<XprType>::type NestedExpression;
|
|
33
|
+
* \ingroup Core_Module
|
|
34
|
+
*
|
|
35
|
+
* \brief Generic expression where a coefficient-wise unary operator is applied to an expression
|
|
36
|
+
*
|
|
37
|
+
* \tparam UnaryOp template functor implementing the operator
|
|
38
|
+
* \tparam XprType the type of the expression to which we are applying the unary operator
|
|
39
|
+
*
|
|
40
|
+
* This class represents an expression where a unary operator is applied to an expression.
|
|
41
|
+
* It is the return type of all operations taking exactly 1 input expression, regardless of the
|
|
42
|
+
* presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
|
|
43
|
+
* is considered unary, because only the right-hand side is an expression, and its
|
|
44
|
+
* return type is a specialization of CwiseUnaryOp.
|
|
45
|
+
*
|
|
46
|
+
* Most of the time, this is the only way that it is used, so you typically don't have to name
|
|
47
|
+
* CwiseUnaryOp types explicitly.
|
|
48
|
+
*
|
|
49
|
+
* \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
|
|
50
|
+
*/
|
|
51
|
+
template <typename UnaryOp, typename XprType>
|
|
52
|
+
class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>,
|
|
53
|
+
internal::no_assignment_operator {
|
|
54
|
+
public:
|
|
55
|
+
typedef typename CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>::Base Base;
|
|
56
|
+
EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
|
|
57
|
+
typedef typename internal::ref_selector<XprType>::type XprTypeNested;
|
|
58
|
+
typedef internal::remove_all_t<XprType> NestedExpression;
|
|
63
59
|
|
|
64
|
-
|
|
65
|
-
explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
|
|
60
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
|
|
66
61
|
: m_xpr(xpr), m_functor(func) {}
|
|
67
62
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
|
|
71
|
-
Index cols() const EIGEN_NOEXCEPT { return m_xpr.cols(); }
|
|
63
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index rows() const noexcept { return m_xpr.rows(); }
|
|
64
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index cols() const noexcept { return m_xpr.cols(); }
|
|
72
65
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const UnaryOp& functor() const { return m_functor; }
|
|
66
|
+
/** \returns the functor representing the unary operation */
|
|
67
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp& functor() const { return m_functor; }
|
|
76
68
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
/** \returns the nested expression */
|
|
70
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const internal::remove_all_t<XprTypeNested>& nestedExpression() const {
|
|
71
|
+
return m_xpr;
|
|
72
|
+
}
|
|
81
73
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
typename internal::remove_all<XprTypeNested>::type&
|
|
85
|
-
nestedExpression() { return m_xpr; }
|
|
74
|
+
/** \returns the nested expression */
|
|
75
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::remove_all_t<XprTypeNested>& nestedExpression() { return m_xpr; }
|
|
86
76
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
77
|
+
protected:
|
|
78
|
+
XprTypeNested m_xpr;
|
|
79
|
+
const UnaryOp m_functor;
|
|
90
80
|
};
|
|
91
81
|
|
|
92
82
|
// Generic API dispatcher
|
|
93
|
-
template<typename UnaryOp, typename XprType, typename StorageKind>
|
|
94
|
-
class CwiseUnaryOpImpl
|
|
95
|
-
|
|
96
|
-
{
|
|
97
|
-
public:
|
|
83
|
+
template <typename UnaryOp, typename XprType, typename StorageKind>
|
|
84
|
+
class CwiseUnaryOpImpl : public internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type {
|
|
85
|
+
public:
|
|
98
86
|
typedef typename internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
|
|
99
87
|
};
|
|
100
88
|
|
|
101
|
-
}
|
|
89
|
+
} // end namespace Eigen
|
|
102
90
|
|
|
103
|
-
#endif
|
|
91
|
+
#endif // EIGEN_CWISE_UNARY_OP_H
|