@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
@@ -10,344 +10,329 @@
10
10
  #ifndef EIGEN_BANDMATRIX_H
11
11
  #define EIGEN_BANDMATRIX_H
12
12
 
13
+ // IWYU pragma: private
14
+ #include "./InternalHeaderCheck.h"
15
+
13
16
  namespace Eigen {
14
17
 
15
18
  namespace internal {
16
19
 
17
- template<typename Derived>
18
- class BandMatrixBase : public EigenBase<Derived>
19
- {
20
- public:
20
+ template <typename Derived>
21
+ class BandMatrixBase : public EigenBase<Derived> {
22
+ public:
23
+ enum {
24
+ Flags = internal::traits<Derived>::Flags,
25
+ CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
26
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
27
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
28
+ MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
29
+ MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
30
+ Supers = internal::traits<Derived>::Supers,
31
+ Subs = internal::traits<Derived>::Subs,
32
+ Options = internal::traits<Derived>::Options
33
+ };
34
+ typedef typename internal::traits<Derived>::Scalar Scalar;
35
+ typedef Matrix<Scalar, RowsAtCompileTime, ColsAtCompileTime> DenseMatrixType;
36
+ typedef typename DenseMatrixType::StorageIndex StorageIndex;
37
+ typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
38
+ typedef EigenBase<Derived> Base;
21
39
 
22
- enum {
23
- Flags = internal::traits<Derived>::Flags,
24
- CoeffReadCost = internal::traits<Derived>::CoeffReadCost,
25
- RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
26
- ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
27
- MaxRowsAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime,
28
- MaxColsAtCompileTime = internal::traits<Derived>::MaxColsAtCompileTime,
29
- Supers = internal::traits<Derived>::Supers,
30
- Subs = internal::traits<Derived>::Subs,
31
- Options = internal::traits<Derived>::Options
32
- };
33
- typedef typename internal::traits<Derived>::Scalar Scalar;
34
- typedef Matrix<Scalar,RowsAtCompileTime,ColsAtCompileTime> DenseMatrixType;
35
- typedef typename DenseMatrixType::StorageIndex StorageIndex;
36
- typedef typename internal::traits<Derived>::CoefficientsType CoefficientsType;
37
- typedef EigenBase<Derived> Base;
40
+ protected:
41
+ enum {
42
+ DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic,
43
+ SizeAtCompileTime = min_size_prefer_dynamic(RowsAtCompileTime, ColsAtCompileTime)
44
+ };
38
45
 
39
- protected:
46
+ public:
47
+ using Base::cols;
48
+ using Base::derived;
49
+ using Base::rows;
50
+
51
+ /** \returns the number of super diagonals */
52
+ inline Index supers() const { return derived().supers(); }
53
+
54
+ /** \returns the number of sub diagonals */
55
+ inline Index subs() const { return derived().subs(); }
56
+
57
+ /** \returns an expression of the underlying coefficient matrix */
58
+ inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
59
+
60
+ /** \returns an expression of the underlying coefficient matrix */
61
+ inline CoefficientsType& coeffs() { return derived().coeffs(); }
62
+
63
+ /** \returns a vector expression of the \a i -th column,
64
+ * only the meaningful part is returned.
65
+ * \warning the internal storage must be column major. */
66
+ inline Block<CoefficientsType, Dynamic, 1> col(Index i) {
67
+ EIGEN_STATIC_ASSERT((int(Options) & int(RowMajor)) == 0, THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
68
+ Index start = 0;
69
+ Index len = coeffs().rows();
70
+ if (i <= supers()) {
71
+ start = supers() - i;
72
+ len = (std::min)(rows(), std::max<Index>(0, coeffs().rows() - (supers() - i)));
73
+ } else if (i >= rows() - subs())
74
+ len = std::max<Index>(0, coeffs().rows() - (i + 1 - rows() + subs()));
75
+ return Block<CoefficientsType, Dynamic, 1>(coeffs(), start, i, len, 1);
76
+ }
77
+
78
+ /** \returns a vector expression of the main diagonal */
79
+ inline Block<CoefficientsType, 1, SizeAtCompileTime> diagonal() {
80
+ return Block<CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
81
+ }
82
+
83
+ /** \returns a vector expression of the main diagonal (const version) */
84
+ inline const Block<const CoefficientsType, 1, SizeAtCompileTime> diagonal() const {
85
+ return Block<const CoefficientsType, 1, SizeAtCompileTime>(coeffs(), supers(), 0, 1, (std::min)(rows(), cols()));
86
+ }
87
+
88
+ template <int Index>
89
+ struct DiagonalIntReturnType {
40
90
  enum {
41
- DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic))
42
- ? 1 + Supers + Subs
43
- : Dynamic,
44
- SizeAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime,ColsAtCompileTime)
45
- };
46
-
47
- public:
48
-
49
- using Base::derived;
50
- using Base::rows;
51
- using Base::cols;
52
-
53
- /** \returns the number of super diagonals */
54
- inline Index supers() const { return derived().supers(); }
55
-
56
- /** \returns the number of sub diagonals */
57
- inline Index subs() const { return derived().subs(); }
58
-
59
- /** \returns an expression of the underlying coefficient matrix */
60
- inline const CoefficientsType& coeffs() const { return derived().coeffs(); }
61
-
62
- /** \returns an expression of the underlying coefficient matrix */
63
- inline CoefficientsType& coeffs() { return derived().coeffs(); }
64
-
65
- /** \returns a vector expression of the \a i -th column,
66
- * only the meaningful part is returned.
67
- * \warning the internal storage must be column major. */
68
- inline Block<CoefficientsType,Dynamic,1> col(Index i)
69
- {
70
- EIGEN_STATIC_ASSERT((int(Options) & int(RowMajor)) == 0, THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES);
71
- Index start = 0;
72
- Index len = coeffs().rows();
73
- if (i<=supers())
74
- {
75
- start = supers()-i;
76
- len = (std::min)(rows(),std::max<Index>(0,coeffs().rows() - (supers()-i)));
77
- }
78
- else if (i>=rows()-subs())
79
- len = std::max<Index>(0,coeffs().rows() - (i + 1 - rows() + subs()));
80
- return Block<CoefficientsType,Dynamic,1>(coeffs(), start, i, len, 1);
81
- }
82
-
83
- /** \returns a vector expression of the main diagonal */
84
- inline Block<CoefficientsType,1,SizeAtCompileTime> diagonal()
85
- { return Block<CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
86
-
87
- /** \returns a vector expression of the main diagonal (const version) */
88
- inline const Block<const CoefficientsType,1,SizeAtCompileTime> diagonal() const
89
- { return Block<const CoefficientsType,1,SizeAtCompileTime>(coeffs(),supers(),0,1,(std::min)(rows(),cols())); }
90
-
91
- template<int Index> struct DiagonalIntReturnType {
92
- enum {
93
- ReturnOpposite = (int(Options) & int(SelfAdjoint)) && (((Index) > 0 && Supers == 0) || ((Index) < 0 && Subs == 0)),
94
- Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
95
- ActualIndex = ReturnOpposite ? -Index : Index,
96
- DiagonalSize = (RowsAtCompileTime==Dynamic || ColsAtCompileTime==Dynamic)
97
- ? Dynamic
98
- : (ActualIndex<0
99
- ? EIGEN_SIZE_MIN_PREFER_DYNAMIC(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
100
- : EIGEN_SIZE_MIN_PREFER_DYNAMIC(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
101
- };
102
- typedef Block<CoefficientsType,1, DiagonalSize> BuildType;
103
- typedef typename internal::conditional<Conjugate,
104
- CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>,BuildType >,
105
- BuildType>::type Type;
91
+ ReturnOpposite =
92
+ (int(Options) & int(SelfAdjoint)) && (((Index) > 0 && Supers == 0) || ((Index) < 0 && Subs == 0)),
93
+ Conjugate = ReturnOpposite && NumTraits<Scalar>::IsComplex,
94
+ ActualIndex = ReturnOpposite ? -Index : Index,
95
+ DiagonalSize =
96
+ (RowsAtCompileTime == Dynamic || ColsAtCompileTime == Dynamic)
97
+ ? Dynamic
98
+ : (ActualIndex < 0 ? min_size_prefer_dynamic(ColsAtCompileTime, RowsAtCompileTime + ActualIndex)
99
+ : min_size_prefer_dynamic(RowsAtCompileTime, ColsAtCompileTime - ActualIndex))
106
100
  };
101
+ typedef Block<CoefficientsType, 1, DiagonalSize> BuildType;
102
+ typedef std::conditional_t<Conjugate, CwiseUnaryOp<internal::scalar_conjugate_op<Scalar>, BuildType>, BuildType>
103
+ Type;
104
+ };
107
105
 
108
- /** \returns a vector expression of the \a N -th sub or super diagonal */
109
- template<int N> inline typename DiagonalIntReturnType<N>::Type diagonal()
110
- {
111
- return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
112
- }
113
-
114
- /** \returns a vector expression of the \a N -th sub or super diagonal */
115
- template<int N> inline const typename DiagonalIntReturnType<N>::Type diagonal() const
116
- {
117
- return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers()-N, (std::max)(0,N), 1, diagonalLength(N));
118
- }
119
-
120
- /** \returns a vector expression of the \a i -th sub or super diagonal */
121
- inline Block<CoefficientsType,1,Dynamic> diagonal(Index i)
122
- {
123
- eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
124
- return Block<CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
125
- }
126
-
127
- /** \returns a vector expression of the \a i -th sub or super diagonal */
128
- inline const Block<const CoefficientsType,1,Dynamic> diagonal(Index i) const
129
- {
130
- eigen_assert((i<0 && -i<=subs()) || (i>=0 && i<=supers()));
131
- return Block<const CoefficientsType,1,Dynamic>(coeffs(), supers()-i, std::max<Index>(0,i), 1, diagonalLength(i));
132
- }
133
-
134
- template<typename Dest> inline void evalTo(Dest& dst) const
135
- {
136
- dst.resize(rows(),cols());
137
- dst.setZero();
138
- dst.diagonal() = diagonal();
139
- for (Index i=1; i<=supers();++i)
140
- dst.diagonal(i) = diagonal(i);
141
- for (Index i=1; i<=subs();++i)
142
- dst.diagonal(-i) = diagonal(-i);
143
- }
144
-
145
- DenseMatrixType toDenseMatrix() const
146
- {
147
- DenseMatrixType res(rows(),cols());
148
- evalTo(res);
149
- return res;
150
- }
151
-
152
- protected:
153
-
154
- inline Index diagonalLength(Index i) const
155
- { return i<0 ? (std::min)(cols(),rows()+i) : (std::min)(rows(),cols()-i); }
106
+ /** \returns a vector expression of the \a N -th sub or super diagonal */
107
+ template <int N>
108
+ inline typename DiagonalIntReturnType<N>::Type diagonal() {
109
+ return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers() - N, (std::max)(0, N), 1, diagonalLength(N));
110
+ }
111
+
112
+ /** \returns a vector expression of the \a N -th sub or super diagonal */
113
+ template <int N>
114
+ inline const typename DiagonalIntReturnType<N>::Type diagonal() const {
115
+ return typename DiagonalIntReturnType<N>::BuildType(coeffs(), supers() - N, (std::max)(0, N), 1, diagonalLength(N));
116
+ }
117
+
118
+ /** \returns a vector expression of the \a i -th sub or super diagonal */
119
+ inline Block<CoefficientsType, 1, Dynamic> diagonal(Index i) {
120
+ eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
121
+ return Block<CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1, diagonalLength(i));
122
+ }
123
+
124
+ /** \returns a vector expression of the \a i -th sub or super diagonal */
125
+ inline const Block<const CoefficientsType, 1, Dynamic> diagonal(Index i) const {
126
+ eigen_assert((i < 0 && -i <= subs()) || (i >= 0 && i <= supers()));
127
+ return Block<const CoefficientsType, 1, Dynamic>(coeffs(), supers() - i, std::max<Index>(0, i), 1,
128
+ diagonalLength(i));
129
+ }
130
+
131
+ template <typename Dest>
132
+ inline void evalTo(Dest& dst) const {
133
+ dst.resize(rows(), cols());
134
+ dst.setZero();
135
+ dst.diagonal() = diagonal();
136
+ for (Index i = 1; i <= supers(); ++i) dst.diagonal(i) = diagonal(i);
137
+ for (Index i = 1; i <= subs(); ++i) dst.diagonal(-i) = diagonal(-i);
138
+ }
139
+
140
+ DenseMatrixType toDenseMatrix() const {
141
+ DenseMatrixType res(rows(), cols());
142
+ evalTo(res);
143
+ return res;
144
+ }
145
+
146
+ protected:
147
+ inline Index diagonalLength(Index i) const {
148
+ return i < 0 ? (std::min)(cols(), rows() + i) : (std::min)(rows(), cols() - i);
149
+ }
156
150
  };
157
151
 
158
152
  /**
159
- * \class BandMatrix
160
- * \ingroup Core_Module
161
- *
162
- * \brief Represents a rectangular matrix with a banded storage
163
- *
164
- * \tparam _Scalar Numeric type, i.e. float, double, int
165
- * \tparam _Rows Number of rows, or \b Dynamic
166
- * \tparam _Cols Number of columns, or \b Dynamic
167
- * \tparam _Supers Number of super diagonal
168
- * \tparam _Subs Number of sub diagonal
169
- * \tparam _Options A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
170
- * The former controls \ref TopicStorageOrders "storage order", and defaults to
171
- * column-major. The latter controls whether the matrix represents a selfadjoint
172
- * matrix in which case either Supers of Subs have to be null.
173
- *
174
- * \sa class TridiagonalMatrix
175
- */
176
-
177
- template<typename _Scalar, int _Rows, int _Cols, int _Supers, int _Subs, int _Options>
178
- struct traits<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
179
- {
180
- typedef _Scalar Scalar;
153
+ * \class BandMatrix
154
+ * \ingroup Core_Module
155
+ *
156
+ * \brief Represents a rectangular matrix with a banded storage
157
+ *
158
+ * \tparam Scalar_ Numeric type, i.e. float, double, int
159
+ * \tparam Rows_ Number of rows, or \b Dynamic
160
+ * \tparam Cols_ Number of columns, or \b Dynamic
161
+ * \tparam Supers_ Number of super diagonal
162
+ * \tparam Subs_ Number of sub diagonal
163
+ * \tparam Options_ A combination of either \b #RowMajor or \b #ColMajor, and of \b #SelfAdjoint
164
+ * The former controls \ref TopicStorageOrders "storage order", and defaults to
165
+ * column-major. The latter controls whether the matrix represents a selfadjoint
166
+ * matrix in which case either Supers of Subs have to be null.
167
+ *
168
+ * \sa class TridiagonalMatrix
169
+ */
170
+
171
+ template <typename Scalar_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
172
+ struct traits<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> > {
173
+ typedef Scalar_ Scalar;
181
174
  typedef Dense StorageKind;
182
175
  typedef Eigen::Index StorageIndex;
183
176
  enum {
184
177
  CoeffReadCost = NumTraits<Scalar>::ReadCost,
185
- RowsAtCompileTime = _Rows,
186
- ColsAtCompileTime = _Cols,
187
- MaxRowsAtCompileTime = _Rows,
188
- MaxColsAtCompileTime = _Cols,
178
+ RowsAtCompileTime = Rows_,
179
+ ColsAtCompileTime = Cols_,
180
+ MaxRowsAtCompileTime = Rows_,
181
+ MaxColsAtCompileTime = Cols_,
189
182
  Flags = LvalueBit,
190
- Supers = _Supers,
191
- Subs = _Subs,
192
- Options = _Options,
193
- DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
183
+ Supers = Supers_,
184
+ Subs = Subs_,
185
+ Options = Options_,
186
+ DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic
194
187
  };
195
- typedef Matrix<Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) & int(RowMajor) ? RowMajor : ColMajor> CoefficientsType;
188
+ typedef Matrix<Scalar, DataRowsAtCompileTime, ColsAtCompileTime, int(Options) & int(RowMajor) ? RowMajor : ColMajor>
189
+ CoefficientsType;
196
190
  };
197
191
 
198
- template<typename _Scalar, int Rows, int Cols, int Supers, int Subs, int Options>
199
- class BandMatrix : public BandMatrixBase<BandMatrix<_Scalar,Rows,Cols,Supers,Subs,Options> >
200
- {
201
- public:
202
-
203
- typedef typename internal::traits<BandMatrix>::Scalar Scalar;
204
- typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
205
- typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
206
-
207
- explicit inline BandMatrix(Index rows=Rows, Index cols=Cols, Index supers=Supers, Index subs=Subs)
208
- : m_coeffs(1+supers+subs,cols),
209
- m_rows(rows), m_supers(supers), m_subs(subs)
210
- {
211
- }
192
+ template <typename Scalar_, int Rows, int Cols, int Supers, int Subs, int Options>
193
+ class BandMatrix : public BandMatrixBase<BandMatrix<Scalar_, Rows, Cols, Supers, Subs, Options> > {
194
+ public:
195
+ typedef typename internal::traits<BandMatrix>::Scalar Scalar;
196
+ typedef typename internal::traits<BandMatrix>::StorageIndex StorageIndex;
197
+ typedef typename internal::traits<BandMatrix>::CoefficientsType CoefficientsType;
212
198
 
213
- /** \returns the number of columns */
214
- inline EIGEN_CONSTEXPR Index rows() const { return m_rows.value(); }
199
+ explicit inline BandMatrix(Index rows = Rows, Index cols = Cols, Index supers = Supers, Index subs = Subs)
200
+ : m_coeffs(1 + supers + subs, cols), m_rows(rows), m_supers(supers), m_subs(subs) {}
215
201
 
216
- /** \returns the number of rows */
217
- inline EIGEN_CONSTEXPR Index cols() const { return m_coeffs.cols(); }
202
+ /** \returns the number of columns */
203
+ constexpr Index rows() const { return m_rows.value(); }
218
204
 
219
- /** \returns the number of super diagonals */
220
- inline EIGEN_CONSTEXPR Index supers() const { return m_supers.value(); }
205
+ /** \returns the number of rows */
206
+ constexpr Index cols() const { return m_coeffs.cols(); }
221
207
 
222
- /** \returns the number of sub diagonals */
223
- inline EIGEN_CONSTEXPR Index subs() const { return m_subs.value(); }
208
+ /** \returns the number of super diagonals */
209
+ constexpr Index supers() const { return m_supers.value(); }
224
210
 
225
- inline const CoefficientsType& coeffs() const { return m_coeffs; }
226
- inline CoefficientsType& coeffs() { return m_coeffs; }
211
+ /** \returns the number of sub diagonals */
212
+ constexpr Index subs() const { return m_subs.value(); }
227
213
 
228
- protected:
214
+ inline const CoefficientsType& coeffs() const { return m_coeffs; }
215
+ inline CoefficientsType& coeffs() { return m_coeffs; }
229
216
 
230
- CoefficientsType m_coeffs;
231
- internal::variable_if_dynamic<Index, Rows> m_rows;
232
- internal::variable_if_dynamic<Index, Supers> m_supers;
233
- internal::variable_if_dynamic<Index, Subs> m_subs;
217
+ protected:
218
+ CoefficientsType m_coeffs;
219
+ internal::variable_if_dynamic<Index, Rows> m_rows;
220
+ internal::variable_if_dynamic<Index, Supers> m_supers;
221
+ internal::variable_if_dynamic<Index, Subs> m_subs;
234
222
  };
235
223
 
236
- template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
224
+ template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
237
225
  class BandMatrixWrapper;
238
226
 
239
- template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
240
- struct traits<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
241
- {
242
- typedef typename _CoefficientsType::Scalar Scalar;
243
- typedef typename _CoefficientsType::StorageKind StorageKind;
244
- typedef typename _CoefficientsType::StorageIndex StorageIndex;
227
+ template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
228
+ struct traits<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
229
+ typedef typename CoefficientsType_::Scalar Scalar;
230
+ typedef typename CoefficientsType_::StorageKind StorageKind;
231
+ typedef typename CoefficientsType_::StorageIndex StorageIndex;
245
232
  enum {
246
- CoeffReadCost = internal::traits<_CoefficientsType>::CoeffReadCost,
247
- RowsAtCompileTime = _Rows,
248
- ColsAtCompileTime = _Cols,
249
- MaxRowsAtCompileTime = _Rows,
250
- MaxColsAtCompileTime = _Cols,
233
+ CoeffReadCost = internal::traits<CoefficientsType_>::CoeffReadCost,
234
+ RowsAtCompileTime = Rows_,
235
+ ColsAtCompileTime = Cols_,
236
+ MaxRowsAtCompileTime = Rows_,
237
+ MaxColsAtCompileTime = Cols_,
251
238
  Flags = LvalueBit,
252
- Supers = _Supers,
253
- Subs = _Subs,
254
- Options = _Options,
255
- DataRowsAtCompileTime = ((Supers!=Dynamic) && (Subs!=Dynamic)) ? 1 + Supers + Subs : Dynamic
239
+ Supers = Supers_,
240
+ Subs = Subs_,
241
+ Options = Options_,
242
+ DataRowsAtCompileTime = ((Supers != Dynamic) && (Subs != Dynamic)) ? 1 + Supers + Subs : Dynamic
256
243
  };
257
- typedef _CoefficientsType CoefficientsType;
244
+ typedef CoefficientsType_ CoefficientsType;
258
245
  };
259
246
 
260
- template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
261
- class BandMatrixWrapper : public BandMatrixBase<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
262
- {
263
- public:
247
+ template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
248
+ class BandMatrixWrapper
249
+ : public BandMatrixBase<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
250
+ public:
251
+ typedef typename internal::traits<BandMatrixWrapper>::Scalar Scalar;
252
+ typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType CoefficientsType;
253
+ typedef typename internal::traits<BandMatrixWrapper>::StorageIndex StorageIndex;
264
254
 
265
- typedef typename internal::traits<BandMatrixWrapper>::Scalar Scalar;
266
- typedef typename internal::traits<BandMatrixWrapper>::CoefficientsType CoefficientsType;
267
- typedef typename internal::traits<BandMatrixWrapper>::StorageIndex StorageIndex;
255
+ explicit inline BandMatrixWrapper(const CoefficientsType& coeffs, Index rows = Rows_, Index cols = Cols_,
256
+ Index supers = Supers_, Index subs = Subs_)
257
+ : m_coeffs(coeffs), m_rows(rows), m_supers(supers), m_subs(subs) {
258
+ EIGEN_UNUSED_VARIABLE(cols);
259
+ // eigen_assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
260
+ }
268
261
 
269
- explicit inline BandMatrixWrapper(const CoefficientsType& coeffs, Index rows=_Rows, Index cols=_Cols, Index supers=_Supers, Index subs=_Subs)
270
- : m_coeffs(coeffs),
271
- m_rows(rows), m_supers(supers), m_subs(subs)
272
- {
273
- EIGEN_UNUSED_VARIABLE(cols);
274
- //internal::assert(coeffs.cols()==cols() && (supers()+subs()+1)==coeffs.rows());
275
- }
262
+ /** \returns the number of columns */
263
+ constexpr Index rows() const { return m_rows.value(); }
276
264
 
277
- /** \returns the number of columns */
278
- inline EIGEN_CONSTEXPR Index rows() const { return m_rows.value(); }
265
+ /** \returns the number of rows */
266
+ constexpr Index cols() const { return m_coeffs.cols(); }
279
267
 
280
- /** \returns the number of rows */
281
- inline EIGEN_CONSTEXPR Index cols() const { return m_coeffs.cols(); }
268
+ /** \returns the number of super diagonals */
269
+ constexpr Index supers() const { return m_supers.value(); }
282
270
 
283
- /** \returns the number of super diagonals */
284
- inline EIGEN_CONSTEXPR Index supers() const { return m_supers.value(); }
271
+ /** \returns the number of sub diagonals */
272
+ constexpr Index subs() const { return m_subs.value(); }
285
273
 
286
- /** \returns the number of sub diagonals */
287
- inline EIGEN_CONSTEXPR Index subs() const { return m_subs.value(); }
274
+ inline const CoefficientsType& coeffs() const { return m_coeffs; }
288
275
 
289
- inline const CoefficientsType& coeffs() const { return m_coeffs; }
290
-
291
- protected:
292
-
293
- const CoefficientsType& m_coeffs;
294
- internal::variable_if_dynamic<Index, _Rows> m_rows;
295
- internal::variable_if_dynamic<Index, _Supers> m_supers;
296
- internal::variable_if_dynamic<Index, _Subs> m_subs;
276
+ protected:
277
+ const CoefficientsType& m_coeffs;
278
+ internal::variable_if_dynamic<Index, Rows_> m_rows;
279
+ internal::variable_if_dynamic<Index, Supers_> m_supers;
280
+ internal::variable_if_dynamic<Index, Subs_> m_subs;
297
281
  };
298
282
 
299
283
  /**
300
- * \class TridiagonalMatrix
301
- * \ingroup Core_Module
302
- *
303
- * \brief Represents a tridiagonal matrix with a compact banded storage
304
- *
305
- * \tparam Scalar Numeric type, i.e. float, double, int
306
- * \tparam Size Number of rows and cols, or \b Dynamic
307
- * \tparam Options Can be 0 or \b SelfAdjoint
308
- *
309
- * \sa class BandMatrix
310
- */
311
- template<typename Scalar, int Size, int Options>
312
- class TridiagonalMatrix : public BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor>
313
- {
314
- typedef BandMatrix<Scalar,Size,Size,Options&SelfAdjoint?0:1,1,Options|RowMajor> Base;
315
- typedef typename Base::StorageIndex StorageIndex;
316
- public:
317
- explicit TridiagonalMatrix(Index size = Size) : Base(size,size,Options&SelfAdjoint?0:1,1) {}
318
-
319
- inline typename Base::template DiagonalIntReturnType<1>::Type super()
320
- { return Base::template diagonal<1>(); }
321
- inline const typename Base::template DiagonalIntReturnType<1>::Type super() const
322
- { return Base::template diagonal<1>(); }
323
- inline typename Base::template DiagonalIntReturnType<-1>::Type sub()
324
- { return Base::template diagonal<-1>(); }
325
- inline const typename Base::template DiagonalIntReturnType<-1>::Type sub() const
326
- { return Base::template diagonal<-1>(); }
327
- protected:
284
+ * \class TridiagonalMatrix
285
+ * \ingroup Core_Module
286
+ *
287
+ * \brief Represents a tridiagonal matrix with a compact banded storage
288
+ *
289
+ * \tparam Scalar Numeric type, i.e. float, double, int
290
+ * \tparam Size Number of rows and cols, or \b Dynamic
291
+ * \tparam Options Can be 0 or \b SelfAdjoint
292
+ *
293
+ * \sa class BandMatrix
294
+ */
295
+ template <typename Scalar, int Size, int Options>
296
+ class TridiagonalMatrix : public BandMatrix<Scalar, Size, Size, Options & SelfAdjoint ? 0 : 1, 1, Options | RowMajor> {
297
+ typedef BandMatrix<Scalar, Size, Size, Options & SelfAdjoint ? 0 : 1, 1, Options | RowMajor> Base;
298
+ typedef typename Base::StorageIndex StorageIndex;
299
+
300
+ public:
301
+ explicit TridiagonalMatrix(Index size = Size) : Base(size, size, Options & SelfAdjoint ? 0 : 1, 1) {}
302
+
303
+ inline typename Base::template DiagonalIntReturnType<1>::Type super() { return Base::template diagonal<1>(); }
304
+ inline const typename Base::template DiagonalIntReturnType<1>::Type super() const {
305
+ return Base::template diagonal<1>();
306
+ }
307
+ inline typename Base::template DiagonalIntReturnType<-1>::Type sub() { return Base::template diagonal<-1>(); }
308
+ inline const typename Base::template DiagonalIntReturnType<-1>::Type sub() const {
309
+ return Base::template diagonal<-1>();
310
+ }
311
+
312
+ protected:
328
313
  };
329
314
 
330
-
331
315
  struct BandShape {};
332
316
 
333
- template<typename _Scalar, int _Rows, int _Cols, int _Supers, int _Subs, int _Options>
334
- struct evaluator_traits<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
335
- : public evaluator_traits_base<BandMatrix<_Scalar,_Rows,_Cols,_Supers,_Subs,_Options> >
336
- {
317
+ template <typename Scalar_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
318
+ struct evaluator_traits<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> >
319
+ : public evaluator_traits_base<BandMatrix<Scalar_, Rows_, Cols_, Supers_, Subs_, Options_> > {
337
320
  typedef BandShape Shape;
338
321
  };
339
322
 
340
- template<typename _CoefficientsType,int _Rows, int _Cols, int _Supers, int _Subs,int _Options>
341
- struct evaluator_traits<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
342
- : public evaluator_traits_base<BandMatrixWrapper<_CoefficientsType,_Rows,_Cols,_Supers,_Subs,_Options> >
343
- {
323
+ template <typename CoefficientsType_, int Rows_, int Cols_, int Supers_, int Subs_, int Options_>
324
+ struct evaluator_traits<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> >
325
+ : public evaluator_traits_base<BandMatrixWrapper<CoefficientsType_, Rows_, Cols_, Supers_, Subs_, Options_> > {
344
326
  typedef BandShape Shape;
345
327
  };
346
328
 
347
- template<> struct AssignmentKind<DenseShape,BandShape> { typedef EigenBase2EigenBase Kind; };
329
+ template <>
330
+ struct AssignmentKind<DenseShape, BandShape> {
331
+ typedef EigenBase2EigenBase Kind;
332
+ };
348
333
 
349
- } // end namespace internal
334
+ } // end namespace internal
350
335
 
351
- } // end namespace Eigen
336
+ } // end namespace Eigen
352
337
 
353
- #endif // EIGEN_BANDMATRIX_H
338
+ #endif // EIGEN_BANDMATRIX_H