@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.
Files changed (431) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -20
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +187 -120
  6. package/eigen/Eigen/Eigenvalues +16 -13
  7. package/eigen/Eigen/Geometry +18 -18
  8. package/eigen/Eigen/Householder +9 -7
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -13
  11. package/eigen/Eigen/KLUSupport +23 -21
  12. package/eigen/Eigen/LU +15 -16
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -51
  15. package/eigen/Eigen/PaStiXSupport +23 -21
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -20
  18. package/eigen/Eigen/QtAlignedMalloc +5 -12
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -17
  21. package/eigen/Eigen/Sparse +1 -2
  22. package/eigen/Eigen/SparseCholesky +18 -15
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +9 -9
  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 +366 -405
  37. package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
  42. package/eigen/Eigen/src/Core/Array.h +329 -370
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
  48. package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
  49. package/eigen/Eigen/src/Core/Block.h +371 -390
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
  53. package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
  59. package/eigen/Eigen/src/Core/DenseBase.h +630 -658
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
  61. package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +168 -207
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +167 -217
  67. package/eigen/Eigen/src/Core/EigenBase.h +74 -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 -113
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
  75. package/eigen/Eigen/src/Core/IO.h +131 -156
  76. package/eigen/Eigen/src/Core/IndexedView.h +209 -125
  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 +50 -59
  80. package/eigen/Eigen/src/Core/Map.h +123 -141
  81. package/eigen/Eigen/src/Core/MapBase.h +255 -282
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
  84. package/eigen/Eigen/src/Core/Matrix.h +463 -494
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
  86. package/eigen/Eigen/src/Core/NestByValue.h +58 -52
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -86
  88. package/eigen/Eigen/src/Core/NumTraits.h +206 -206
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
  92. package/eigen/Eigen/src/Core/Product.h +246 -130
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
  94. package/eigen/Eigen/src/Core/Random.h +153 -164
  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 +334 -314
  98. package/eigen/Eigen/src/Core/Ref.h +259 -257
  99. package/eigen/Eigen/src/Core/Replicate.h +92 -104
  100. package/eigen/Eigen/src/Core/Reshaped.h +215 -271
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +133 -148
  103. package/eigen/Eigen/src/Core/Select.h +68 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
  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 +88 -102
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
  109. package/eigen/Eigen/src/Core/SolverBase.h +132 -133
  110. package/eigen/Eigen/src/Core/StableNorm.h +113 -147
  111. package/eigen/Eigen/src/Core/StlIterators.h +404 -248
  112. package/eigen/Eigen/src/Core/Stride.h +90 -92
  113. package/eigen/Eigen/src/Core/Swap.h +70 -39
  114. package/eigen/Eigen/src/Core/Transpose.h +258 -295
  115. package/eigen/Eigen/src/Core/Transpositions.h +270 -333
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
  119. package/eigen/Eigen/src/Core/Visitor.h +464 -308
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
  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 +229 -41
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
  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 +2380 -1362
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
  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 +54 -82
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
  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 -47
  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 -277
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
  217. package/eigen/Eigen/src/Core/util/Constants.h +297 -262
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
  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 +417 -116
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
  226. package/eigen/Eigen/src/Core/util/Macros.h +655 -773
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +970 -748
  229. package/eigen/Eigen/src/Core/util/Meta.h +581 -633
  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 +17 -17
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
  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 +89 -105
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
  264. package/eigen/Eigen/src/Geometry/Transform.h +858 -936
  265. package/eigen/Eigen/src/Geometry/Translation.h +94 -92
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
  269. package/eigen/Eigen/src/Householder/Householder.h +102 -124
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
  285. package/eigen/Eigen/src/LU/Determinant.h +50 -69
  286. package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
  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 +243 -265
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
  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 -430
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
  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 +244 -264
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
  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 +577 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
  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 +1603 -1245
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
  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 +370 -416
  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 +138 -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 +756 -710
  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 +245 -301
  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 +89 -100
  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 +124 -132
  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 +450 -502
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
  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 -730
  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 +428 -464
  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 +9972 -16179
  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.h → BlockMethods.inc} +434 -506
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
  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/package.json +1 -1
  409. package/eigen/COPYING.APACHE +0 -203
  410. package/eigen/COPYING.BSD +0 -26
  411. package/eigen/COPYING.GPL +0 -674
  412. package/eigen/COPYING.LGPL +0 -502
  413. package/eigen/COPYING.MINPACK +0 -51
  414. package/eigen/COPYING.MPL2 +0 -373
  415. package/eigen/COPYING.README +0 -18
  416. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
  417. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
  418. package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
  419. package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
  420. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  421. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  422. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  423. package/eigen/Eigen/src/misc/lapack.h +0 -152
  424. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  425. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  426. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  427. package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  428. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  429. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  430. package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  431. package/eigen/README.md +0 -5
@@ -12,169 +12,173 @@
12
12
  #ifndef EIGEN_CONSTANTS_H
13
13
  #define EIGEN_CONSTANTS_H
14
14
 
15
+ // IWYU pragma: private
16
+ #include "../InternalHeaderCheck.h"
17
+
15
18
  namespace Eigen {
16
19
 
17
20
  /** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
18
- * stored in some runtime variable.
19
- *
20
- * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
21
- */
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
+ */
22
25
  const int Dynamic = -1;
23
26
 
24
- /** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
25
- * has to be specified at runtime.
26
- */
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
+ */
27
30
  const int DynamicIndex = 0xffffff;
28
31
 
29
- /** This value means that the increment to go from one value to another in a sequence is not constant for each step.
30
- */
31
- const int UndefinedIncr = 0xfffffe;
32
+ /** This value means that the requested value is not defined.
33
+ */
34
+ const int Undefined = 0xfffffe;
32
35
 
33
36
  /** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
34
- * The value Infinity there means the L-infinity norm.
35
- */
37
+ * The value Infinity there means the L-infinity norm.
38
+ */
36
39
  const int Infinity = -1;
37
40
 
38
41
  /** This value means that the cost to evaluate an expression coefficient is either very expensive or
39
- * cannot be known at compile time.
40
- *
41
- * 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.
42
- * 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.
43
- */
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
+ */
44
48
  const int HugeCost = 10000;
45
49
 
46
50
  /** \defgroup flags Flags
47
- * \ingroup Core_Module
48
- *
49
- * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
50
- * expression.
51
- *
52
- * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
53
- * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
54
- * runtime overhead.
55
- *
56
- * \sa MatrixBase::Flags
57
- */
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
+ */
58
62
 
59
63
  /** \ingroup flags
60
- *
61
- * for a matrix, this means that the storage order is row-major.
62
- * If this bit is not set, the storage order is column-major.
63
- * For an expression, this determines the storage order of
64
- * the matrix created by evaluation of that expression.
65
- * \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 */
66
70
  const unsigned int RowMajorBit = 0x1;
67
71
 
68
72
  /** \ingroup flags
69
- * means the expression should be evaluated by the calling expression */
73
+ * means the expression should be evaluated by the calling expression */
70
74
  const unsigned int EvalBeforeNestingBit = 0x2;
71
75
 
72
76
  /** \ingroup flags
73
- * \deprecated
74
- * means the expression should be evaluated before any assignment */
75
- EIGEN_DEPRECATED
76
- 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
77
80
 
78
81
  /** \ingroup flags
79
- *
80
- * Short version: means the expression might be vectorized
81
- *
82
- * Long version: means that the coefficients can be handled by packets
83
- * and start at a memory location whose alignment meets the requirements
84
- * of the present CPU architecture for optimized packet access. In the fixed-size
85
- * case, there is the additional condition that it be possible to access all the
86
- * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
87
- * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
88
- * there is no such condition on the total size and strides, so it might not be possible to access
89
- * all coeffs by packets.
90
- *
91
- * \note This bit can be set regardless of whether vectorization is actually enabled.
92
- * To check for actual vectorizability, see \a ActualPacketAccessBit.
93
- */
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
+ */
94
97
  const unsigned int PacketAccessBit = 0x8;
95
98
 
96
99
  #ifdef EIGEN_VECTORIZE
97
100
  /** \ingroup flags
98
- *
99
- * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
100
- * is set to the value \a PacketAccessBit.
101
- *
102
- * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
103
- * is set to the value 0.
104
- */
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
+ */
105
108
  const unsigned int ActualPacketAccessBit = PacketAccessBit;
106
109
  #else
107
110
  const unsigned int ActualPacketAccessBit = 0x0;
108
111
  #endif
109
112
 
110
113
  /** \ingroup flags
111
- *
112
- * Short version: means the expression can be seen as 1D vector.
113
- *
114
- * Long version: means that one can access the coefficients
115
- * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
116
- * index-based access methods are guaranteed
117
- * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
118
- * is guaranteed that whenever it is available, index-based access is at least as fast as
119
- * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
120
- *
121
- * If both PacketAccessBit and LinearAccessBit are set, then the
122
- * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
123
- * lvalue expression.
124
- *
125
- * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
126
- * Product expressions don't have it, because it would be troublesome for vectorization, even when the
127
- * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
128
- * not index-based packet access, so they don't have the LinearAccessBit.
129
- */
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
+ */
130
133
  const unsigned int LinearAccessBit = 0x10;
131
134
 
132
135
  /** \ingroup flags
133
- *
134
- * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
135
- * This rules out read-only expressions.
136
- *
137
- * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
138
- * the other:
139
- * \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
140
- * \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
141
- *
142
- * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
143
- */
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
+ */
144
148
  const unsigned int LvalueBit = 0x20;
145
149
 
146
150
  /** \ingroup flags
147
- *
148
- * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
149
- * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
150
- * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
151
- * though referencable, do not have such a regular memory layout.
152
- *
153
- * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
154
- */
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
+ */
155
159
  const unsigned int DirectAccessBit = 0x40;
156
160
 
157
161
  /** \deprecated \ingroup flags
158
- *
159
- * means the first coefficient packet is guaranteed to be aligned.
160
- * An expression cannot have the AlignedBit without the PacketAccessBit flag.
161
- * In other words, this means we are allow to perform an aligned packet access to the first element regardless
162
- * of the expression kind:
163
- * \code
164
- * expression.packet<Aligned>(0);
165
- * \endcode
166
- */
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
+ */
167
171
  EIGEN_DEPRECATED const unsigned int AlignedBit = 0x80;
168
172
 
169
173
  const unsigned int NestByRefBit = 0x100;
170
174
 
171
175
  /** \ingroup flags
172
- *
173
- * for an expression, this means that the storage order
174
- * can be either row-major or column-major.
175
- * The precise choice will be decided at evaluation time or when
176
- * combined with other expressions.
177
- * \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 */
178
182
  const unsigned int NoPreferredStorageOrderBit = 0x200;
179
183
 
180
184
  /** \ingroup flags
@@ -190,65 +194,63 @@ const unsigned int NoPreferredStorageOrderBit = 0x200;
190
194
  */
191
195
  const unsigned int CompressedAccessBit = 0x400;
192
196
 
193
-
194
197
  // list of flags that are inherited by default
195
- const unsigned int HereditaryBits = RowMajorBit
196
- | EvalBeforeNestingBit;
198
+ const unsigned int HereditaryBits = RowMajorBit | EvalBeforeNestingBit;
197
199
 
198
200
  /** \defgroup enums Enumerations
199
- * \ingroup Core_Module
200
- *
201
- * Various enumerations used in %Eigen. Many of these are used as template parameters.
202
- */
201
+ * \ingroup Core_Module
202
+ *
203
+ * Various enumerations used in %Eigen. Many of these are used as template parameters.
204
+ */
203
205
 
204
206
  /** \ingroup enums
205
- * Enum containing possible values for the \c Mode or \c UpLo parameter of
206
- * 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. */
207
209
  enum UpLoType {
208
210
  /** View matrix as a lower triangular matrix. */
209
- Lower=0x1,
211
+ Lower = 0x1,
210
212
  /** View matrix as an upper triangular matrix. */
211
- Upper=0x2,
213
+ Upper = 0x2,
212
214
  /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
213
- UnitDiag=0x4,
215
+ UnitDiag = 0x4,
214
216
  /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
215
- ZeroDiag=0x8,
217
+ ZeroDiag = 0x8,
216
218
  /** View matrix as a lower triangular matrix with ones on the diagonal. */
217
- UnitLower=UnitDiag|Lower,
219
+ UnitLower = UnitDiag | Lower,
218
220
  /** View matrix as an upper triangular matrix with ones on the diagonal. */
219
- UnitUpper=UnitDiag|Upper,
221
+ UnitUpper = UnitDiag | Upper,
220
222
  /** View matrix as a lower triangular matrix with zeros on the diagonal. */
221
- StrictlyLower=ZeroDiag|Lower,
223
+ StrictlyLower = ZeroDiag | Lower,
222
224
  /** View matrix as an upper triangular matrix with zeros on the diagonal. */
223
- StrictlyUpper=ZeroDiag|Upper,
225
+ StrictlyUpper = ZeroDiag | Upper,
224
226
  /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
225
- SelfAdjoint=0x10,
227
+ SelfAdjoint = 0x10,
226
228
  /** Used to support symmetric, non-selfadjoint, complex matrices. */
227
- Symmetric=0x20
229
+ Symmetric = 0x20
228
230
  };
229
231
 
230
232
  /** \ingroup enums
231
- * Enum for indicating whether a buffer is aligned or not. */
233
+ * Enum for indicating whether a buffer is aligned or not. */
232
234
  enum AlignmentType {
233
- Unaligned=0, /**< Data pointer has no specific alignment. */
234
- Aligned8=8, /**< Data pointer is aligned on a 8 bytes boundary. */
235
- Aligned16=16, /**< Data pointer is aligned on a 16 bytes boundary. */
236
- Aligned32=32, /**< Data pointer is aligned on a 32 bytes boundary. */
237
- Aligned64=64, /**< Data pointer is aligned on a 64 bytes boundary. */
238
- Aligned128=128, /**< Data pointer is aligned on a 128 bytes boundary. */
239
- AlignedMask=255,
240
- Aligned=16, /**< \deprecated Synonym for Aligned16. */
241
- #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
242
244
  AlignedMax = Aligned128
243
- #elif EIGEN_MAX_ALIGN_BYTES==64
245
+ #elif EIGEN_MAX_ALIGN_BYTES == 64
244
246
  AlignedMax = Aligned64
245
- #elif EIGEN_MAX_ALIGN_BYTES==32
247
+ #elif EIGEN_MAX_ALIGN_BYTES == 32
246
248
  AlignedMax = Aligned32
247
- #elif EIGEN_MAX_ALIGN_BYTES==16
249
+ #elif EIGEN_MAX_ALIGN_BYTES == 16
248
250
  AlignedMax = Aligned16
249
- #elif EIGEN_MAX_ALIGN_BYTES==8
251
+ #elif EIGEN_MAX_ALIGN_BYTES == 8
250
252
  AlignedMax = Aligned8
251
- #elif EIGEN_MAX_ALIGN_BYTES==0
253
+ #elif EIGEN_MAX_ALIGN_BYTES == 0
252
254
  AlignedMax = Unaligned
253
255
  #else
254
256
  #error Invalid value for EIGEN_MAX_ALIGN_BYTES
@@ -256,35 +258,35 @@ enum AlignmentType {
256
258
  };
257
259
 
258
260
  /** \ingroup enums
259
- * Enum containing possible values for the \p Direction parameter of
260
- * Reverse, PartialReduxExpr and VectorwiseOp. */
261
- enum DirectionType {
262
- /** For Reverse, all columns are reversed;
263
- * for PartialReduxExpr and VectorwiseOp, act on columns. */
264
- Vertical,
265
- /** For Reverse, all rows are reversed;
266
- * for PartialReduxExpr and VectorwiseOp, act on rows. */
267
- Horizontal,
268
- /** For Reverse, both rows and columns are reversed;
269
- * not used for PartialReduxExpr and VectorwiseOp. */
270
- 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
271
273
  };
272
274
 
273
275
  /** \internal \ingroup enums
274
- * Enum to specify how to traverse the entries of a matrix. */
276
+ * Enum to specify how to traverse the entries of a matrix. */
275
277
  enum TraversalType {
276
278
  /** \internal Default traversal, no vectorization, no index-based access */
277
279
  DefaultTraversal,
278
280
  /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
279
281
  LinearTraversal,
280
282
  /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
281
- * and good size */
283
+ * and good size */
282
284
  InnerVectorizedTraversal,
283
285
  /** \internal Vectorization path using a single loop plus scalar loops for the
284
- * unaligned boundaries */
286
+ * unaligned boundaries */
285
287
  LinearVectorizedTraversal,
286
288
  /** \internal Generic vectorization path using one vectorized loop per row/column with some
287
- * scalar loops to handle the unaligned boundaries */
289
+ * scalar loops to handle the unaligned boundaries */
288
290
  SliceVectorizedTraversal,
289
291
  /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
290
292
  InvalidTraversal,
@@ -293,27 +295,24 @@ enum TraversalType {
293
295
  };
294
296
 
295
297
  /** \internal \ingroup enums
296
- * 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. */
297
299
  enum UnrollingType {
298
300
  /** \internal Do not unroll loops. */
299
301
  NoUnrolling,
300
302
  /** \internal Unroll only the inner loop, but not the outer loop. */
301
303
  InnerUnrolling,
302
- /** \internal Unroll both the inner and the outer loop. If there is only one loop,
303
- * 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. */
304
306
  CompleteUnrolling
305
307
  };
306
308
 
307
309
  /** \internal \ingroup enums
308
- * Enum to specify whether to use the default (built-in) implementation or the specialization. */
309
- enum SpecializedType {
310
- Specialized,
311
- BuiltIn
312
- };
310
+ * Enum to specify whether to use the default (built-in) implementation or the specialization. */
311
+ enum SpecializedType { Specialized, BuiltIn };
313
312
 
314
313
  /** \ingroup enums
315
- * Enum containing possible values for the \p _Options template parameter of
316
- * Matrix, Array and BandMatrix. */
314
+ * Enum containing possible values for the \p Options_ template parameter of
315
+ * Matrix, Array and BandMatrix. */
317
316
  enum StorageOptions {
318
317
  /** Storage order is column major (see \ref TopicStorageOrders). */
319
318
  ColMajor = 0,
@@ -326,7 +325,7 @@ enum StorageOptions {
326
325
  };
327
326
 
328
327
  /** \ingroup enums
329
- * 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. */
330
329
  enum SideType {
331
330
  /** Apply transformation on the left. */
332
331
  OnTheLeft = 1,
@@ -352,83 +351,82 @@ enum NaNPropagationOptions {
352
351
  * EIGEN_UNUSED NoChange_t NoChange;
353
352
  * }
354
353
  *
355
- * 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.
356
355
  * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
357
356
  * and we do not know how to get rid of them (bug 450).
358
357
  */
359
358
 
360
- enum NoChange_t { NoChange };
359
+ enum NoChange_t { NoChange };
361
360
  enum Sequential_t { Sequential };
362
- enum Default_t { Default };
361
+ enum Default_t { Default };
363
362
 
364
363
  /** \internal \ingroup enums
365
- * Used in AmbiVector. */
366
- enum AmbiVectorMode {
367
- IsDense = 0,
368
- IsSparse
369
- };
364
+ * Used in AmbiVector. */
365
+ enum AmbiVectorMode { IsDense = 0, IsSparse };
370
366
 
371
367
  /** \ingroup enums
372
- * Used as template parameter in DenseCoeffBase and MapBase to indicate
373
- * which accessors should be provided. */
368
+ * Used as template parameter in DenseCoeffBase and MapBase to indicate
369
+ * which accessors should be provided. */
374
370
  enum AccessorLevels {
375
371
  /** Read-only access via a member function. */
376
- ReadOnlyAccessors,
372
+ ReadOnlyAccessors,
377
373
  /** Read/write access via member functions. */
378
- WriteAccessors,
374
+ WriteAccessors,
379
375
  /** Direct read-only access to the coefficients. */
380
- DirectAccessors,
376
+ DirectAccessors,
381
377
  /** Direct read/write access to the coefficients. */
382
378
  DirectWriteAccessors
383
379
  };
384
380
 
385
381
  /** \ingroup enums
386
- * Enum with options to give to various decompositions. */
382
+ * Enum with options to give to various decompositions. */
387
383
  enum DecompositionOptions {
388
384
  /** \internal Not used (meant for LDLT?). */
389
- Pivoting = 0x01,
385
+ Pivoting = 0x01,
390
386
  /** \internal Not used (meant for LDLT?). */
391
- NoPivoting = 0x02,
387
+ NoPivoting = 0x02,
392
388
  /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
393
- ComputeFullU = 0x04,
389
+ ComputeFullU = 0x04,
394
390
  /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
395
- ComputeThinU = 0x08,
391
+ ComputeThinU = 0x08,
396
392
  /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
397
- ComputeFullV = 0x10,
393
+ ComputeFullV = 0x10,
398
394
  /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
399
- ComputeThinV = 0x20,
395
+ ComputeThinV = 0x20,
400
396
  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
401
- * that only the eigenvalues are to be computed and not the eigenvectors. */
402
- EigenvaluesOnly = 0x40,
397
+ * that only the eigenvalues are to be computed and not the eigenvectors. */
398
+ EigenvaluesOnly = 0x40,
403
399
  /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
404
- * that both the eigenvalues and the eigenvectors are to be computed. */
400
+ * that both the eigenvalues and the eigenvectors are to be computed. */
405
401
  ComputeEigenvectors = 0x80,
406
402
  /** \internal */
407
403
  EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
408
404
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
409
- * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
410
- Ax_lBx = 0x100,
405
+ * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
406
+ Ax_lBx = 0x100,
411
407
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
412
- * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
413
- ABx_lx = 0x200,
408
+ * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
409
+ ABx_lx = 0x200,
414
410
  /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
415
- * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
416
- BAx_lx = 0x400,
411
+ * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
412
+ BAx_lx = 0x400,
417
413
  /** \internal */
418
414
  GenEigMask = Ax_lBx | ABx_lx | BAx_lx
419
415
  };
420
416
 
421
417
  /** \ingroup enums
422
- * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
418
+ * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
423
419
  enum QRPreconditioners {
420
+ /** Use a QR decomposition with column pivoting as the first step. */
421
+ ColPivHouseholderQRPreconditioner = 0x0,
424
422
  /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
425
- NoQRPreconditioner,
423
+ NoQRPreconditioner = 0x40,
426
424
  /** Use a QR decomposition without pivoting as the first step. */
427
- HouseholderQRPreconditioner,
428
- /** Use a QR decomposition with column pivoting as the first step. */
429
- ColPivHouseholderQRPreconditioner,
425
+ HouseholderQRPreconditioner = 0x80,
430
426
  /** Use a QR decomposition with full pivoting as the first step. */
431
- FullPivHouseholderQRPreconditioner
427
+ FullPivHouseholderQRPreconditioner = 0xC0,
428
+ /** Used to disable the QR Preconditioner in BDCSVD. */
429
+ DisableQRDecomposition = NoQRPreconditioner
432
430
  };
433
431
 
434
432
  #ifdef Success
@@ -436,72 +434,86 @@ enum QRPreconditioners {
436
434
  #endif
437
435
 
438
436
  /** \ingroup enums
439
- * Enum for reporting the status of a computation. */
437
+ * Enum for reporting the status of a computation. */
440
438
  enum ComputationInfo {
441
439
  /** Computation was successful. */
442
- Success = 0,
440
+ Success = 0,
443
441
  /** The provided data did not satisfy the prerequisites. */
444
- NumericalIssue = 1,
442
+ NumericalIssue = 1,
445
443
  /** Iterative procedure did not converge. */
446
444
  NoConvergence = 2,
447
445
  /** The inputs are invalid, or the algorithm has been improperly called.
448
- * When assertions are enabled, such errors trigger an assert. */
446
+ * When assertions are enabled, such errors trigger an assert. */
449
447
  InvalidInput = 3
450
448
  };
451
449
 
452
450
  /** \ingroup enums
453
- * Enum used to specify how a particular transformation is stored in a matrix.
454
- * \sa Transform, Hyperplane::transform(). */
451
+ * Enum used to specify how a particular transformation is stored in a matrix.
452
+ * \sa Transform, Hyperplane::transform(). */
455
453
  enum TransformTraits {
456
454
  /** Transformation is an isometry. */
457
- Isometry = 0x1,
458
- /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
459
- * assumed to be [0 ... 0 1]. */
460
- 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,
461
459
  /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
462
460
  AffineCompact = 0x10 | Affine,
463
461
  /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
464
- Projective = 0x20
462
+ Projective = 0x20
465
463
  };
466
464
 
467
465
  /** \internal \ingroup enums
468
- * Enum used to choose between implementation depending on the computer architecture. */
469
- namespace Architecture
470
- {
471
- enum Type {
472
- Generic = 0x0,
473
- SSE = 0x1,
474
- AltiVec = 0x2,
475
- VSX = 0x3,
476
- NEON = 0x4,
477
- MSA = 0x5,
478
- SVE = 0x6,
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,
479
478
  #if defined EIGEN_VECTORIZE_SSE
480
- Target = SSE
479
+ Target = SSE
481
480
  #elif defined EIGEN_VECTORIZE_ALTIVEC
482
- Target = AltiVec
481
+ Target = AltiVec
483
482
  #elif defined EIGEN_VECTORIZE_VSX
484
- Target = VSX
483
+ Target = VSX
485
484
  #elif defined EIGEN_VECTORIZE_NEON
486
- Target = NEON
485
+ Target = NEON
487
486
  #elif defined EIGEN_VECTORIZE_SVE
488
- Target = SVE
487
+ Target = SVE
489
488
  #elif defined EIGEN_VECTORIZE_MSA
490
- Target = MSA
489
+ Target = MSA
490
+ #elif defined EIGEN_VECTORIZE_HVX
491
+ Target = HVX
492
+ #elif defined EIGEN_VECTORIZE_LSX
493
+ Target = LSX
491
494
  #else
492
- Target = Generic
495
+ Target = Generic
493
496
  #endif
494
- };
495
- }
497
+ };
498
+ } // namespace Architecture
496
499
 
497
500
  /** \internal \ingroup enums
498
- * Enum used as template parameter in Product and product evaluators. */
499
- enum ProductImplType
500
- { 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
+ };
501
513
 
502
514
  /** \internal \ingroup enums
503
- * Enum used in experimental parallel implementation. */
504
- enum Action {GetAction, SetAction};
515
+ * Enum used in experimental parallel implementation. */
516
+ enum Action { GetAction, SetAction };
505
517
 
506
518
  /** The type used to identify a dense storage. */
507
519
  struct Dense {};
@@ -525,29 +537,52 @@ struct MatrixXpr {};
525
537
  struct ArrayXpr {};
526
538
 
527
539
  // An evaluator must define its shape. By default, it can be one of the following:
528
- struct DenseShape { static std::string debugName() { return "DenseShape"; } };
529
- struct SolverShape { static std::string debugName() { return "SolverShape"; } };
530
- struct HomogeneousShape { static std::string debugName() { return "HomogeneousShape"; } };
531
- struct DiagonalShape { static std::string debugName() { return "DiagonalShape"; } };
532
- struct BandShape { static std::string debugName() { return "BandShape"; } };
533
- struct TriangularShape { static std::string debugName() { return "TriangularShape"; } };
534
- struct SelfAdjointShape { static std::string debugName() { return "SelfAdjointShape"; } };
535
- struct PermutationShape { static std::string debugName() { return "PermutationShape"; } };
536
- struct TranspositionsShape { static std::string debugName() { return "TranspositionsShape"; } };
537
- 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
+ };
538
573
 
539
574
  namespace internal {
540
575
 
541
- // random access iterators based on coeff*() accessors.
576
+ // random access iterators based on coeff*() accessors.
542
577
  struct IndexBased {};
543
578
 
544
- // evaluator based on iterators to access coefficients.
579
+ // evaluator based on iterators to access coefficients.
545
580
  struct IteratorBased {};
546
581
 
547
582
  /** \internal
548
583
  * Constants for comparison functors
549
584
  */
550
- enum ComparisonName {
585
+ enum ComparisonName : unsigned int {
551
586
  cmp_EQ = 0,
552
587
  cmp_LT = 1,
553
588
  cmp_LE = 2,
@@ -556,8 +591,8 @@ enum ComparisonName {
556
591
  cmp_GT = 5,
557
592
  cmp_GE = 6
558
593
  };
559
- } // end namespace internal
594
+ } // end namespace internal
560
595
 
561
- } // end namespace Eigen
596
+ } // end namespace Eigen
562
597
 
563
- #endif // EIGEN_CONSTANTS_H
598
+ #endif // EIGEN_CONSTANTS_H