@smake/eigen 1.0.2 → 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.
Files changed (435) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -21
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +235 -326
  6. package/eigen/Eigen/Eigenvalues +16 -14
  7. package/eigen/Eigen/Geometry +21 -24
  8. package/eigen/Eigen/Householder +9 -8
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -14
  11. package/eigen/Eigen/KLUSupport +43 -0
  12. package/eigen/Eigen/LU +16 -20
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -54
  15. package/eigen/Eigen/PaStiXSupport +23 -20
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -21
  18. package/eigen/Eigen/QtAlignedMalloc +5 -13
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -18
  21. package/eigen/Eigen/Sparse +1 -4
  22. package/eigen/Eigen/SparseCholesky +18 -23
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +12 -8
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
  37. package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
  42. package/eigen/Eigen/src/Core/Array.h +341 -294
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
  48. package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
  49. package/eigen/Eigen/src/Core/Block.h +375 -398
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
  53. package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
  59. package/eigen/Eigen/src/Core/DenseBase.h +632 -571
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
  61. package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +169 -210
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +172 -222
  67. package/eigen/Eigen/src/Core/EigenBase.h +75 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
  75. package/eigen/Eigen/src/Core/IO.h +147 -139
  76. package/eigen/Eigen/src/Core/IndexedView.h +321 -0
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +56 -66
  80. package/eigen/Eigen/src/Core/Map.h +124 -142
  81. package/eigen/Eigen/src/Core/MapBase.h +256 -281
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
  84. package/eigen/Eigen/src/Core/Matrix.h +491 -416
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
  86. package/eigen/Eigen/src/Core/NestByValue.h +66 -85
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -85
  88. package/eigen/Eigen/src/Core/NumTraits.h +235 -148
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
  92. package/eigen/Eigen/src/Core/Product.h +260 -139
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
  94. package/eigen/Eigen/src/Core/Random.h +161 -136
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +366 -336
  98. package/eigen/Eigen/src/Core/Ref.h +308 -209
  99. package/eigen/Eigen/src/Core/Replicate.h +94 -106
  100. package/eigen/Eigen/src/Core/Reshaped.h +398 -0
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +136 -145
  103. package/eigen/Eigen/src/Core/Select.h +70 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +97 -111
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
  109. package/eigen/Eigen/src/Core/SolverBase.h +138 -101
  110. package/eigen/Eigen/src/Core/StableNorm.h +156 -160
  111. package/eigen/Eigen/src/Core/StlIterators.h +619 -0
  112. package/eigen/Eigen/src/Core/Stride.h +91 -88
  113. package/eigen/Eigen/src/Core/Swap.h +70 -38
  114. package/eigen/Eigen/src/Core/Transpose.h +295 -273
  115. package/eigen/Eigen/src/Core/Transpositions.h +272 -317
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
  119. package/eigen/Eigen/src/Core/Visitor.h +480 -216
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  217. package/eigen/Eigen/src/Core/util/Constants.h +314 -263
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
  226. package/eigen/Eigen/src/Core/util/Macros.h +939 -646
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
  229. package/eigen/Eigen/src/Core/util/Meta.h +618 -426
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
  264. package/eigen/Eigen/src/Geometry/Transform.h +896 -953
  265. package/eigen/Eigen/src/Geometry/Translation.h +100 -98
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
  269. package/eigen/Eigen/src/Householder/Householder.h +104 -122
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  285. package/eigen/Eigen/src/LU/Determinant.h +60 -63
  286. package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/lib/LibEigen.d.ts +4 -0
  409. package/lib/LibEigen.js +14 -0
  410. package/lib/index.d.ts +1 -1
  411. package/lib/index.js +7 -3
  412. package/package.json +2 -10
  413. package/eigen/Eigen/CMakeLists.txt +0 -19
  414. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
  415. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
  416. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  417. package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
  418. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  419. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  420. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  421. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  422. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  423. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  424. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  425. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  426. package/eigen/Eigen/src/misc/lapack.h +0 -152
  427. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
  428. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
  429. package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
  430. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  431. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
  432. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  433. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
  434. package/lib/eigen.d.ts +0 -2
  435. package/lib/eigen.js +0 -15
@@ -3,6 +3,7 @@
3
3
  //
4
4
  // Copyright (C) 2008-2015 Gael Guennebaud <gael.guennebaud@inria.fr>
5
5
  // Copyright (C) 2007-2009 Benoit Jacob <jacob.benoit.1@gmail.com>
6
+ // Copyright (C) 2020, Arm Limited and Contributors
6
7
  //
7
8
  // This Source Code Form is subject to the terms of the Mozilla
8
9
  // Public License v. 2.0. If a copy of the MPL was not distributed
@@ -11,165 +12,173 @@
11
12
  #ifndef EIGEN_CONSTANTS_H
12
13
  #define EIGEN_CONSTANTS_H
13
14
 
15
+ // IWYU pragma: private
16
+ #include "../InternalHeaderCheck.h"
17
+
14
18
  namespace Eigen {
15
19
 
16
20
  /** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
17
- * stored in some runtime variable.
18
- *
19
- * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
20
- */
21
+ * stored in some runtime variable.
22
+ *
23
+ * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
24
+ */
21
25
  const int Dynamic = -1;
22
26
 
23
- /** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
24
- * has to be specified at runtime.
25
- */
27
+ /** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its
28
+ * value has to be specified at runtime.
29
+ */
26
30
  const int DynamicIndex = 0xffffff;
27
31
 
32
+ /** This value means that the requested value is not defined.
33
+ */
34
+ const int Undefined = 0xfffffe;
35
+
28
36
  /** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
29
- * The value Infinity there means the L-infinity norm.
30
- */
37
+ * The value Infinity there means the L-infinity norm.
38
+ */
31
39
  const int Infinity = -1;
32
40
 
33
41
  /** This value means that the cost to evaluate an expression coefficient is either very expensive or
34
- * cannot be known at compile time.
35
- *
36
- * This value has to be positive to (1) simplify cost computation, and (2) allow to distinguish between a very expensive and very very expensive expressions.
37
- * It thus must also be large enough to make sure unrolling won't happen and that sub expressions will be evaluated, but not too large to avoid overflow.
38
- */
42
+ * cannot be known at compile time.
43
+ *
44
+ * This value has to be positive to (1) simplify cost computation, and (2) allow to distinguish between a very expensive
45
+ * and very very expensive expressions. It thus must also be large enough to make sure unrolling won't happen and that
46
+ * sub expressions will be evaluated, but not too large to avoid overflow.
47
+ */
39
48
  const int HugeCost = 10000;
40
49
 
41
50
  /** \defgroup flags Flags
42
- * \ingroup Core_Module
43
- *
44
- * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
45
- * expression.
46
- *
47
- * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
48
- * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
49
- * runtime overhead.
50
- *
51
- * \sa MatrixBase::Flags
52
- */
51
+ * \ingroup Core_Module
52
+ *
53
+ * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
54
+ * expression.
55
+ *
56
+ * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
57
+ * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
58
+ * runtime overhead.
59
+ *
60
+ * \sa MatrixBase::Flags
61
+ */
53
62
 
54
63
  /** \ingroup flags
55
- *
56
- * for a matrix, this means that the storage order is row-major.
57
- * If this bit is not set, the storage order is column-major.
58
- * For an expression, this determines the storage order of
59
- * the matrix created by evaluation of that expression.
60
- * \sa \blank \ref TopicStorageOrders */
64
+ *
65
+ * for a matrix, this means that the storage order is row-major.
66
+ * If this bit is not set, the storage order is column-major.
67
+ * For an expression, this determines the storage order of
68
+ * the matrix created by evaluation of that expression.
69
+ * \sa \blank \ref TopicStorageOrders */
61
70
  const unsigned int RowMajorBit = 0x1;
62
71
 
63
72
  /** \ingroup flags
64
- * means the expression should be evaluated by the calling expression */
73
+ * means the expression should be evaluated by the calling expression */
65
74
  const unsigned int EvalBeforeNestingBit = 0x2;
66
75
 
67
76
  /** \ingroup flags
68
- * \deprecated
69
- * means the expression should be evaluated before any assignment */
70
- EIGEN_DEPRECATED
71
- const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated
77
+ * \deprecated
78
+ * means the expression should be evaluated before any assignment */
79
+ EIGEN_DEPRECATED const unsigned int EvalBeforeAssigningBit = 0x4; // FIXME deprecated
72
80
 
73
81
  /** \ingroup flags
74
- *
75
- * Short version: means the expression might be vectorized
76
- *
77
- * Long version: means that the coefficients can be handled by packets
78
- * and start at a memory location whose alignment meets the requirements
79
- * of the present CPU architecture for optimized packet access. In the fixed-size
80
- * case, there is the additional condition that it be possible to access all the
81
- * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
82
- * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
83
- * there is no such condition on the total size and strides, so it might not be possible to access
84
- * all coeffs by packets.
85
- *
86
- * \note This bit can be set regardless of whether vectorization is actually enabled.
87
- * To check for actual vectorizability, see \a ActualPacketAccessBit.
88
- */
82
+ *
83
+ * Short version: means the expression might be vectorized
84
+ *
85
+ * Long version: means that the coefficients can be handled by packets
86
+ * and start at a memory location whose alignment meets the requirements
87
+ * of the present CPU architecture for optimized packet access. In the fixed-size
88
+ * case, there is the additional condition that it be possible to access all the
89
+ * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
90
+ * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
91
+ * there is no such condition on the total size and strides, so it might not be possible to access
92
+ * all coeffs by packets.
93
+ *
94
+ * \note This bit can be set regardless of whether vectorization is actually enabled.
95
+ * To check for actual vectorizability, see \a ActualPacketAccessBit.
96
+ */
89
97
  const unsigned int PacketAccessBit = 0x8;
90
98
 
91
99
  #ifdef EIGEN_VECTORIZE
92
100
  /** \ingroup flags
93
- *
94
- * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
95
- * is set to the value \a PacketAccessBit.
96
- *
97
- * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
98
- * is set to the value 0.
99
- */
101
+ *
102
+ * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
103
+ * is set to the value \a PacketAccessBit.
104
+ *
105
+ * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
106
+ * is set to the value 0.
107
+ */
100
108
  const unsigned int ActualPacketAccessBit = PacketAccessBit;
101
109
  #else
102
110
  const unsigned int ActualPacketAccessBit = 0x0;
103
111
  #endif
104
112
 
105
113
  /** \ingroup flags
106
- *
107
- * Short version: means the expression can be seen as 1D vector.
108
- *
109
- * Long version: means that one can access the coefficients
110
- * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
111
- * index-based access methods are guaranteed
112
- * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
113
- * is guaranteed that whenever it is available, index-based access is at least as fast as
114
- * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
115
- *
116
- * If both PacketAccessBit and LinearAccessBit are set, then the
117
- * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
118
- * lvalue expression.
119
- *
120
- * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
121
- * Product expressions don't have it, because it would be troublesome for vectorization, even when the
122
- * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
123
- * not index-based packet access, so they don't have the LinearAccessBit.
124
- */
114
+ *
115
+ * Short version: means the expression can be seen as 1D vector.
116
+ *
117
+ * Long version: means that one can access the coefficients
118
+ * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
119
+ * index-based access methods are guaranteed
120
+ * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
121
+ * is guaranteed that whenever it is available, index-based access is at least as fast as
122
+ * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
123
+ *
124
+ * If both PacketAccessBit and LinearAccessBit are set, then the
125
+ * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
126
+ * lvalue expression.
127
+ *
128
+ * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
129
+ * Product expressions don't have it, because it would be troublesome for vectorization, even when the
130
+ * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
131
+ * not index-based packet access, so they don't have the LinearAccessBit.
132
+ */
125
133
  const unsigned int LinearAccessBit = 0x10;
126
134
 
127
135
  /** \ingroup flags
128
- *
129
- * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
130
- * This rules out read-only expressions.
131
- *
132
- * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
133
- * the other:
134
- * \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
135
- * \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
136
- *
137
- * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
138
- */
136
+ *
137
+ * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly
138
+ * addressable. This rules out read-only expressions.
139
+ *
140
+ * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but
141
+ * not the other: \li writable expressions that don't have a very simple memory layout as a strided array, have
142
+ * LvalueBit but not DirectAccessBit \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit
143
+ * but not LvalueBit
144
+ *
145
+ * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new
146
+ * value.
147
+ */
139
148
  const unsigned int LvalueBit = 0x20;
140
149
 
141
150
  /** \ingroup flags
142
- *
143
- * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
144
- * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
145
- * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
146
- * though referencable, do not have such a regular memory layout.
147
- *
148
- * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
149
- */
151
+ *
152
+ * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
153
+ * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
154
+ * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
155
+ * though referenceable, do not have such a regular memory layout.
156
+ *
157
+ * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
158
+ */
150
159
  const unsigned int DirectAccessBit = 0x40;
151
160
 
152
161
  /** \deprecated \ingroup flags
153
- *
154
- * means the first coefficient packet is guaranteed to be aligned.
155
- * An expression cannot has the AlignedBit without the PacketAccessBit flag.
156
- * In other words, this means we are allow to perform an aligned packet access to the first element regardless
157
- * of the expression kind:
158
- * \code
159
- * expression.packet<Aligned>(0);
160
- * \endcode
161
- */
162
+ *
163
+ * means the first coefficient packet is guaranteed to be aligned.
164
+ * An expression cannot have the AlignedBit without the PacketAccessBit flag.
165
+ * In other words, this means we are allow to perform an aligned packet access to the first element regardless
166
+ * of the expression kind:
167
+ * \code
168
+ * expression.packet<Aligned>(0);
169
+ * \endcode
170
+ */
162
171
  EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
163
172
 
164
173
  const unsigned int NestByRefBit = 0x100;
165
174
 
166
175
  /** \ingroup flags
167
- *
168
- * for an expression, this means that the storage order
169
- * can be either row-major or column-major.
170
- * The precise choice will be decided at evaluation time or when
171
- * combined with other expressions.
172
- * \sa \blank \ref RowMajorBit, \ref TopicStorageOrders */
176
+ *
177
+ * for an expression, this means that the storage order
178
+ * can be either row-major or column-major.
179
+ * The precise choice will be decided at evaluation time or when
180
+ * combined with other expressions.
181
+ * \sa \blank \ref RowMajorBit, \ref TopicStorageOrders */
173
182
  const unsigned int NoPreferredStorageOrderBit = 0x200;
174
183
 
175
184
  /** \ingroup flags
@@ -185,65 +194,63 @@ const unsigned int NoPreferredStorageOrderBit = 0x200;
185
194
  */
186
195
  const unsigned int CompressedAccessBit = 0x400;
187
196
 
188
-
189
197
  // list of flags that are inherited by default
190
- const unsigned int HereditaryBits = RowMajorBit
191
- | EvalBeforeNestingBit;
198
+ const unsigned int HereditaryBits = RowMajorBit | EvalBeforeNestingBit;
192
199
 
193
200
  /** \defgroup enums Enumerations
194
- * \ingroup Core_Module
195
- *
196
- * Various enumerations used in %Eigen. Many of these are used as template parameters.
197
- */
201
+ * \ingroup Core_Module
202
+ *
203
+ * Various enumerations used in %Eigen. Many of these are used as template parameters.
204
+ */
198
205
 
199
206
  /** \ingroup enums
200
- * Enum containing possible values for the \c Mode or \c UpLo parameter of
201
- * MatrixBase::selfadjointView() and MatrixBase::triangularView(), and selfadjoint solvers. */
207
+ * Enum containing possible values for the \c Mode or \c UpLo parameter of
208
+ * MatrixBase::selfadjointView() and MatrixBase::triangularView(), and selfadjoint solvers. */
202
209
  enum UpLoType {
203
210
  /** View matrix as a lower triangular matrix. */
204
- Lower=0x1,
211
+ Lower = 0x1,
205
212
  /** View matrix as an upper triangular matrix. */
206
- Upper=0x2,
213
+ Upper = 0x2,
207
214
  /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
208
- UnitDiag=0x4,
215
+ UnitDiag = 0x4,
209
216
  /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
210
- ZeroDiag=0x8,
217
+ ZeroDiag = 0x8,
211
218
  /** View matrix as a lower triangular matrix with ones on the diagonal. */
212
- UnitLower=UnitDiag|Lower,
219
+ UnitLower = UnitDiag | Lower,
213
220
  /** View matrix as an upper triangular matrix with ones on the diagonal. */
214
- UnitUpper=UnitDiag|Upper,
221
+ UnitUpper = UnitDiag | Upper,
215
222
  /** View matrix as a lower triangular matrix with zeros on the diagonal. */
216
- StrictlyLower=ZeroDiag|Lower,
223
+ StrictlyLower = ZeroDiag | Lower,
217
224
  /** View matrix as an upper triangular matrix with zeros on the diagonal. */
218
- StrictlyUpper=ZeroDiag|Upper,
225
+ StrictlyUpper = ZeroDiag | Upper,
219
226
  /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
220
- SelfAdjoint=0x10,
227
+ SelfAdjoint = 0x10,
221
228
  /** Used to support symmetric, non-selfadjoint, complex matrices. */
222
- Symmetric=0x20
229
+ Symmetric = 0x20
223
230
  };
224
231
 
225
232
  /** \ingroup enums
226
- * Enum for indicating whether a buffer is aligned or not. */
233
+ * Enum for indicating whether a buffer is aligned or not. */
227
234
  enum AlignmentType {
228
- Unaligned=0, /**< Data pointer has no specific alignment. */
229
- Aligned8=8, /**< Data pointer is aligned on a 8 bytes boundary. */
230
- Aligned16=16, /**< Data pointer is aligned on a 16 bytes boundary. */
231
- Aligned32=32, /**< Data pointer is aligned on a 32 bytes boundary. */
232
- Aligned64=64, /**< Data pointer is aligned on a 64 bytes boundary. */
233
- Aligned128=128, /**< Data pointer is aligned on a 128 bytes boundary. */
234
- AlignedMask=255,
235
- Aligned=16, /**< \deprecated Synonym for Aligned16. */
236
- #if EIGEN_MAX_ALIGN_BYTES==128
235
+ Unaligned = 0, /**< Data pointer has no specific alignment. */
236
+ Aligned8 = 8, /**< Data pointer is aligned on a 8 bytes boundary. */
237
+ Aligned16 = 16, /**< Data pointer is aligned on a 16 bytes boundary. */
238
+ Aligned32 = 32, /**< Data pointer is aligned on a 32 bytes boundary. */
239
+ Aligned64 = 64, /**< Data pointer is aligned on a 64 bytes boundary. */
240
+ Aligned128 = 128, /**< Data pointer is aligned on a 128 bytes boundary. */
241
+ AlignedMask = 255,
242
+ Aligned = 16, /**< \deprecated Synonym for Aligned16. */
243
+ #if EIGEN_MAX_ALIGN_BYTES == 128
237
244
  AlignedMax = Aligned128
238
- #elif EIGEN_MAX_ALIGN_BYTES==64
245
+ #elif EIGEN_MAX_ALIGN_BYTES == 64
239
246
  AlignedMax = Aligned64
240
- #elif EIGEN_MAX_ALIGN_BYTES==32
247
+ #elif EIGEN_MAX_ALIGN_BYTES == 32
241
248
  AlignedMax = Aligned32
242
- #elif EIGEN_MAX_ALIGN_BYTES==16
249
+ #elif EIGEN_MAX_ALIGN_BYTES == 16
243
250
  AlignedMax = Aligned16
244
- #elif EIGEN_MAX_ALIGN_BYTES==8
251
+ #elif EIGEN_MAX_ALIGN_BYTES == 8
245
252
  AlignedMax = Aligned8
246
- #elif EIGEN_MAX_ALIGN_BYTES==0
253
+ #elif EIGEN_MAX_ALIGN_BYTES == 0
247
254
  AlignedMax = Unaligned
248
255
  #else
249
256
  #error Invalid value for EIGEN_MAX_ALIGN_BYTES
@@ -251,41 +258,35 @@ enum AlignmentType {
251
258
  };
252
259
 
253
260
  /** \ingroup enums
254
- * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
255
- // FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
256
- // TODO: find out what to do with that. Adapt the AlignedBox API ?
257
- enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
258
-
259
- /** \ingroup enums
260
- * Enum containing possible values for the \p Direction parameter of
261
- * Reverse, PartialReduxExpr and VectorwiseOp. */
262
- enum DirectionType {
263
- /** For Reverse, all columns are reversed;
264
- * for PartialReduxExpr and VectorwiseOp, act on columns. */
265
- Vertical,
266
- /** For Reverse, all rows are reversed;
267
- * for PartialReduxExpr and VectorwiseOp, act on rows. */
268
- Horizontal,
269
- /** For Reverse, both rows and columns are reversed;
270
- * not used for PartialReduxExpr and VectorwiseOp. */
271
- BothDirections
261
+ * Enum containing possible values for the \p Direction parameter of
262
+ * Reverse, PartialReduxExpr and VectorwiseOp. */
263
+ enum DirectionType {
264
+ /** For Reverse, all columns are reversed;
265
+ * for PartialReduxExpr and VectorwiseOp, act on columns. */
266
+ Vertical,
267
+ /** For Reverse, all rows are reversed;
268
+ * for PartialReduxExpr and VectorwiseOp, act on rows. */
269
+ Horizontal,
270
+ /** For Reverse, both rows and columns are reversed;
271
+ * not used for PartialReduxExpr and VectorwiseOp. */
272
+ BothDirections
272
273
  };
273
274
 
274
275
  /** \internal \ingroup enums
275
- * Enum to specify how to traverse the entries of a matrix. */
276
+ * Enum to specify how to traverse the entries of a matrix. */
276
277
  enum TraversalType {
277
278
  /** \internal Default traversal, no vectorization, no index-based access */
278
279
  DefaultTraversal,
279
280
  /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
280
281
  LinearTraversal,
281
282
  /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
282
- * and good size */
283
+ * and good size */
283
284
  InnerVectorizedTraversal,
284
285
  /** \internal Vectorization path using a single loop plus scalar loops for the
285
- * unaligned boundaries */
286
+ * unaligned boundaries */
286
287
  LinearVectorizedTraversal,
287
288
  /** \internal Generic vectorization path using one vectorized loop per row/column with some
288
- * scalar loops to handle the unaligned boundaries */
289
+ * scalar loops to handle the unaligned boundaries */
289
290
  SliceVectorizedTraversal,
290
291
  /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
291
292
  InvalidTraversal,
@@ -294,27 +295,24 @@ enum TraversalType {
294
295
  };
295
296
 
296
297
  /** \internal \ingroup enums
297
- * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
298
+ * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
298
299
  enum UnrollingType {
299
300
  /** \internal Do not unroll loops. */
300
301
  NoUnrolling,
301
302
  /** \internal Unroll only the inner loop, but not the outer loop. */
302
303
  InnerUnrolling,
303
- /** \internal Unroll both the inner and the outer loop. If there is only one loop,
304
- * because linear traversal is used, then unroll that loop. */
304
+ /** \internal Unroll both the inner and the outer loop. If there is only one loop,
305
+ * because linear traversal is used, then unroll that loop. */
305
306
  CompleteUnrolling
306
307
  };
307
308
 
308
309
  /** \internal \ingroup enums
309
- * Enum to specify whether to use the default (built-in) implementation or the specialization. */
310
- enum SpecializedType {
311
- Specialized,
312
- BuiltIn
313
- };
310
+ * Enum to specify whether to use the default (built-in) implementation or the specialization. */
311
+ enum SpecializedType { Specialized, BuiltIn };
314
312
 
315
313
  /** \ingroup enums
316
- * Enum containing possible values for the \p _Options template parameter of
317
- * Matrix, Array and BandMatrix. */
314
+ * Enum containing possible values for the \p Options_ template parameter of
315
+ * Matrix, Array and BandMatrix. */
318
316
  enum StorageOptions {
319
317
  /** Storage order is column major (see \ref TopicStorageOrders). */
320
318
  ColMajor = 0,
@@ -327,12 +325,23 @@ enum StorageOptions {
327
325
  };
328
326
 
329
327
  /** \ingroup enums
330
- * Enum for specifying whether to apply or solve on the left or right. */
328
+ * Enum for specifying whether to apply or solve on the left or right. */
331
329
  enum SideType {
332
330
  /** Apply transformation on the left. */
333
- OnTheLeft = 1,
331
+ OnTheLeft = 1,
334
332
  /** Apply transformation on the right. */
335
- OnTheRight = 2
333
+ OnTheRight = 2
334
+ };
335
+
336
+ /** \ingroup enums
337
+ * Enum for specifying NaN-propagation behavior, e.g. for coeff-wise min/max. */
338
+ enum NaNPropagationOptions {
339
+ /** Implementation defined behavior if NaNs are present. */
340
+ PropagateFast = 0,
341
+ /** Always propagate NaNs. */
342
+ PropagateNaN,
343
+ /** Always propagate not-NaNs. */
344
+ PropagateNumbers
336
345
  };
337
346
 
338
347
  /* the following used to be written as:
@@ -342,83 +351,82 @@ enum SideType {
342
351
  * EIGEN_UNUSED NoChange_t NoChange;
343
352
  * }
344
353
  *
345
- * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
354
+ * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
346
355
  * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
347
356
  * and we do not know how to get rid of them (bug 450).
348
357
  */
349
358
 
350
- enum NoChange_t { NoChange };
359
+ enum NoChange_t { NoChange };
351
360
  enum Sequential_t { Sequential };
352
- enum Default_t { Default };
361
+ enum Default_t { Default };
353
362
 
354
363
  /** \internal \ingroup enums
355
- * Used in AmbiVector. */
356
- enum AmbiVectorMode {
357
- IsDense = 0,
358
- IsSparse
359
- };
364
+ * Used in AmbiVector. */
365
+ enum AmbiVectorMode { IsDense = 0, IsSparse };
360
366
 
361
367
  /** \ingroup enums
362
- * Used as template parameter in DenseCoeffBase and MapBase to indicate
363
- * which accessors should be provided. */
368
+ * Used as template parameter in DenseCoeffBase and MapBase to indicate
369
+ * which accessors should be provided. */
364
370
  enum AccessorLevels {
365
371
  /** Read-only access via a member function. */
366
- ReadOnlyAccessors,
372
+ ReadOnlyAccessors,
367
373
  /** Read/write access via member functions. */
368
- WriteAccessors,
374
+ WriteAccessors,
369
375
  /** Direct read-only access to the coefficients. */
370
- DirectAccessors,
376
+ DirectAccessors,
371
377
  /** Direct read/write access to the coefficients. */
372
378
  DirectWriteAccessors
373
379
  };
374
380
 
375
381
  /** \ingroup enums
376
- * Enum with options to give to various decompositions. */
382
+ * Enum with options to give to various decompositions. */
377
383
  enum DecompositionOptions {
378
384
  /** \internal Not used (meant for LDLT?). */
379
- Pivoting = 0x01,
385
+ Pivoting = 0x01,
380
386
  /** \internal Not used (meant for LDLT?). */
381
- NoPivoting = 0x02,
387
+ NoPivoting = 0x02,
382
388
  /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
383
- ComputeFullU = 0x04,
389
+ ComputeFullU = 0x04,
384
390
  /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
385
- ComputeThinU = 0x08,
391
+ ComputeThinU = 0x08,
386
392
  /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
387
- ComputeFullV = 0x10,
393
+ ComputeFullV = 0x10,
388
394
  /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
389
- ComputeThinV = 0x20,
395
+ ComputeThinV = 0x20,
390
396
  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
391
- * that only the eigenvalues are to be computed and not the eigenvectors. */
392
- EigenvaluesOnly = 0x40,
397
+ * that only the eigenvalues are to be computed and not the eigenvectors. */
398
+ EigenvaluesOnly = 0x40,
393
399
  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
394
- * that both the eigenvalues and the eigenvectors are to be computed. */
400
+ * that both the eigenvalues and the eigenvectors are to be computed. */
395
401
  ComputeEigenvectors = 0x80,
396
402
  /** \internal */
397
403
  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
398
404
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
399
- * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
400
- Ax_lBx = 0x100,
405
+ * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
406
+ Ax_lBx = 0x100,
401
407
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
402
- * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
403
- ABx_lx = 0x200,
408
+ * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
409
+ ABx_lx = 0x200,
404
410
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
405
- * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
406
- BAx_lx = 0x400,
411
+ * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
412
+ BAx_lx = 0x400,
407
413
  /** \internal */
408
414
  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
409
415
  };
410
416
 
411
417
  /** \ingroup enums
412
- * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
418
+ * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
413
419
  enum QRPreconditioners {
420
+ /** Use a QR decomposition with column pivoting as the first step. */
421
+ ColPivHouseholderQRPreconditioner = 0x0,
414
422
  /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
415
- NoQRPreconditioner,
423
+ NoQRPreconditioner = 0x40,
416
424
  /** Use a QR decomposition without pivoting as the first step. */
417
- HouseholderQRPreconditioner,
418
- /** Use a QR decomposition with column pivoting as the first step. */
419
- ColPivHouseholderQRPreconditioner,
425
+ HouseholderQRPreconditioner = 0x80,
420
426
  /** Use a QR decomposition with full pivoting as the first step. */
421
- FullPivHouseholderQRPreconditioner
427
+ FullPivHouseholderQRPreconditioner = 0xC0,
428
+ /** Used to disable the QR Preconditioner in BDCSVD. */
429
+ DisableQRDecomposition = NoQRPreconditioner
422
430
  };
423
431
 
424
432
  #ifdef Success
@@ -426,66 +434,86 @@ enum QRPreconditioners {
426
434
  #endif
427
435
 
428
436
  /** \ingroup enums
429
- * Enum for reporting the status of a computation. */
437
+ * Enum for reporting the status of a computation. */
430
438
  enum ComputationInfo {
431
439
  /** Computation was successful. */
432
- Success = 0,
440
+ Success = 0,
433
441
  /** The provided data did not satisfy the prerequisites. */
434
- NumericalIssue = 1,
442
+ NumericalIssue = 1,
435
443
  /** Iterative procedure did not converge. */
436
444
  NoConvergence = 2,
437
445
  /** The inputs are invalid, or the algorithm has been improperly called.
438
- * When assertions are enabled, such errors trigger an assert. */
446
+ * When assertions are enabled, such errors trigger an assert. */
439
447
  InvalidInput = 3
440
448
  };
441
449
 
442
450
  /** \ingroup enums
443
- * Enum used to specify how a particular transformation is stored in a matrix.
444
- * \sa Transform, Hyperplane::transform(). */
451
+ * Enum used to specify how a particular transformation is stored in a matrix.
452
+ * \sa Transform, Hyperplane::transform(). */
445
453
  enum TransformTraits {
446
454
  /** Transformation is an isometry. */
447
- Isometry = 0x1,
448
- /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
449
- * assumed to be [0 ... 0 1]. */
450
- Affine = 0x2,
455
+ Isometry = 0x1,
456
+ /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
457
+ * assumed to be [0 ... 0 1]. */
458
+ Affine = 0x2,
451
459
  /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
452
460
  AffineCompact = 0x10 | Affine,
453
461
  /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
454
- Projective = 0x20
462
+ Projective = 0x20
455
463
  };
456
464
 
457
465
  /** \internal \ingroup enums
458
- * Enum used to choose between implementation depending on the computer architecture. */
459
- namespace Architecture
460
- {
461
- enum Type {
462
- Generic = 0x0,
463
- SSE = 0x1,
464
- AltiVec = 0x2,
465
- VSX = 0x3,
466
- NEON = 0x4,
466
+ * Enum used to choose between implementation depending on the computer architecture. */
467
+ namespace Architecture {
468
+ enum Type {
469
+ Generic = 0x0,
470
+ SSE = 0x1,
471
+ AltiVec = 0x2,
472
+ VSX = 0x3,
473
+ NEON = 0x4,
474
+ MSA = 0x5,
475
+ SVE = 0x6,
476
+ HVX = 0x7,
477
+ LSX = 0x8,
467
478
  #if defined EIGEN_VECTORIZE_SSE
468
- Target = SSE
479
+ Target = SSE
469
480
  #elif defined EIGEN_VECTORIZE_ALTIVEC
470
- Target = AltiVec
481
+ Target = AltiVec
471
482
  #elif defined EIGEN_VECTORIZE_VSX
472
- Target = VSX
483
+ Target = VSX
473
484
  #elif defined EIGEN_VECTORIZE_NEON
474
- Target = NEON
485
+ Target = NEON
486
+ #elif defined EIGEN_VECTORIZE_SVE
487
+ Target = SVE
488
+ #elif defined EIGEN_VECTORIZE_MSA
489
+ Target = MSA
490
+ #elif defined EIGEN_VECTORIZE_HVX
491
+ Target = HVX
492
+ #elif defined EIGEN_VECTORIZE_LSX
493
+ Target = LSX
475
494
  #else
476
- Target = Generic
495
+ Target = Generic
477
496
  #endif
478
- };
479
- }
497
+ };
498
+ } // namespace Architecture
480
499
 
481
500
  /** \internal \ingroup enums
482
- * Enum used as template parameter in Product and product evaluators. */
483
- enum ProductImplType
484
- { DefaultProduct=0, LazyProduct, AliasFreeProduct, CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
501
+ * Enum used as template parameter in Product and product evaluators. */
502
+ enum ProductImplType {
503
+ DefaultProduct = 0,
504
+ LazyProduct,
505
+ AliasFreeProduct,
506
+ CoeffBasedProductMode,
507
+ LazyCoeffBasedProductMode,
508
+ OuterProduct,
509
+ InnerProduct,
510
+ GemvProduct,
511
+ GemmProduct
512
+ };
485
513
 
486
514
  /** \internal \ingroup enums
487
- * Enum used in experimental parallel implementation. */
488
- enum Action {GetAction, SetAction};
515
+ * Enum used in experimental parallel implementation. */
516
+ enum Action { GetAction, SetAction };
489
517
 
490
518
  /** The type used to identify a dense storage. */
491
519
  struct Dense {};
@@ -509,29 +537,52 @@ struct MatrixXpr {};
509
537
  struct ArrayXpr {};
510
538
 
511
539
  // An evaluator must define its shape. By default, it can be one of the following:
512
- struct DenseShape { static std::string debugName() { return "DenseShape"; } };
513
- struct SolverShape { static std::string debugName() { return "SolverShape"; } };
514
- struct HomogeneousShape { static std::string debugName() { return "HomogeneousShape"; } };
515
- struct DiagonalShape { static std::string debugName() { return "DiagonalShape"; } };
516
- struct BandShape { static std::string debugName() { return "BandShape"; } };
517
- struct TriangularShape { static std::string debugName() { return "TriangularShape"; } };
518
- struct SelfAdjointShape { static std::string debugName() { return "SelfAdjointShape"; } };
519
- struct PermutationShape { static std::string debugName() { return "PermutationShape"; } };
520
- struct TranspositionsShape { static std::string debugName() { return "TranspositionsShape"; } };
521
- struct SparseShape { static std::string debugName() { return "SparseShape"; } };
540
+ struct DenseShape {
541
+ static std::string debugName() { return "DenseShape"; }
542
+ };
543
+ struct SolverShape {
544
+ static std::string debugName() { return "SolverShape"; }
545
+ };
546
+ struct HomogeneousShape {
547
+ static std::string debugName() { return "HomogeneousShape"; }
548
+ };
549
+ struct DiagonalShape {
550
+ static std::string debugName() { return "DiagonalShape"; }
551
+ };
552
+ struct SkewSymmetricShape {
553
+ static std::string debugName() { return "SkewSymmetricShape"; }
554
+ };
555
+ struct BandShape {
556
+ static std::string debugName() { return "BandShape"; }
557
+ };
558
+ struct TriangularShape {
559
+ static std::string debugName() { return "TriangularShape"; }
560
+ };
561
+ struct SelfAdjointShape {
562
+ static std::string debugName() { return "SelfAdjointShape"; }
563
+ };
564
+ struct PermutationShape {
565
+ static std::string debugName() { return "PermutationShape"; }
566
+ };
567
+ struct TranspositionsShape {
568
+ static std::string debugName() { return "TranspositionsShape"; }
569
+ };
570
+ struct SparseShape {
571
+ static std::string debugName() { return "SparseShape"; }
572
+ };
522
573
 
523
574
  namespace internal {
524
575
 
525
- // random access iterators based on coeff*() accessors.
576
+ // random access iterators based on coeff*() accessors.
526
577
  struct IndexBased {};
527
578
 
528
- // evaluator based on iterators to access coefficients.
579
+ // evaluator based on iterators to access coefficients.
529
580
  struct IteratorBased {};
530
581
 
531
582
  /** \internal
532
583
  * Constants for comparison functors
533
584
  */
534
- enum ComparisonName {
585
+ enum ComparisonName : unsigned int {
535
586
  cmp_EQ = 0,
536
587
  cmp_LT = 1,
537
588
  cmp_LE = 2,
@@ -540,8 +591,8 @@ enum ComparisonName {
540
591
  cmp_GT = 5,
541
592
  cmp_GE = 6
542
593
  };
543
- } // end namespace internal
594
+ } // end namespace internal
544
595
 
545
- } // end namespace Eigen
596
+ } // end namespace Eigen
546
597
 
547
- #endif // EIGEN_CONSTANTS_H
598
+ #endif // EIGEN_CONSTANTS_H