@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,163 @@
|
|
|
1
|
+
// This file is part of Eigen, a lightweight C++ template library
|
|
2
|
+
// for linear algebra.
|
|
3
|
+
//
|
|
4
|
+
// Copyright (C) 2021 Erik Schultheis <erik.schultheis@aalto.fi>
|
|
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_LAPACKE_HELPERS_H
|
|
11
|
+
#define EIGEN_LAPACKE_HELPERS_H
|
|
12
|
+
|
|
13
|
+
// IWYU pragma: private
|
|
14
|
+
#include "./InternalHeaderCheck.h"
|
|
15
|
+
|
|
16
|
+
#ifdef EIGEN_USE_MKL
|
|
17
|
+
#include "mkl_lapacke.h"
|
|
18
|
+
#else
|
|
19
|
+
#include "lapacke.h"
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
namespace Eigen {
|
|
23
|
+
namespace internal {
|
|
24
|
+
/**
|
|
25
|
+
* \internal
|
|
26
|
+
* \brief Implementation details and helper functions for the lapacke glue code.
|
|
27
|
+
*/
|
|
28
|
+
namespace lapacke_helpers {
|
|
29
|
+
|
|
30
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
31
|
+
// Translation from Eigen to Lapacke for types and constants
|
|
32
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
33
|
+
|
|
34
|
+
// For complex numbers, the types in Eigen and Lapacke are different, but layout compatible.
|
|
35
|
+
template <typename Scalar>
|
|
36
|
+
struct translate_type_imp;
|
|
37
|
+
template <>
|
|
38
|
+
struct translate_type_imp<float> {
|
|
39
|
+
using type = float;
|
|
40
|
+
};
|
|
41
|
+
template <>
|
|
42
|
+
struct translate_type_imp<double> {
|
|
43
|
+
using type = double;
|
|
44
|
+
};
|
|
45
|
+
template <>
|
|
46
|
+
struct translate_type_imp<std::complex<double>> {
|
|
47
|
+
using type = lapack_complex_double;
|
|
48
|
+
};
|
|
49
|
+
template <>
|
|
50
|
+
struct translate_type_imp<std::complex<float>> {
|
|
51
|
+
using type = lapack_complex_float;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
/// Given an Eigen types, this is defined to be the corresponding, layout-compatible lapack type
|
|
55
|
+
template <typename Scalar>
|
|
56
|
+
using translated_type = typename translate_type_imp<Scalar>::type;
|
|
57
|
+
|
|
58
|
+
/// These functions convert their arguments from Eigen to Lapack types
|
|
59
|
+
/// This function performs conversion for any of the translations defined above.
|
|
60
|
+
template <typename Source, typename Target = translated_type<Source>>
|
|
61
|
+
EIGEN_ALWAYS_INLINE auto to_lapack(Source value) {
|
|
62
|
+
return static_cast<Target>(value);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/// This function performs conversions for pointer types corresponding to the translations abovce.
|
|
66
|
+
/// This is valid because the translations are between layout-compatible types.
|
|
67
|
+
template <typename Source, typename Target = translated_type<Source>>
|
|
68
|
+
EIGEN_ALWAYS_INLINE auto to_lapack(Source *value) {
|
|
69
|
+
return reinterpret_cast<Target *>(value);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/// This function converts the Eigen Index to a lapack index, with possible range checks
|
|
73
|
+
/// \sa internal::convert_index
|
|
74
|
+
EIGEN_ALWAYS_INLINE lapack_int to_lapack(Index index) { return convert_index<lapack_int>(index); }
|
|
75
|
+
|
|
76
|
+
/// translates storage order of the given Eigen object to the corresponding lapack constant
|
|
77
|
+
template <typename Derived>
|
|
78
|
+
EIGEN_ALWAYS_INLINE constexpr lapack_int lapack_storage_of(const EigenBase<Derived> &) {
|
|
79
|
+
return Derived::IsRowMajor ? LAPACK_ROW_MAJOR : LAPACK_COL_MAJOR;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
83
|
+
// Automatic generation of low-level wrappers
|
|
84
|
+
// ---------------------------------------------------------------------------------------------------------------------
|
|
85
|
+
|
|
86
|
+
/*!
|
|
87
|
+
* \internal
|
|
88
|
+
* \brief Helper type to facilitate the wrapping of raw LAPACKE functions for different types into a single, overloaded
|
|
89
|
+
* C++ function. This is achieved in combination with \r EIGEN_MAKE_LAPACKE_WRAPPER \details This implementation works
|
|
90
|
+
* by providing an overloaded call function that just forwards its arguments to the underlying lapack function. Each of
|
|
91
|
+
* these overloads is enabled only if the call is actually well formed. Because these lapack functions take pointers to
|
|
92
|
+
* the underlying scalar type as arguments, even though the actual Scalars would be implicitly convertible, the pointers
|
|
93
|
+
* are not and therefore only a single overload can be valid at the same time. Thus, despite all functions taking fully
|
|
94
|
+
* generic `Args&&... args` as arguments, there is never any ambiguity.
|
|
95
|
+
*/
|
|
96
|
+
template <typename DoubleFn, typename SingleFn, typename DoubleCpxFn, typename SingleCpxFn>
|
|
97
|
+
struct WrappingHelper {
|
|
98
|
+
// The naming of double, single, double complex and single complex is purely for readability
|
|
99
|
+
// and doesn't actually affect the workings of this class. In principle, the arguments can
|
|
100
|
+
// be supplied in any permuted order.
|
|
101
|
+
DoubleFn double_;
|
|
102
|
+
SingleFn single_;
|
|
103
|
+
DoubleCpxFn double_cpx_;
|
|
104
|
+
SingleCpxFn single_cpx_;
|
|
105
|
+
|
|
106
|
+
template <typename... Args>
|
|
107
|
+
auto call(Args &&...args) -> decltype(double_(std::forward<Args>(args)...)) {
|
|
108
|
+
return double_(std::forward<Args>(args)...);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
template <typename... Args>
|
|
112
|
+
auto call(Args &&...args) -> decltype(single_(std::forward<Args>(args)...)) {
|
|
113
|
+
return single_(std::forward<Args>(args)...);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
template <typename... Args>
|
|
117
|
+
auto call(Args &&...args) -> decltype(double_cpx_(std::forward<Args>(args)...)) {
|
|
118
|
+
return double_cpx_(std::forward<Args>(args)...);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
template <typename... Args>
|
|
122
|
+
auto call(Args &&...args) -> decltype(single_cpx_(std::forward<Args>(args)...)) {
|
|
123
|
+
return single_cpx_(std::forward<Args>(args)...);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
/** \internal Helper function that generates a `WrappingHelper` object with the given function pointers and
|
|
128
|
+
* invokes its `call` method, thus selecting one of the overloads.
|
|
129
|
+
* \sa EIGEN_MAKE_LAPACKE_WRAPPER
|
|
130
|
+
*/
|
|
131
|
+
template <typename DoubleFn, typename SingleFn, typename DoubleCpxFn, typename SingleCpxFn, typename... Args>
|
|
132
|
+
EIGEN_ALWAYS_INLINE auto call_wrapper(DoubleFn df, SingleFn sf, DoubleCpxFn dcf, SingleCpxFn scf, Args &&...args) {
|
|
133
|
+
WrappingHelper<DoubleFn, SingleFn, DoubleCpxFn, SingleCpxFn> helper{df, sf, dcf, scf};
|
|
134
|
+
return helper.call(std::forward<Args>(args)...);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* \internal
|
|
139
|
+
* Generates a new function `Function` that dispatches to the corresponding LAPACKE_? prefixed functions.
|
|
140
|
+
* \sa WrappingHelper
|
|
141
|
+
*/
|
|
142
|
+
#define EIGEN_MAKE_LAPACKE_WRAPPER(FUNCTION) \
|
|
143
|
+
template <typename... Args> \
|
|
144
|
+
EIGEN_ALWAYS_INLINE auto FUNCTION(Args &&...args) { \
|
|
145
|
+
return call_wrapper(LAPACKE_d##FUNCTION, LAPACKE_s##FUNCTION, LAPACKE_z##FUNCTION, LAPACKE_c##FUNCTION, \
|
|
146
|
+
std::forward<Args>(args)...); \
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Now with this macro and the helper wrappers, we can generate the dispatch for all the lapacke functions that are
|
|
150
|
+
// used in Eigen.
|
|
151
|
+
// We define these here instead of in the files where they are used because this allows us to #undef the macro again
|
|
152
|
+
// right here
|
|
153
|
+
EIGEN_MAKE_LAPACKE_WRAPPER(potrf)
|
|
154
|
+
EIGEN_MAKE_LAPACKE_WRAPPER(getrf)
|
|
155
|
+
EIGEN_MAKE_LAPACKE_WRAPPER(geqrf)
|
|
156
|
+
EIGEN_MAKE_LAPACKE_WRAPPER(gesdd)
|
|
157
|
+
|
|
158
|
+
#undef EIGEN_MAKE_LAPACKE_WRAPPER
|
|
159
|
+
} // namespace lapacke_helpers
|
|
160
|
+
} // namespace internal
|
|
161
|
+
} // namespace Eigen
|
|
162
|
+
|
|
163
|
+
#endif // EIGEN_LAPACKE_HELPERS_H
|
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
|
|
4
4
|
#ifndef LAPACK_GLOBAL
|
|
5
5
|
#if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_)
|
|
6
|
-
#define LAPACK_GLOBAL(lcname,UCNAME)
|
|
6
|
+
#define LAPACK_GLOBAL(lcname, UCNAME) lcname##_
|
|
7
7
|
#elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER)
|
|
8
|
-
#define LAPACK_GLOBAL(lcname,UCNAME)
|
|
8
|
+
#define LAPACK_GLOBAL(lcname, UCNAME) UCNAME
|
|
9
9
|
#elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE)
|
|
10
|
-
#define LAPACK_GLOBAL(lcname,UCNAME)
|
|
10
|
+
#define LAPACK_GLOBAL(lcname, UCNAME) lcname
|
|
11
11
|
#else
|
|
12
|
-
#define LAPACK_GLOBAL(lcname,UCNAME)
|
|
12
|
+
#define LAPACK_GLOBAL(lcname, UCNAME) lcname##_
|
|
13
13
|
#endif
|
|
14
14
|
#endif
|
|
15
15
|
|
|
16
16
|
#endif
|
|
17
|
-
|
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
|
|
2
|
+
/** \returns an expression of the coefficient wise product of \c *this and \a other
|
|
3
|
+
*
|
|
4
|
+
* \sa MatrixBase::cwiseProduct
|
|
5
|
+
*/
|
|
6
|
+
template <typename OtherDerived>
|
|
7
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const EIGEN_CWISE_BINARY_RETURN_TYPE(Derived, OtherDerived, product) operator*(
|
|
8
|
+
const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const {
|
|
9
|
+
return EIGEN_CWISE_BINARY_RETURN_TYPE(Derived, OtherDerived, product)(derived(), other.derived());
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** \returns an expression of the coefficient wise quotient of \c *this and \a other
|
|
13
|
+
*
|
|
14
|
+
* \sa MatrixBase::cwiseQuotient
|
|
15
|
+
*/
|
|
16
|
+
template <typename OtherDerived>
|
|
17
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const CwiseBinaryOp<
|
|
18
|
+
internal::scalar_quotient_op<Scalar, typename OtherDerived::Scalar>, const Derived, const OtherDerived>
|
|
19
|
+
operator/(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const {
|
|
20
|
+
return CwiseBinaryOp<internal::scalar_quotient_op<Scalar, typename OtherDerived::Scalar>, const Derived,
|
|
21
|
+
const OtherDerived>(derived(), other.derived());
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** \returns an expression of the coefficient-wise min of \c *this and \a other
|
|
25
|
+
*
|
|
26
|
+
* Example: \include Cwise_min.cpp
|
|
27
|
+
* Output: \verbinclude Cwise_min.out
|
|
28
|
+
*
|
|
29
|
+
* \sa max()
|
|
30
|
+
*/
|
|
31
|
+
template <int NaNPropagation = PropagateFast, typename OtherDerived>
|
|
32
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const
|
|
33
|
+
CwiseBinaryOp<internal::scalar_min_op<Scalar, Scalar, NaNPropagation>, const Derived, const OtherDerived>
|
|
34
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
35
|
+
min
|
|
36
|
+
#else
|
|
37
|
+
(min)
|
|
38
|
+
#endif
|
|
39
|
+
(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const {
|
|
40
|
+
return CwiseBinaryOp<internal::scalar_min_op<Scalar, Scalar, NaNPropagation>, const Derived, const OtherDerived>(
|
|
41
|
+
derived(), other.derived());
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/** \returns an expression of the coefficient-wise min of \c *this and scalar \a other
|
|
45
|
+
*
|
|
46
|
+
* \sa max()
|
|
47
|
+
*/
|
|
48
|
+
template <int NaNPropagation = PropagateFast>
|
|
49
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const
|
|
50
|
+
CwiseBinaryOp<internal::scalar_min_op<Scalar, Scalar, NaNPropagation>, const Derived,
|
|
51
|
+
const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
|
|
52
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
53
|
+
min
|
|
54
|
+
#else
|
|
55
|
+
(min)
|
|
56
|
+
#endif
|
|
57
|
+
(const Scalar &other) const {
|
|
58
|
+
return (min<NaNPropagation>)(Derived::PlainObject::Constant(rows(), cols(), other));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/** \returns an expression of the coefficient-wise max of \c *this and \a other
|
|
62
|
+
*
|
|
63
|
+
* Example: \include Cwise_max.cpp
|
|
64
|
+
* Output: \verbinclude Cwise_max.out
|
|
65
|
+
*
|
|
66
|
+
* \sa min()
|
|
67
|
+
*/
|
|
68
|
+
template <int NaNPropagation = PropagateFast, typename OtherDerived>
|
|
69
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const
|
|
70
|
+
CwiseBinaryOp<internal::scalar_max_op<Scalar, Scalar, NaNPropagation>, const Derived, const OtherDerived>
|
|
71
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
72
|
+
max
|
|
73
|
+
#else
|
|
74
|
+
(max)
|
|
75
|
+
#endif
|
|
76
|
+
(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const {
|
|
77
|
+
return CwiseBinaryOp<internal::scalar_max_op<Scalar, Scalar, NaNPropagation>, const Derived, const OtherDerived>(
|
|
78
|
+
derived(), other.derived());
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** \returns an expression of the coefficient-wise max of \c *this and scalar \a other
|
|
82
|
+
*
|
|
83
|
+
* \sa min()
|
|
84
|
+
*/
|
|
85
|
+
template <int NaNPropagation = PropagateFast>
|
|
86
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const
|
|
87
|
+
CwiseBinaryOp<internal::scalar_max_op<Scalar, Scalar, NaNPropagation>, const Derived,
|
|
88
|
+
const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
|
|
89
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
90
|
+
max
|
|
91
|
+
#else
|
|
92
|
+
(max)
|
|
93
|
+
#endif
|
|
94
|
+
(const Scalar &other) const {
|
|
95
|
+
return (max<NaNPropagation>)(Derived::PlainObject::Constant(rows(), cols(), other));
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** \returns an expression of the coefficient-wise absdiff of \c *this and \a other
|
|
99
|
+
*
|
|
100
|
+
* \sa absolute_difference()
|
|
101
|
+
*/
|
|
102
|
+
EIGEN_MAKE_CWISE_BINARY_OP(absolute_difference, absolute_difference)
|
|
103
|
+
|
|
104
|
+
/** \returns an expression of the coefficient-wise absolute_difference of \c *this and scalar \a other
|
|
105
|
+
*
|
|
106
|
+
* \sa absolute_difference()
|
|
107
|
+
*/
|
|
108
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const
|
|
109
|
+
CwiseBinaryOp<internal::scalar_absolute_difference_op<Scalar, Scalar>, const Derived,
|
|
110
|
+
const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> >
|
|
111
|
+
#ifdef EIGEN_PARSED_BY_DOXYGEN
|
|
112
|
+
absolute_difference
|
|
113
|
+
#else
|
|
114
|
+
(absolute_difference)
|
|
115
|
+
#endif
|
|
116
|
+
(const Scalar &other) const {
|
|
117
|
+
return (absolute_difference)(Derived::PlainObject::Constant(rows(), cols(), other));
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** \returns an expression of the coefficient-wise power of \c *this to the given array of \a exponents.
|
|
121
|
+
*
|
|
122
|
+
* This function computes the coefficient-wise power.
|
|
123
|
+
*
|
|
124
|
+
* Example: \include Cwise_array_power_array.cpp
|
|
125
|
+
* Output: \verbinclude Cwise_array_power_array.out
|
|
126
|
+
*/
|
|
127
|
+
EIGEN_MAKE_CWISE_BINARY_OP(pow, pow)
|
|
128
|
+
|
|
129
|
+
/** \returns an expression of the coefficient-wise atan2(\c *this, \a y), where \a y is the given array argument.
|
|
130
|
+
*
|
|
131
|
+
* This function computes the coefficient-wise atan2.
|
|
132
|
+
*
|
|
133
|
+
*/
|
|
134
|
+
EIGEN_MAKE_CWISE_BINARY_OP(atan2, atan2)
|
|
135
|
+
|
|
136
|
+
// TODO code generating macros could be moved to Macros.h and could include generation of documentation
|
|
137
|
+
#define EIGEN_MAKE_CWISE_COMP_OP(OP, COMPARATOR) \
|
|
138
|
+
template <typename OtherDerived> \
|
|
139
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const \
|
|
140
|
+
CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_##COMPARATOR>, \
|
|
141
|
+
const Derived, const OtherDerived> \
|
|
142
|
+
OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const { \
|
|
143
|
+
return CwiseBinaryOp<internal::scalar_cmp_op<Scalar, typename OtherDerived::Scalar, internal::cmp_##COMPARATOR>, \
|
|
144
|
+
const Derived, const OtherDerived>(derived(), other.derived()); \
|
|
145
|
+
} \
|
|
146
|
+
typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_##COMPARATOR>, const Derived, \
|
|
147
|
+
const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject> > \
|
|
148
|
+
Cmp##COMPARATOR##ReturnType; \
|
|
149
|
+
typedef CwiseBinaryOp<internal::scalar_cmp_op<Scalar, Scalar, internal::cmp_##COMPARATOR>, \
|
|
150
|
+
const CwiseNullaryOp<internal::scalar_constant_op<Scalar>, PlainObject>, const Derived> \
|
|
151
|
+
RCmp##COMPARATOR##ReturnType; \
|
|
152
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Cmp##COMPARATOR##ReturnType OP(const Scalar &s) const { \
|
|
153
|
+
return this->OP(Derived::PlainObject::Constant(rows(), cols(), s)); \
|
|
154
|
+
} \
|
|
155
|
+
EIGEN_DEVICE_FUNC friend EIGEN_STRONG_INLINE const RCmp##COMPARATOR##ReturnType OP( \
|
|
156
|
+
const Scalar &s, const EIGEN_CURRENT_STORAGE_BASE_CLASS<Derived> &d) { \
|
|
157
|
+
return Derived::PlainObject::Constant(d.rows(), d.cols(), s).OP(d); \
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
#define EIGEN_MAKE_CWISE_COMP_R_OP(OP, R_OP, RCOMPARATOR) \
|
|
161
|
+
template <typename OtherDerived> \
|
|
162
|
+
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const \
|
|
163
|
+
CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, \
|
|
164
|
+
const OtherDerived, const Derived> \
|
|
165
|
+
OP(const EIGEN_CURRENT_STORAGE_BASE_CLASS<OtherDerived> &other) const { \
|
|
166
|
+
return CwiseBinaryOp<internal::scalar_cmp_op<typename OtherDerived::Scalar, Scalar, internal::cmp_##RCOMPARATOR>, \
|
|
167
|
+
const OtherDerived, const Derived>(other.derived(), derived()); \
|
|
168
|
+
} \
|
|
169
|
+
EIGEN_DEVICE_FUNC inline const RCmp##RCOMPARATOR##ReturnType OP(const Scalar &s) const { \
|
|
170
|
+
return Derived::PlainObject::Constant(rows(), cols(), s).R_OP(*this); \
|
|
171
|
+
} \
|
|
172
|
+
friend inline const Cmp##RCOMPARATOR##ReturnType OP(const Scalar &s, const Derived &d) { \
|
|
173
|
+
return d.R_OP(Derived::PlainObject::Constant(d.rows(), d.cols(), s)); \
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** \returns an expression of the coefficient-wise \< operator of *this and \a other
|
|
177
|
+
*
|
|
178
|
+
* Example: \include Cwise_less.cpp
|
|
179
|
+
* Output: \verbinclude Cwise_less.out
|
|
180
|
+
*
|
|
181
|
+
* \sa all(), any(), operator>(), operator<=()
|
|
182
|
+
*/
|
|
183
|
+
EIGEN_MAKE_CWISE_COMP_OP(operator<, LT)
|
|
184
|
+
|
|
185
|
+
/** \returns an expression of the coefficient-wise \<= operator of *this and \a other
|
|
186
|
+
*
|
|
187
|
+
* Example: \include Cwise_less_equal.cpp
|
|
188
|
+
* Output: \verbinclude Cwise_less_equal.out
|
|
189
|
+
*
|
|
190
|
+
* \sa all(), any(), operator>=(), operator<()
|
|
191
|
+
*/
|
|
192
|
+
EIGEN_MAKE_CWISE_COMP_OP(operator<=, LE)
|
|
193
|
+
|
|
194
|
+
/** \returns an expression of the coefficient-wise \> operator of *this and \a other
|
|
195
|
+
*
|
|
196
|
+
* Example: \include Cwise_greater.cpp
|
|
197
|
+
* Output: \verbinclude Cwise_greater.out
|
|
198
|
+
*
|
|
199
|
+
* \sa all(), any(), operator>=(), operator<()
|
|
200
|
+
*/
|
|
201
|
+
EIGEN_MAKE_CWISE_COMP_R_OP(operator>, operator<, LT)
|
|
202
|
+
|
|
203
|
+
/** \returns an expression of the coefficient-wise \>= operator of *this and \a other
|
|
204
|
+
*
|
|
205
|
+
* Example: \include Cwise_greater_equal.cpp
|
|
206
|
+
* Output: \verbinclude Cwise_greater_equal.out
|
|
207
|
+
*
|
|
208
|
+
* \sa all(), any(), operator>(), operator<=()
|
|
209
|
+
*/
|
|
210
|
+
EIGEN_MAKE_CWISE_COMP_R_OP(operator>=, operator<=, LE)
|
|
211
|
+
|
|
212
|
+
/** \returns an expression of the coefficient-wise == operator of *this and \a other
|
|
213
|
+
*
|
|
214
|
+
* \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
|
|
215
|
+
* In order to check for equality between two vectors or matrices with floating-point coefficients, it is
|
|
216
|
+
* generally a far better idea to use a fuzzy comparison as provided by isApprox() and
|
|
217
|
+
* isMuchSmallerThan().
|
|
218
|
+
*
|
|
219
|
+
* Example: \include Cwise_equal_equal.cpp
|
|
220
|
+
* Output: \verbinclude Cwise_equal_equal.out
|
|
221
|
+
*
|
|
222
|
+
* \sa all(), any(), isApprox(), isMuchSmallerThan()
|
|
223
|
+
*/
|
|
224
|
+
EIGEN_MAKE_CWISE_COMP_OP(operator==, EQ)
|
|
225
|
+
|
|
226
|
+
/** \returns an expression of the coefficient-wise != operator of *this and \a other
|
|
227
|
+
*
|
|
228
|
+
* \warning this performs an exact comparison, which is generally a bad idea with floating-point types.
|
|
229
|
+
* In order to check for equality between two vectors or matrices with floating-point coefficients, it is
|
|
230
|
+
* generally a far better idea to use a fuzzy comparison as provided by isApprox() and
|
|
231
|
+
* isMuchSmallerThan().
|
|
232
|
+
*
|
|
233
|
+
* Example: \include Cwise_not_equal.cpp
|
|
234
|
+
* Output: \verbinclude Cwise_not_equal.out
|
|
235
|
+
*
|
|
236
|
+
* \sa all(), any(), isApprox(), isMuchSmallerThan()
|
|
237
|
+
*/
|
|
238
|
+
EIGEN_MAKE_CWISE_COMP_OP(operator!=, NEQ)
|
|
239
|
+
|
|
240
|
+
#undef EIGEN_MAKE_CWISE_COMP_OP
|
|
241
|
+
#undef EIGEN_MAKE_CWISE_COMP_R_OP
|
|
242
|
+
|
|
243
|
+
// scalar addition
|
|
244
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
245
|
+
EIGEN_MAKE_SCALAR_BINARY_OP(operator+, sum)
|
|
246
|
+
#else
|
|
247
|
+
/** \returns an expression of \c *this with each coeff incremented by the constant \a scalar
|
|
248
|
+
*
|
|
249
|
+
* \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
|
|
250
|
+
*
|
|
251
|
+
* Example: \include Cwise_plus.cpp
|
|
252
|
+
* Output: \verbinclude Cwise_plus.out
|
|
253
|
+
*
|
|
254
|
+
* \sa operator+=(), operator-()
|
|
255
|
+
*/
|
|
256
|
+
template <typename T>
|
|
257
|
+
const CwiseBinaryOp<internal::scalar_sum_op<Scalar, T>, Derived, Constant<T> > operator+(const T &scalar) const;
|
|
258
|
+
/** \returns an expression of \a expr with each coeff incremented by the constant \a scalar
|
|
259
|
+
*
|
|
260
|
+
* \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
|
|
261
|
+
*/
|
|
262
|
+
template <typename T>
|
|
263
|
+
friend const CwiseBinaryOp<internal::scalar_sum_op<T, Scalar>, Constant<T>, Derived> operator+(
|
|
264
|
+
const T &scalar, const StorageBaseType &expr);
|
|
265
|
+
#endif
|
|
266
|
+
|
|
267
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
268
|
+
EIGEN_MAKE_SCALAR_BINARY_OP(operator-, difference)
|
|
269
|
+
#else
|
|
270
|
+
/** \returns an expression of \c *this with each coeff decremented by the constant \a scalar
|
|
271
|
+
*
|
|
272
|
+
* \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
|
|
273
|
+
*
|
|
274
|
+
* Example: \include Cwise_minus.cpp
|
|
275
|
+
* Output: \verbinclude Cwise_minus.out
|
|
276
|
+
*
|
|
277
|
+
* \sa operator+=(), operator-()
|
|
278
|
+
*/
|
|
279
|
+
template <typename T>
|
|
280
|
+
const CwiseBinaryOp<internal::scalar_difference_op<Scalar, T>, Derived, Constant<T> > operator-(const T &scalar) const;
|
|
281
|
+
/** \returns an expression of the constant matrix of value \a scalar decremented by the coefficients of \a expr
|
|
282
|
+
*
|
|
283
|
+
* \tparam T is the scalar type of \a scalar. It must be compatible with the scalar type of the given expression.
|
|
284
|
+
*/
|
|
285
|
+
template <typename T>
|
|
286
|
+
friend const CwiseBinaryOp<internal::scalar_difference_op<T, Scalar>, Constant<T>, Derived> operator-(
|
|
287
|
+
const T &scalar, const StorageBaseType &expr);
|
|
288
|
+
#endif
|
|
289
|
+
|
|
290
|
+
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
|
291
|
+
EIGEN_MAKE_SCALAR_BINARY_OP_ONTHELEFT(operator/, quotient)
|
|
292
|
+
#else
|
|
293
|
+
/**
|
|
294
|
+
* \brief Component-wise division of the scalar \a s by array elements of \a a.
|
|
295
|
+
*
|
|
296
|
+
* \tparam Scalar is the scalar type of \a x. It must be compatible with the scalar type of the given array expression
|
|
297
|
+
* (\c Derived::Scalar).
|
|
298
|
+
*/
|
|
299
|
+
template <typename T>
|
|
300
|
+
friend inline const CwiseBinaryOp<internal::scalar_quotient_op<T, Scalar>, Constant<T>, Derived> operator/(
|
|
301
|
+
const T &s, const StorageBaseType &a);
|
|
302
|
+
#endif
|
|
303
|
+
|
|
304
|
+
// NOTE disabled until we agree on argument order
|
|
305
|
+
#if 0
|
|
306
|
+
/** \cpp11 \returns an expression of the coefficient-wise polygamma function.
|
|
307
|
+
*
|
|
308
|
+
* \specialfunctions_module
|
|
309
|
+
*
|
|
310
|
+
* It returns the \a n -th derivative of the digamma(psi) evaluated at \c *this.
|
|
311
|
+
*
|
|
312
|
+
* \warning Be careful with the order of the parameters: x.polygamma(n) is equivalent to polygamma(n,x)
|
|
313
|
+
*
|
|
314
|
+
* \sa Eigen::polygamma()
|
|
315
|
+
*/
|
|
316
|
+
template<typename DerivedN>
|
|
317
|
+
inline const CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>, const DerivedN, const Derived>
|
|
318
|
+
polygamma(const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedN> &n) const
|
|
319
|
+
{
|
|
320
|
+
return CwiseBinaryOp<internal::scalar_polygamma_op<Scalar>, const DerivedN, const Derived>(n.derived(), this->derived());
|
|
321
|
+
}
|
|
322
|
+
#endif
|
|
323
|
+
|
|
324
|
+
/** \returns an expression of the coefficient-wise zeta function.
|
|
325
|
+
*
|
|
326
|
+
* \specialfunctions_module
|
|
327
|
+
*
|
|
328
|
+
* It returns the Riemann zeta function of two arguments \c *this and \a q:
|
|
329
|
+
*
|
|
330
|
+
* \param q is the shift, it must be > 0
|
|
331
|
+
*
|
|
332
|
+
* \note *this is the exponent, it must be > 1.
|
|
333
|
+
* \note This function supports only float and double scalar types. To support other scalar types, the user has
|
|
334
|
+
* to provide implementations of zeta(T,T) for any scalar type T to be supported.
|
|
335
|
+
*
|
|
336
|
+
* This method is an alias for zeta(*this,q);
|
|
337
|
+
*
|
|
338
|
+
* \sa Eigen::zeta()
|
|
339
|
+
*/
|
|
340
|
+
template <typename DerivedQ>
|
|
341
|
+
inline const CwiseBinaryOp<internal::scalar_zeta_op<Scalar>, const Derived, const DerivedQ> zeta(
|
|
342
|
+
const EIGEN_CURRENT_STORAGE_BASE_CLASS<DerivedQ> &q) const {
|
|
343
|
+
return CwiseBinaryOp<internal::scalar_zeta_op<Scalar>, const Derived, const DerivedQ>(this->derived(), q.derived());
|
|
344
|
+
}
|