@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,100 +10,111 @@
|
|
|
10
10
|
#ifndef EIGEN_COREITERATORS_H
|
|
11
11
|
#define EIGEN_COREITERATORS_H
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
namespace Eigen {
|
|
14
17
|
|
|
15
18
|
/* This file contains the respective InnerIterator definition of the expressions defined in Eigen/Core
|
|
16
19
|
*/
|
|
17
20
|
|
|
18
21
|
namespace internal {
|
|
19
22
|
|
|
20
|
-
template<typename XprType, typename EvaluatorKind>
|
|
23
|
+
template <typename XprType, typename EvaluatorKind>
|
|
21
24
|
class inner_iterator_selector;
|
|
22
25
|
|
|
23
26
|
}
|
|
24
27
|
|
|
25
28
|
/** \class InnerIterator
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
{
|
|
35
|
-
protected:
|
|
29
|
+
* \brief An InnerIterator allows to loop over the element of any matrix expression.
|
|
30
|
+
*
|
|
31
|
+
* \warning To be used with care because an evaluator is constructed every time an InnerIterator iterator is
|
|
32
|
+
* constructed.
|
|
33
|
+
*
|
|
34
|
+
* TODO: add a usage example
|
|
35
|
+
*/
|
|
36
|
+
template <typename XprType>
|
|
37
|
+
class InnerIterator {
|
|
38
|
+
protected:
|
|
36
39
|
typedef internal::inner_iterator_selector<XprType, typename internal::evaluator_traits<XprType>::Kind> IteratorType;
|
|
37
40
|
typedef internal::evaluator<XprType> EvaluatorType;
|
|
38
41
|
typedef typename internal::traits<XprType>::Scalar Scalar;
|
|
39
|
-
|
|
42
|
+
|
|
43
|
+
public:
|
|
40
44
|
/** Construct an iterator over the \a outerId -th row or column of \a xpr */
|
|
41
|
-
InnerIterator(const XprType &xpr, const Index &outerId)
|
|
42
|
-
|
|
43
|
-
{}
|
|
44
|
-
|
|
45
|
+
InnerIterator(const XprType &xpr, const Index &outerId) : m_eval(xpr), m_iter(m_eval, outerId, xpr.innerSize()) {}
|
|
46
|
+
|
|
45
47
|
/// \returns the value of the current coefficient.
|
|
46
|
-
EIGEN_STRONG_INLINE Scalar value() const
|
|
48
|
+
EIGEN_STRONG_INLINE Scalar value() const { return m_iter.value(); }
|
|
47
49
|
/** Increment the iterator \c *this to the next non-zero coefficient.
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
EIGEN_STRONG_INLINE InnerIterator&
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
50
|
+
* Explicit zeros are not skipped over. To skip explicit zeros, see class SparseView
|
|
51
|
+
*/
|
|
52
|
+
EIGEN_STRONG_INLINE InnerIterator &operator++() {
|
|
53
|
+
m_iter.operator++();
|
|
54
|
+
return *this;
|
|
55
|
+
}
|
|
56
|
+
EIGEN_STRONG_INLINE InnerIterator &operator+=(Index i) {
|
|
57
|
+
m_iter.operator+=(i);
|
|
58
|
+
return *this;
|
|
59
|
+
}
|
|
60
|
+
EIGEN_STRONG_INLINE InnerIterator operator+(Index i) {
|
|
61
|
+
InnerIterator result(*this);
|
|
62
|
+
result += i;
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
55
65
|
|
|
56
66
|
/// \returns the column or row index of the current coefficient.
|
|
57
|
-
EIGEN_STRONG_INLINE Index index() const
|
|
67
|
+
EIGEN_STRONG_INLINE Index index() const { return m_iter.index(); }
|
|
58
68
|
/// \returns the row index of the current coefficient.
|
|
59
|
-
EIGEN_STRONG_INLINE Index row() const
|
|
69
|
+
EIGEN_STRONG_INLINE Index row() const { return m_iter.row(); }
|
|
60
70
|
/// \returns the column index of the current coefficient.
|
|
61
|
-
EIGEN_STRONG_INLINE Index col() const
|
|
71
|
+
EIGEN_STRONG_INLINE Index col() const { return m_iter.col(); }
|
|
62
72
|
/// \returns \c true if the iterator \c *this still references a valid coefficient.
|
|
63
|
-
EIGEN_STRONG_INLINE operator bool() const
|
|
64
|
-
|
|
65
|
-
protected:
|
|
73
|
+
EIGEN_STRONG_INLINE operator bool() const { return m_iter; }
|
|
74
|
+
|
|
75
|
+
protected:
|
|
66
76
|
EvaluatorType m_eval;
|
|
67
77
|
IteratorType m_iter;
|
|
68
|
-
|
|
78
|
+
|
|
79
|
+
private:
|
|
69
80
|
// If you get here, then you're not using the right InnerIterator type, e.g.:
|
|
70
81
|
// SparseMatrix<double,RowMajor> A;
|
|
71
82
|
// SparseMatrix<double>::InnerIterator it(A,0);
|
|
72
|
-
template<typename T>
|
|
83
|
+
template <typename T>
|
|
84
|
+
InnerIterator(const EigenBase<T> &, Index outer);
|
|
73
85
|
};
|
|
74
86
|
|
|
75
87
|
namespace internal {
|
|
76
88
|
|
|
77
89
|
// Generic inner iterator implementation for dense objects
|
|
78
|
-
template<typename XprType>
|
|
79
|
-
class inner_iterator_selector<XprType, IndexBased>
|
|
80
|
-
|
|
81
|
-
protected:
|
|
90
|
+
template <typename XprType>
|
|
91
|
+
class inner_iterator_selector<XprType, IndexBased> {
|
|
92
|
+
protected:
|
|
82
93
|
typedef evaluator<XprType> EvaluatorType;
|
|
83
94
|
typedef typename traits<XprType>::Scalar Scalar;
|
|
84
|
-
enum { IsRowMajor = (XprType::Flags&RowMajorBit)==RowMajorBit };
|
|
85
|
-
|
|
86
|
-
public:
|
|
95
|
+
enum { IsRowMajor = (XprType::Flags & RowMajorBit) == RowMajorBit };
|
|
96
|
+
|
|
97
|
+
public:
|
|
87
98
|
EIGEN_STRONG_INLINE inner_iterator_selector(const EvaluatorType &eval, const Index &outerId, const Index &innerSize)
|
|
88
|
-
|
|
89
|
-
{}
|
|
99
|
+
: m_eval(eval), m_inner(0), m_outer(outerId), m_end(innerSize) {}
|
|
90
100
|
|
|
91
|
-
EIGEN_STRONG_INLINE Scalar value() const
|
|
92
|
-
|
|
93
|
-
return (IsRowMajor) ? m_eval.coeff(m_outer, m_inner)
|
|
94
|
-
: m_eval.coeff(m_inner, m_outer);
|
|
101
|
+
EIGEN_STRONG_INLINE Scalar value() const {
|
|
102
|
+
return (IsRowMajor) ? m_eval.coeff(m_outer, m_inner) : m_eval.coeff(m_inner, m_outer);
|
|
95
103
|
}
|
|
96
104
|
|
|
97
|
-
EIGEN_STRONG_INLINE inner_iterator_selector&
|
|
105
|
+
EIGEN_STRONG_INLINE inner_iterator_selector &operator++() {
|
|
106
|
+
m_inner++;
|
|
107
|
+
return *this;
|
|
108
|
+
}
|
|
98
109
|
|
|
99
110
|
EIGEN_STRONG_INLINE Index index() const { return m_inner; }
|
|
100
111
|
inline Index row() const { return IsRowMajor ? m_outer : index(); }
|
|
101
112
|
inline Index col() const { return IsRowMajor ? index() : m_outer; }
|
|
102
113
|
|
|
103
|
-
EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner>=0; }
|
|
114
|
+
EIGEN_STRONG_INLINE operator bool() const { return m_inner < m_end && m_inner >= 0; }
|
|
104
115
|
|
|
105
|
-
protected:
|
|
106
|
-
const EvaluatorType&
|
|
116
|
+
protected:
|
|
117
|
+
const EvaluatorType &m_eval;
|
|
107
118
|
Index m_inner;
|
|
108
119
|
const Index m_outer;
|
|
109
120
|
const Index m_end;
|
|
@@ -111,22 +122,20 @@ protected:
|
|
|
111
122
|
|
|
112
123
|
// For iterator-based evaluator, inner-iterator is already implemented as
|
|
113
124
|
// evaluator<>::InnerIterator
|
|
114
|
-
template<typename XprType>
|
|
115
|
-
class inner_iterator_selector<XprType, IteratorBased>
|
|
116
|
-
:
|
|
117
|
-
{
|
|
118
|
-
protected:
|
|
125
|
+
template <typename XprType>
|
|
126
|
+
class inner_iterator_selector<XprType, IteratorBased> : public evaluator<XprType>::InnerIterator {
|
|
127
|
+
protected:
|
|
119
128
|
typedef typename evaluator<XprType>::InnerIterator Base;
|
|
120
129
|
typedef evaluator<XprType> EvaluatorType;
|
|
121
|
-
|
|
122
|
-
public:
|
|
123
|
-
EIGEN_STRONG_INLINE inner_iterator_selector(const EvaluatorType &eval, const Index &outerId,
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
|
|
131
|
+
public:
|
|
132
|
+
EIGEN_STRONG_INLINE inner_iterator_selector(const EvaluatorType &eval, const Index &outerId,
|
|
133
|
+
const Index & /*innerSize*/)
|
|
134
|
+
: Base(eval, outerId) {}
|
|
126
135
|
};
|
|
127
136
|
|
|
128
|
-
}
|
|
137
|
+
} // end namespace internal
|
|
129
138
|
|
|
130
|
-
}
|
|
139
|
+
} // end namespace Eigen
|
|
131
140
|
|
|
132
|
-
#endif
|
|
141
|
+
#endif // EIGEN_COREITERATORS_H
|
|
@@ -11,15 +11,17 @@
|
|
|
11
11
|
#ifndef EIGEN_CWISE_BINARY_OP_H
|
|
12
12
|
#define EIGEN_CWISE_BINARY_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 BinaryOp, typename Lhs, typename Rhs>
|
|
18
|
-
struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs
|
|
19
|
-
{
|
|
20
|
+
template <typename BinaryOp, typename Lhs, typename Rhs>
|
|
21
|
+
struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs>> {
|
|
20
22
|
// we must not inherit from traits<Lhs> since it has
|
|
21
23
|
// the potential to cause problems with MSVC
|
|
22
|
-
typedef
|
|
24
|
+
typedef remove_all_t<Lhs> Ancestor;
|
|
23
25
|
typedef typename traits<Ancestor>::XprKind XprKind;
|
|
24
26
|
enum {
|
|
25
27
|
RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
|
|
@@ -30,154 +32,135 @@ struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >
|
|
|
30
32
|
|
|
31
33
|
// even though we require Lhs and Rhs to have the same scalar type (see CwiseBinaryOp constructor),
|
|
32
34
|
// we still want to handle the case when the result type is different.
|
|
33
|
-
typedef typename result_of<
|
|
34
|
-
|
|
35
|
-
const typename Lhs::Scalar&,
|
|
36
|
-
const typename Rhs::Scalar&
|
|
37
|
-
)
|
|
38
|
-
>::type Scalar;
|
|
39
|
-
typedef typename cwise_promote_storage_type<typename traits<Lhs>::StorageKind,
|
|
40
|
-
typename traits<Rhs>::StorageKind,
|
|
35
|
+
typedef typename result_of<BinaryOp(const typename Lhs::Scalar&, const typename Rhs::Scalar&)>::type Scalar;
|
|
36
|
+
typedef typename cwise_promote_storage_type<typename traits<Lhs>::StorageKind, typename traits<Rhs>::StorageKind,
|
|
41
37
|
BinaryOp>::ret StorageKind;
|
|
42
|
-
typedef typename promote_index_type<typename traits<Lhs>::StorageIndex,
|
|
43
|
-
|
|
38
|
+
typedef typename promote_index_type<typename traits<Lhs>::StorageIndex, typename traits<Rhs>::StorageIndex>::type
|
|
39
|
+
StorageIndex;
|
|
44
40
|
typedef typename Lhs::Nested LhsNested;
|
|
45
41
|
typedef typename Rhs::Nested RhsNested;
|
|
46
|
-
typedef
|
|
47
|
-
typedef
|
|
42
|
+
typedef std::remove_reference_t<LhsNested> LhsNested_;
|
|
43
|
+
typedef std::remove_reference_t<RhsNested> RhsNested_;
|
|
48
44
|
enum {
|
|
49
|
-
Flags = cwise_promote_storage_order<typename traits<Lhs>::StorageKind,typename traits<Rhs>::StorageKind,
|
|
45
|
+
Flags = cwise_promote_storage_order<typename traits<Lhs>::StorageKind, typename traits<Rhs>::StorageKind,
|
|
46
|
+
LhsNested_::Flags & RowMajorBit, RhsNested_::Flags & RowMajorBit>::value
|
|
50
47
|
};
|
|
51
48
|
};
|
|
52
|
-
}
|
|
49
|
+
} // end namespace internal
|
|
53
50
|
|
|
54
|
-
template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
|
|
51
|
+
template <typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
|
|
55
52
|
class CwiseBinaryOpImpl;
|
|
56
53
|
|
|
57
54
|
/** \class CwiseBinaryOp
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
#if EIGEN_COMP_MSVC
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
CwiseBinaryOp(const CwiseBinaryOp<BinaryOp,LhsType,RhsType>&) = default;
|
|
55
|
+
* \ingroup Core_Module
|
|
56
|
+
*
|
|
57
|
+
* \brief Generic expression where a coefficient-wise binary operator is applied to two expressions
|
|
58
|
+
*
|
|
59
|
+
* \tparam BinaryOp template functor implementing the operator
|
|
60
|
+
* \tparam LhsType the type of the left-hand side
|
|
61
|
+
* \tparam RhsType the type of the right-hand side
|
|
62
|
+
*
|
|
63
|
+
* This class represents an expression where a coefficient-wise binary operator is applied to two expressions.
|
|
64
|
+
* It is the return type of binary operators, by which we mean only those binary operators where
|
|
65
|
+
* both the left-hand side and the right-hand side are Eigen expressions.
|
|
66
|
+
* For example, the return type of matrix1+matrix2 is a CwiseBinaryOp.
|
|
67
|
+
*
|
|
68
|
+
* Most of the time, this is the only way that it is used, so you typically don't have to name
|
|
69
|
+
* CwiseBinaryOp types explicitly.
|
|
70
|
+
*
|
|
71
|
+
* \sa MatrixBase::binaryExpr(const MatrixBase<OtherDerived> &,const CustomBinaryOp &) const, class CwiseUnaryOp, class
|
|
72
|
+
* CwiseNullaryOp
|
|
73
|
+
*/
|
|
74
|
+
template <typename BinaryOp, typename LhsType, typename RhsType>
|
|
75
|
+
class CwiseBinaryOp : public CwiseBinaryOpImpl<BinaryOp, LhsType, RhsType,
|
|
76
|
+
typename internal::cwise_promote_storage_type<
|
|
77
|
+
typename internal::traits<LhsType>::StorageKind,
|
|
78
|
+
typename internal::traits<RhsType>::StorageKind, BinaryOp>::ret>,
|
|
79
|
+
internal::no_assignment_operator {
|
|
80
|
+
public:
|
|
81
|
+
typedef internal::remove_all_t<BinaryOp> Functor;
|
|
82
|
+
typedef internal::remove_all_t<LhsType> Lhs;
|
|
83
|
+
typedef internal::remove_all_t<RhsType> Rhs;
|
|
84
|
+
|
|
85
|
+
typedef typename CwiseBinaryOpImpl<
|
|
86
|
+
BinaryOp, LhsType, RhsType,
|
|
87
|
+
typename internal::cwise_promote_storage_type<typename internal::traits<LhsType>::StorageKind,
|
|
88
|
+
typename internal::traits<Rhs>::StorageKind, BinaryOp>::ret>::Base
|
|
89
|
+
Base;
|
|
90
|
+
EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseBinaryOp)
|
|
91
|
+
|
|
92
|
+
EIGEN_CHECK_BINARY_COMPATIBILIY(BinaryOp, typename Lhs::Scalar, typename Rhs::Scalar)
|
|
93
|
+
EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Lhs, Rhs)
|
|
94
|
+
|
|
95
|
+
typedef typename internal::ref_selector<LhsType>::type LhsNested;
|
|
96
|
+
typedef typename internal::ref_selector<RhsType>::type RhsNested;
|
|
97
|
+
typedef std::remove_reference_t<LhsNested> LhsNested_;
|
|
98
|
+
typedef std::remove_reference_t<RhsNested> RhsNested_;
|
|
99
|
+
|
|
100
|
+
#if EIGEN_COMP_MSVC
|
|
101
|
+
// Required for Visual Studio or the Copy constructor will probably not get inlined!
|
|
102
|
+
EIGEN_STRONG_INLINE CwiseBinaryOp(const CwiseBinaryOp<BinaryOp, LhsType, RhsType>&) = default;
|
|
107
103
|
#endif
|
|
108
104
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
: m_lhs(aLhs), m_rhs(aRhs), m_functor(func)
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
|
138
|
-
const BinaryOp& functor() const { return m_functor; }
|
|
139
|
-
|
|
140
|
-
protected:
|
|
141
|
-
LhsNested m_lhs;
|
|
142
|
-
RhsNested m_rhs;
|
|
143
|
-
const BinaryOp m_functor;
|
|
105
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CwiseBinaryOp(const Lhs& aLhs, const Rhs& aRhs,
|
|
106
|
+
const BinaryOp& func = BinaryOp())
|
|
107
|
+
: m_lhs(aLhs), m_rhs(aRhs), m_functor(func) {
|
|
108
|
+
eigen_assert(aLhs.rows() == aRhs.rows() && aLhs.cols() == aRhs.cols());
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index rows() const noexcept {
|
|
112
|
+
// return the fixed size type if available to enable compile time optimizations
|
|
113
|
+
return internal::traits<internal::remove_all_t<LhsNested>>::RowsAtCompileTime == Dynamic ? m_rhs.rows()
|
|
114
|
+
: m_lhs.rows();
|
|
115
|
+
}
|
|
116
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index cols() const noexcept {
|
|
117
|
+
// return the fixed size type if available to enable compile time optimizations
|
|
118
|
+
return internal::traits<internal::remove_all_t<LhsNested>>::ColsAtCompileTime == Dynamic ? m_rhs.cols()
|
|
119
|
+
: m_lhs.cols();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** \returns the left hand side nested expression */
|
|
123
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const LhsNested_& lhs() const { return m_lhs; }
|
|
124
|
+
/** \returns the right hand side nested expression */
|
|
125
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const RhsNested_& rhs() const { return m_rhs; }
|
|
126
|
+
/** \returns the functor representing the binary operation */
|
|
127
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const BinaryOp& functor() const { return m_functor; }
|
|
128
|
+
|
|
129
|
+
protected:
|
|
130
|
+
LhsNested m_lhs;
|
|
131
|
+
RhsNested m_rhs;
|
|
132
|
+
const BinaryOp m_functor;
|
|
144
133
|
};
|
|
145
134
|
|
|
146
135
|
// Generic API dispatcher
|
|
147
|
-
template<typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
|
|
148
|
-
class CwiseBinaryOpImpl
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
public:
|
|
152
|
-
typedef typename internal::generic_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs> >::type Base;
|
|
136
|
+
template <typename BinaryOp, typename Lhs, typename Rhs, typename StorageKind>
|
|
137
|
+
class CwiseBinaryOpImpl : public internal::generic_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs>>::type {
|
|
138
|
+
public:
|
|
139
|
+
typedef typename internal::generic_xpr_base<CwiseBinaryOp<BinaryOp, Lhs, Rhs>>::type Base;
|
|
153
140
|
};
|
|
154
141
|
|
|
155
142
|
/** replaces \c *this by \c *this - \a other.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
template<typename Derived>
|
|
160
|
-
template<typename OtherDerived>
|
|
161
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived
|
|
162
|
-
|
|
163
|
-
{
|
|
164
|
-
call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
|
|
143
|
+
*
|
|
144
|
+
* \returns a reference to \c *this
|
|
145
|
+
*/
|
|
146
|
+
template <typename Derived>
|
|
147
|
+
template <typename OtherDerived>
|
|
148
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator-=(const MatrixBase<OtherDerived>& other) {
|
|
149
|
+
call_assignment(derived(), other.derived(), internal::sub_assign_op<Scalar, typename OtherDerived::Scalar>());
|
|
165
150
|
return derived();
|
|
166
151
|
}
|
|
167
152
|
|
|
168
153
|
/** replaces \c *this by \c *this + \a other.
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
template<typename Derived>
|
|
173
|
-
template<typename OtherDerived>
|
|
174
|
-
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived
|
|
175
|
-
|
|
176
|
-
{
|
|
177
|
-
call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
|
|
154
|
+
*
|
|
155
|
+
* \returns a reference to \c *this
|
|
156
|
+
*/
|
|
157
|
+
template <typename Derived>
|
|
158
|
+
template <typename OtherDerived>
|
|
159
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator+=(const MatrixBase<OtherDerived>& other) {
|
|
160
|
+
call_assignment(derived(), other.derived(), internal::add_assign_op<Scalar, typename OtherDerived::Scalar>());
|
|
178
161
|
return derived();
|
|
179
162
|
}
|
|
180
163
|
|
|
181
|
-
}
|
|
164
|
+
} // end namespace Eigen
|
|
182
165
|
|
|
183
|
-
#endif
|
|
166
|
+
#endif // EIGEN_CWISE_BINARY_OP_H
|