@smake/eigen 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -21
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +235 -326
  6. package/eigen/Eigen/Eigenvalues +16 -14
  7. package/eigen/Eigen/Geometry +21 -24
  8. package/eigen/Eigen/Householder +9 -8
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -14
  11. package/eigen/Eigen/KLUSupport +43 -0
  12. package/eigen/Eigen/LU +16 -20
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -54
  15. package/eigen/Eigen/PaStiXSupport +23 -20
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -21
  18. package/eigen/Eigen/QtAlignedMalloc +5 -13
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -18
  21. package/eigen/Eigen/Sparse +1 -4
  22. package/eigen/Eigen/SparseCholesky +18 -23
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +12 -8
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
  37. package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
  42. package/eigen/Eigen/src/Core/Array.h +341 -294
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
  48. package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
  49. package/eigen/Eigen/src/Core/Block.h +375 -398
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
  53. package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
  59. package/eigen/Eigen/src/Core/DenseBase.h +632 -571
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
  61. package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +169 -210
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +172 -222
  67. package/eigen/Eigen/src/Core/EigenBase.h +75 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
  75. package/eigen/Eigen/src/Core/IO.h +147 -139
  76. package/eigen/Eigen/src/Core/IndexedView.h +321 -0
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +56 -66
  80. package/eigen/Eigen/src/Core/Map.h +124 -142
  81. package/eigen/Eigen/src/Core/MapBase.h +256 -281
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
  84. package/eigen/Eigen/src/Core/Matrix.h +491 -416
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
  86. package/eigen/Eigen/src/Core/NestByValue.h +66 -85
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -85
  88. package/eigen/Eigen/src/Core/NumTraits.h +235 -148
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
  92. package/eigen/Eigen/src/Core/Product.h +260 -139
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
  94. package/eigen/Eigen/src/Core/Random.h +161 -136
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +366 -336
  98. package/eigen/Eigen/src/Core/Ref.h +308 -209
  99. package/eigen/Eigen/src/Core/Replicate.h +94 -106
  100. package/eigen/Eigen/src/Core/Reshaped.h +398 -0
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +136 -145
  103. package/eigen/Eigen/src/Core/Select.h +70 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +97 -111
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
  109. package/eigen/Eigen/src/Core/SolverBase.h +138 -101
  110. package/eigen/Eigen/src/Core/StableNorm.h +156 -160
  111. package/eigen/Eigen/src/Core/StlIterators.h +619 -0
  112. package/eigen/Eigen/src/Core/Stride.h +91 -88
  113. package/eigen/Eigen/src/Core/Swap.h +70 -38
  114. package/eigen/Eigen/src/Core/Transpose.h +295 -273
  115. package/eigen/Eigen/src/Core/Transpositions.h +272 -317
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
  119. package/eigen/Eigen/src/Core/Visitor.h +480 -216
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  217. package/eigen/Eigen/src/Core/util/Constants.h +314 -263
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
  226. package/eigen/Eigen/src/Core/util/Macros.h +939 -646
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
  229. package/eigen/Eigen/src/Core/util/Meta.h +618 -426
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
  264. package/eigen/Eigen/src/Geometry/Transform.h +896 -953
  265. package/eigen/Eigen/src/Geometry/Translation.h +100 -98
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
  269. package/eigen/Eigen/src/Householder/Householder.h +104 -122
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  285. package/eigen/Eigen/src/LU/Determinant.h +60 -63
  286. package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/lib/LibEigen.d.ts +4 -0
  409. package/lib/LibEigen.js +14 -0
  410. package/lib/index.d.ts +1 -1
  411. package/lib/index.js +7 -3
  412. package/package.json +2 -10
  413. package/eigen/Eigen/CMakeLists.txt +0 -19
  414. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
  415. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
  416. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  417. package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
  418. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  419. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  420. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  421. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  422. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  423. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  424. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  425. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  426. package/eigen/Eigen/src/misc/lapack.h +0 -152
  427. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
  428. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
  429. package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
  430. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  431. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
  432. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  433. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
  434. package/lib/eigen.d.ts +0 -2
  435. package/lib/eigen.js +0 -15
@@ -10,344 +10,329 @@
10
10
  #ifndef EIGEN_BANDMATRIX_H
11
11
  #define EIGEN_BANDMATRIX_H
12
12
 
13
- namespace Eigen {
13
+ // IWYU pragma: private
14
+ #include "./InternalHeaderCheck.h"
15
+
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((Options&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 = (Options&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,Options&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 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 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 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 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 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 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 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 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