@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
@@ -1,1058 +0,0 @@
1
- // This file is part of Eigen, a lightweight C++ template library
2
- // for linear algebra.
3
- //
4
- // Copyright (C) 2008-2010 Gael Guennebaud <gael.guennebaud@inria.fr>
5
- // Copyright (C) 2006-2010 Benoit Jacob <jacob.benoit.1@gmail.com>
6
- //
7
- // This Source Code Form is subject to the terms of the Mozilla
8
- // Public License v. 2.0. If a copy of the MPL was not distributed
9
- // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
-
11
- #ifndef EIGEN_PARSED_BY_DOXYGEN
12
-
13
- /// \internal expression type of a column */
14
- typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ColXpr;
15
- typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, 1, !IsRowMajor> ConstColXpr;
16
- /// \internal expression type of a row */
17
- typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowXpr;
18
- typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
19
- /// \internal expression type of a block of whole columns */
20
- typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
21
- typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
22
- /// \internal expression type of a block of whole rows */
23
- typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
24
- typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
25
- /// \internal expression type of a block of whole columns */
26
- template<int N> struct NColsBlockXpr { typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
27
- template<int N> struct ConstNColsBlockXpr { typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type; };
28
- /// \internal expression type of a block of whole rows */
29
- template<int N> struct NRowsBlockXpr { typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
30
- template<int N> struct ConstNRowsBlockXpr { typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type; };
31
- /// \internal expression of a block */
32
- typedef Block<Derived> BlockXpr;
33
- typedef const Block<const Derived> ConstBlockXpr;
34
- /// \internal expression of a block of fixed sizes */
35
- template<int Rows, int Cols> struct FixedBlockXpr { typedef Block<Derived,Rows,Cols> Type; };
36
- template<int Rows, int Cols> struct ConstFixedBlockXpr { typedef Block<const Derived,Rows,Cols> Type; };
37
-
38
- typedef VectorBlock<Derived> SegmentReturnType;
39
- typedef const VectorBlock<const Derived> ConstSegmentReturnType;
40
- template<int Size> struct FixedSegmentReturnType { typedef VectorBlock<Derived, Size> Type; };
41
- template<int Size> struct ConstFixedSegmentReturnType { typedef const VectorBlock<const Derived, Size> Type; };
42
-
43
- #endif // not EIGEN_PARSED_BY_DOXYGEN
44
-
45
- /// \returns a dynamic-size expression of a block in *this.
46
- ///
47
- /// \param startRow the first row in the block
48
- /// \param startCol the first column in the block
49
- /// \param blockRows the number of rows in the block
50
- /// \param blockCols the number of columns in the block
51
- ///
52
- /// Example: \include MatrixBase_block_int_int_int_int.cpp
53
- /// Output: \verbinclude MatrixBase_block_int_int_int_int.out
54
- ///
55
- /// \note Even though the returned expression has dynamic size, in the case
56
- /// when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
57
- /// which means that evaluating it does not cause a dynamic memory allocation.
58
- ///
59
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
60
- ///
61
- /// \sa class Block, block(Index,Index)
62
- ///
63
- EIGEN_DEVICE_FUNC
64
- inline BlockXpr block(Index startRow, Index startCol, Index blockRows, Index blockCols)
65
- {
66
- return BlockXpr(derived(), startRow, startCol, blockRows, blockCols);
67
- }
68
-
69
- /// This is the const version of block(Index,Index,Index,Index). */
70
- EIGEN_DEVICE_FUNC
71
- inline const ConstBlockXpr block(Index startRow, Index startCol, Index blockRows, Index blockCols) const
72
- {
73
- return ConstBlockXpr(derived(), startRow, startCol, blockRows, blockCols);
74
- }
75
-
76
-
77
-
78
-
79
- /// \returns a dynamic-size expression of a top-right corner of *this.
80
- ///
81
- /// \param cRows the number of rows in the corner
82
- /// \param cCols the number of columns in the corner
83
- ///
84
- /// Example: \include MatrixBase_topRightCorner_int_int.cpp
85
- /// Output: \verbinclude MatrixBase_topRightCorner_int_int.out
86
- ///
87
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
88
- ///
89
- /// \sa class Block, block(Index,Index,Index,Index)
90
- ///
91
- EIGEN_DEVICE_FUNC
92
- inline BlockXpr topRightCorner(Index cRows, Index cCols)
93
- {
94
- return BlockXpr(derived(), 0, cols() - cCols, cRows, cCols);
95
- }
96
-
97
- /// This is the const version of topRightCorner(Index, Index).
98
- EIGEN_DEVICE_FUNC
99
- inline const ConstBlockXpr topRightCorner(Index cRows, Index cCols) const
100
- {
101
- return ConstBlockXpr(derived(), 0, cols() - cCols, cRows, cCols);
102
- }
103
-
104
- /// \returns an expression of a fixed-size top-right corner of *this.
105
- ///
106
- /// \tparam CRows the number of rows in the corner
107
- /// \tparam CCols the number of columns in the corner
108
- ///
109
- /// Example: \include MatrixBase_template_int_int_topRightCorner.cpp
110
- /// Output: \verbinclude MatrixBase_template_int_int_topRightCorner.out
111
- ///
112
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
113
- ///
114
- /// \sa class Block, block<int,int>(Index,Index)
115
- ///
116
- template<int CRows, int CCols>
117
- EIGEN_DEVICE_FUNC
118
- inline typename FixedBlockXpr<CRows,CCols>::Type topRightCorner()
119
- {
120
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
121
- }
122
-
123
- /// This is the const version of topRightCorner<int, int>().
124
- template<int CRows, int CCols>
125
- EIGEN_DEVICE_FUNC
126
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner() const
127
- {
128
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
129
- }
130
-
131
- /// \returns an expression of a top-right corner of *this.
132
- ///
133
- /// \tparam CRows number of rows in corner as specified at compile-time
134
- /// \tparam CCols number of columns in corner as specified at compile-time
135
- /// \param cRows number of rows in corner as specified at run-time
136
- /// \param cCols number of columns in corner as specified at run-time
137
- ///
138
- /// This function is mainly useful for corners where the number of rows is specified at compile-time
139
- /// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
140
- /// information should not contradict. In other words, \a cRows should equal \a CRows unless
141
- /// \a CRows is \a Dynamic, and the same for the number of columns.
142
- ///
143
- /// Example: \include MatrixBase_template_int_int_topRightCorner_int_int.cpp
144
- /// Output: \verbinclude MatrixBase_template_int_int_topRightCorner_int_int.out
145
- ///
146
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
147
- ///
148
- /// \sa class Block
149
- ///
150
- template<int CRows, int CCols>
151
- inline typename FixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols)
152
- {
153
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
154
- }
155
-
156
- /// This is the const version of topRightCorner<int, int>(Index, Index).
157
- template<int CRows, int CCols>
158
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols) const
159
- {
160
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
161
- }
162
-
163
-
164
-
165
- /// \returns a dynamic-size expression of a top-left corner of *this.
166
- ///
167
- /// \param cRows the number of rows in the corner
168
- /// \param cCols the number of columns in the corner
169
- ///
170
- /// Example: \include MatrixBase_topLeftCorner_int_int.cpp
171
- /// Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
172
- ///
173
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
174
- ///
175
- /// \sa class Block, block(Index,Index,Index,Index)
176
- ///
177
- EIGEN_DEVICE_FUNC
178
- inline BlockXpr topLeftCorner(Index cRows, Index cCols)
179
- {
180
- return BlockXpr(derived(), 0, 0, cRows, cCols);
181
- }
182
-
183
- /// This is the const version of topLeftCorner(Index, Index).
184
- EIGEN_DEVICE_FUNC
185
- inline const ConstBlockXpr topLeftCorner(Index cRows, Index cCols) const
186
- {
187
- return ConstBlockXpr(derived(), 0, 0, cRows, cCols);
188
- }
189
-
190
- /// \returns an expression of a fixed-size top-left corner of *this.
191
- ///
192
- /// The template parameters CRows and CCols are the number of rows and columns in the corner.
193
- ///
194
- /// Example: \include MatrixBase_template_int_int_topLeftCorner.cpp
195
- /// Output: \verbinclude MatrixBase_template_int_int_topLeftCorner.out
196
- ///
197
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
198
- ///
199
- /// \sa class Block, block(Index,Index,Index,Index)
200
- ///
201
- template<int CRows, int CCols>
202
- EIGEN_DEVICE_FUNC
203
- inline typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner()
204
- {
205
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
206
- }
207
-
208
- /// This is the const version of topLeftCorner<int, int>().
209
- template<int CRows, int CCols>
210
- EIGEN_DEVICE_FUNC
211
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner() const
212
- {
213
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
214
- }
215
-
216
- /// \returns an expression of a top-left corner of *this.
217
- ///
218
- /// \tparam CRows number of rows in corner as specified at compile-time
219
- /// \tparam CCols number of columns in corner as specified at compile-time
220
- /// \param cRows number of rows in corner as specified at run-time
221
- /// \param cCols number of columns in corner as specified at run-time
222
- ///
223
- /// This function is mainly useful for corners where the number of rows is specified at compile-time
224
- /// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
225
- /// information should not contradict. In other words, \a cRows should equal \a CRows unless
226
- /// \a CRows is \a Dynamic, and the same for the number of columns.
227
- ///
228
- /// Example: \include MatrixBase_template_int_int_topLeftCorner_int_int.cpp
229
- /// Output: \verbinclude MatrixBase_template_int_int_topLeftCorner_int_int.out
230
- ///
231
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
232
- ///
233
- /// \sa class Block
234
- ///
235
- template<int CRows, int CCols>
236
- inline typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols)
237
- {
238
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
239
- }
240
-
241
- /// This is the const version of topLeftCorner<int, int>(Index, Index).
242
- template<int CRows, int CCols>
243
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols) const
244
- {
245
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
246
- }
247
-
248
-
249
-
250
- /// \returns a dynamic-size expression of a bottom-right corner of *this.
251
- ///
252
- /// \param cRows the number of rows in the corner
253
- /// \param cCols the number of columns in the corner
254
- ///
255
- /// Example: \include MatrixBase_bottomRightCorner_int_int.cpp
256
- /// Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
257
- ///
258
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
259
- ///
260
- /// \sa class Block, block(Index,Index,Index,Index)
261
- ///
262
- EIGEN_DEVICE_FUNC
263
- inline BlockXpr bottomRightCorner(Index cRows, Index cCols)
264
- {
265
- return BlockXpr(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
266
- }
267
-
268
- /// This is the const version of bottomRightCorner(Index, Index).
269
- EIGEN_DEVICE_FUNC
270
- inline const ConstBlockXpr bottomRightCorner(Index cRows, Index cCols) const
271
- {
272
- return ConstBlockXpr(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
273
- }
274
-
275
- /// \returns an expression of a fixed-size bottom-right corner of *this.
276
- ///
277
- /// The template parameters CRows and CCols are the number of rows and columns in the corner.
278
- ///
279
- /// Example: \include MatrixBase_template_int_int_bottomRightCorner.cpp
280
- /// Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner.out
281
- ///
282
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
283
- ///
284
- /// \sa class Block, block(Index,Index,Index,Index)
285
- ///
286
- template<int CRows, int CCols>
287
- EIGEN_DEVICE_FUNC
288
- inline typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner()
289
- {
290
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
291
- }
292
-
293
- /// This is the const version of bottomRightCorner<int, int>().
294
- template<int CRows, int CCols>
295
- EIGEN_DEVICE_FUNC
296
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner() const
297
- {
298
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
299
- }
300
-
301
- /// \returns an expression of a bottom-right corner of *this.
302
- ///
303
- /// \tparam CRows number of rows in corner as specified at compile-time
304
- /// \tparam CCols number of columns in corner as specified at compile-time
305
- /// \param cRows number of rows in corner as specified at run-time
306
- /// \param cCols number of columns in corner as specified at run-time
307
- ///
308
- /// This function is mainly useful for corners where the number of rows is specified at compile-time
309
- /// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
310
- /// information should not contradict. In other words, \a cRows should equal \a CRows unless
311
- /// \a CRows is \a Dynamic, and the same for the number of columns.
312
- ///
313
- /// Example: \include MatrixBase_template_int_int_bottomRightCorner_int_int.cpp
314
- /// Output: \verbinclude MatrixBase_template_int_int_bottomRightCorner_int_int.out
315
- ///
316
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
317
- ///
318
- /// \sa class Block
319
- ///
320
- template<int CRows, int CCols>
321
- inline typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols)
322
- {
323
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
324
- }
325
-
326
- /// This is the const version of bottomRightCorner<int, int>(Index, Index).
327
- template<int CRows, int CCols>
328
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols) const
329
- {
330
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
331
- }
332
-
333
-
334
-
335
- /// \returns a dynamic-size expression of a bottom-left corner of *this.
336
- ///
337
- /// \param cRows the number of rows in the corner
338
- /// \param cCols the number of columns in the corner
339
- ///
340
- /// Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
341
- /// Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
342
- ///
343
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
344
- ///
345
- /// \sa class Block, block(Index,Index,Index,Index)
346
- ///
347
- EIGEN_DEVICE_FUNC
348
- inline BlockXpr bottomLeftCorner(Index cRows, Index cCols)
349
- {
350
- return BlockXpr(derived(), rows() - cRows, 0, cRows, cCols);
351
- }
352
-
353
- /// This is the const version of bottomLeftCorner(Index, Index).
354
- EIGEN_DEVICE_FUNC
355
- inline const ConstBlockXpr bottomLeftCorner(Index cRows, Index cCols) const
356
- {
357
- return ConstBlockXpr(derived(), rows() - cRows, 0, cRows, cCols);
358
- }
359
-
360
- /// \returns an expression of a fixed-size bottom-left corner of *this.
361
- ///
362
- /// The template parameters CRows and CCols are the number of rows and columns in the corner.
363
- ///
364
- /// Example: \include MatrixBase_template_int_int_bottomLeftCorner.cpp
365
- /// Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner.out
366
- ///
367
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
368
- ///
369
- /// \sa class Block, block(Index,Index,Index,Index)
370
- ///
371
- template<int CRows, int CCols>
372
- EIGEN_DEVICE_FUNC
373
- inline typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner()
374
- {
375
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
376
- }
377
-
378
- /// This is the const version of bottomLeftCorner<int, int>().
379
- template<int CRows, int CCols>
380
- EIGEN_DEVICE_FUNC
381
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner() const
382
- {
383
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
384
- }
385
-
386
- /// \returns an expression of a bottom-left corner of *this.
387
- ///
388
- /// \tparam CRows number of rows in corner as specified at compile-time
389
- /// \tparam CCols number of columns in corner as specified at compile-time
390
- /// \param cRows number of rows in corner as specified at run-time
391
- /// \param cCols number of columns in corner as specified at run-time
392
- ///
393
- /// This function is mainly useful for corners where the number of rows is specified at compile-time
394
- /// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
395
- /// information should not contradict. In other words, \a cRows should equal \a CRows unless
396
- /// \a CRows is \a Dynamic, and the same for the number of columns.
397
- ///
398
- /// Example: \include MatrixBase_template_int_int_bottomLeftCorner_int_int.cpp
399
- /// Output: \verbinclude MatrixBase_template_int_int_bottomLeftCorner_int_int.out
400
- ///
401
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
402
- ///
403
- /// \sa class Block
404
- ///
405
- template<int CRows, int CCols>
406
- inline typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols)
407
- {
408
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
409
- }
410
-
411
- /// This is the const version of bottomLeftCorner<int, int>(Index, Index).
412
- template<int CRows, int CCols>
413
- inline const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols) const
414
- {
415
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
416
- }
417
-
418
-
419
-
420
- /// \returns a block consisting of the top rows of *this.
421
- ///
422
- /// \param n the number of rows in the block
423
- ///
424
- /// Example: \include MatrixBase_topRows_int.cpp
425
- /// Output: \verbinclude MatrixBase_topRows_int.out
426
- ///
427
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
428
- ///
429
- /// \sa class Block, block(Index,Index,Index,Index)
430
- ///
431
- EIGEN_DEVICE_FUNC
432
- inline RowsBlockXpr topRows(Index n)
433
- {
434
- return RowsBlockXpr(derived(), 0, 0, n, cols());
435
- }
436
-
437
- /// This is the const version of topRows(Index).
438
- EIGEN_DEVICE_FUNC
439
- inline ConstRowsBlockXpr topRows(Index n) const
440
- {
441
- return ConstRowsBlockXpr(derived(), 0, 0, n, cols());
442
- }
443
-
444
- /// \returns a block consisting of the top rows of *this.
445
- ///
446
- /// \tparam N the number of rows in the block as specified at compile-time
447
- /// \param n the number of rows in the block as specified at run-time
448
- ///
449
- /// The compile-time and run-time information should not contradict. In other words,
450
- /// \a n should equal \a N unless \a N is \a Dynamic.
451
- ///
452
- /// Example: \include MatrixBase_template_int_topRows.cpp
453
- /// Output: \verbinclude MatrixBase_template_int_topRows.out
454
- ///
455
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
456
- ///
457
- /// \sa class Block, block(Index,Index,Index,Index)
458
- ///
459
- template<int N>
460
- EIGEN_DEVICE_FUNC
461
- inline typename NRowsBlockXpr<N>::Type topRows(Index n = N)
462
- {
463
- return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
464
- }
465
-
466
- /// This is the const version of topRows<int>().
467
- template<int N>
468
- EIGEN_DEVICE_FUNC
469
- inline typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
470
- {
471
- return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
472
- }
473
-
474
-
475
-
476
- /// \returns a block consisting of the bottom rows of *this.
477
- ///
478
- /// \param n the number of rows in the block
479
- ///
480
- /// Example: \include MatrixBase_bottomRows_int.cpp
481
- /// Output: \verbinclude MatrixBase_bottomRows_int.out
482
- ///
483
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
484
- ///
485
- /// \sa class Block, block(Index,Index,Index,Index)
486
- ///
487
- EIGEN_DEVICE_FUNC
488
- inline RowsBlockXpr bottomRows(Index n)
489
- {
490
- return RowsBlockXpr(derived(), rows() - n, 0, n, cols());
491
- }
492
-
493
- /// This is the const version of bottomRows(Index).
494
- EIGEN_DEVICE_FUNC
495
- inline ConstRowsBlockXpr bottomRows(Index n) const
496
- {
497
- return ConstRowsBlockXpr(derived(), rows() - n, 0, n, cols());
498
- }
499
-
500
- /// \returns a block consisting of the bottom rows of *this.
501
- ///
502
- /// \tparam N the number of rows in the block as specified at compile-time
503
- /// \param n the number of rows in the block as specified at run-time
504
- ///
505
- /// The compile-time and run-time information should not contradict. In other words,
506
- /// \a n should equal \a N unless \a N is \a Dynamic.
507
- ///
508
- /// Example: \include MatrixBase_template_int_bottomRows.cpp
509
- /// Output: \verbinclude MatrixBase_template_int_bottomRows.out
510
- ///
511
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
512
- ///
513
- /// \sa class Block, block(Index,Index,Index,Index)
514
- ///
515
- template<int N>
516
- EIGEN_DEVICE_FUNC
517
- inline typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
518
- {
519
- return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
520
- }
521
-
522
- /// This is the const version of bottomRows<int>().
523
- template<int N>
524
- EIGEN_DEVICE_FUNC
525
- inline typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
526
- {
527
- return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
528
- }
529
-
530
-
531
-
532
- /// \returns a block consisting of a range of rows of *this.
533
- ///
534
- /// \param startRow the index of the first row in the block
535
- /// \param n the number of rows in the block
536
- ///
537
- /// Example: \include DenseBase_middleRows_int.cpp
538
- /// Output: \verbinclude DenseBase_middleRows_int.out
539
- ///
540
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
541
- ///
542
- /// \sa class Block, block(Index,Index,Index,Index)
543
- ///
544
- EIGEN_DEVICE_FUNC
545
- inline RowsBlockXpr middleRows(Index startRow, Index n)
546
- {
547
- return RowsBlockXpr(derived(), startRow, 0, n, cols());
548
- }
549
-
550
- /// This is the const version of middleRows(Index,Index).
551
- EIGEN_DEVICE_FUNC
552
- inline ConstRowsBlockXpr middleRows(Index startRow, Index n) const
553
- {
554
- return ConstRowsBlockXpr(derived(), startRow, 0, n, cols());
555
- }
556
-
557
- /// \returns a block consisting of a range of rows of *this.
558
- ///
559
- /// \tparam N the number of rows in the block as specified at compile-time
560
- /// \param startRow the index of the first row in the block
561
- /// \param n the number of rows in the block as specified at run-time
562
- ///
563
- /// The compile-time and run-time information should not contradict. In other words,
564
- /// \a n should equal \a N unless \a N is \a Dynamic.
565
- ///
566
- /// Example: \include DenseBase_template_int_middleRows.cpp
567
- /// Output: \verbinclude DenseBase_template_int_middleRows.out
568
- ///
569
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
570
- ///
571
- /// \sa class Block, block(Index,Index,Index,Index)
572
- ///
573
- template<int N>
574
- EIGEN_DEVICE_FUNC
575
- inline typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
576
- {
577
- return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
578
- }
579
-
580
- /// This is the const version of middleRows<int>().
581
- template<int N>
582
- EIGEN_DEVICE_FUNC
583
- inline typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) const
584
- {
585
- return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
586
- }
587
-
588
-
589
-
590
- /// \returns a block consisting of the left columns of *this.
591
- ///
592
- /// \param n the number of columns in the block
593
- ///
594
- /// Example: \include MatrixBase_leftCols_int.cpp
595
- /// Output: \verbinclude MatrixBase_leftCols_int.out
596
- ///
597
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
598
- ///
599
- /// \sa class Block, block(Index,Index,Index,Index)
600
- ///
601
- EIGEN_DEVICE_FUNC
602
- inline ColsBlockXpr leftCols(Index n)
603
- {
604
- return ColsBlockXpr(derived(), 0, 0, rows(), n);
605
- }
606
-
607
- /// This is the const version of leftCols(Index).
608
- EIGEN_DEVICE_FUNC
609
- inline ConstColsBlockXpr leftCols(Index n) const
610
- {
611
- return ConstColsBlockXpr(derived(), 0, 0, rows(), n);
612
- }
613
-
614
- /// \returns a block consisting of the left columns of *this.
615
- ///
616
- /// \tparam N the number of columns in the block as specified at compile-time
617
- /// \param n the number of columns in the block as specified at run-time
618
- ///
619
- /// The compile-time and run-time information should not contradict. In other words,
620
- /// \a n should equal \a N unless \a N is \a Dynamic.
621
- ///
622
- /// Example: \include MatrixBase_template_int_leftCols.cpp
623
- /// Output: \verbinclude MatrixBase_template_int_leftCols.out
624
- ///
625
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
626
- ///
627
- /// \sa class Block, block(Index,Index,Index,Index)
628
- ///
629
- template<int N>
630
- EIGEN_DEVICE_FUNC
631
- inline typename NColsBlockXpr<N>::Type leftCols(Index n = N)
632
- {
633
- return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
634
- }
635
-
636
- /// This is the const version of leftCols<int>().
637
- template<int N>
638
- EIGEN_DEVICE_FUNC
639
- inline typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
640
- {
641
- return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
642
- }
643
-
644
-
645
-
646
- /// \returns a block consisting of the right columns of *this.
647
- ///
648
- /// \param n the number of columns in the block
649
- ///
650
- /// Example: \include MatrixBase_rightCols_int.cpp
651
- /// Output: \verbinclude MatrixBase_rightCols_int.out
652
- ///
653
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
654
- ///
655
- /// \sa class Block, block(Index,Index,Index,Index)
656
- ///
657
- EIGEN_DEVICE_FUNC
658
- inline ColsBlockXpr rightCols(Index n)
659
- {
660
- return ColsBlockXpr(derived(), 0, cols() - n, rows(), n);
661
- }
662
-
663
- /// This is the const version of rightCols(Index).
664
- EIGEN_DEVICE_FUNC
665
- inline ConstColsBlockXpr rightCols(Index n) const
666
- {
667
- return ConstColsBlockXpr(derived(), 0, cols() - n, rows(), n);
668
- }
669
-
670
- /// \returns a block consisting of the right columns of *this.
671
- ///
672
- /// \tparam N the number of columns in the block as specified at compile-time
673
- /// \param n the number of columns in the block as specified at run-time
674
- ///
675
- /// The compile-time and run-time information should not contradict. In other words,
676
- /// \a n should equal \a N unless \a N is \a Dynamic.
677
- ///
678
- /// Example: \include MatrixBase_template_int_rightCols.cpp
679
- /// Output: \verbinclude MatrixBase_template_int_rightCols.out
680
- ///
681
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
682
- ///
683
- /// \sa class Block, block(Index,Index,Index,Index)
684
- ///
685
- template<int N>
686
- EIGEN_DEVICE_FUNC
687
- inline typename NColsBlockXpr<N>::Type rightCols(Index n = N)
688
- {
689
- return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
690
- }
691
-
692
- /// This is the const version of rightCols<int>().
693
- template<int N>
694
- EIGEN_DEVICE_FUNC
695
- inline typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
696
- {
697
- return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
698
- }
699
-
700
-
701
-
702
- /// \returns a block consisting of a range of columns of *this.
703
- ///
704
- /// \param startCol the index of the first column in the block
705
- /// \param numCols the number of columns in the block
706
- ///
707
- /// Example: \include DenseBase_middleCols_int.cpp
708
- /// Output: \verbinclude DenseBase_middleCols_int.out
709
- ///
710
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
711
- ///
712
- /// \sa class Block, block(Index,Index,Index,Index)
713
- ///
714
- EIGEN_DEVICE_FUNC
715
- inline ColsBlockXpr middleCols(Index startCol, Index numCols)
716
- {
717
- return ColsBlockXpr(derived(), 0, startCol, rows(), numCols);
718
- }
719
-
720
- /// This is the const version of middleCols(Index,Index).
721
- EIGEN_DEVICE_FUNC
722
- inline ConstColsBlockXpr middleCols(Index startCol, Index numCols) const
723
- {
724
- return ConstColsBlockXpr(derived(), 0, startCol, rows(), numCols);
725
- }
726
-
727
- /// \returns a block consisting of a range of columns of *this.
728
- ///
729
- /// \tparam N the number of columns in the block as specified at compile-time
730
- /// \param startCol the index of the first column in the block
731
- /// \param n the number of columns in the block as specified at run-time
732
- ///
733
- /// The compile-time and run-time information should not contradict. In other words,
734
- /// \a n should equal \a N unless \a N is \a Dynamic.
735
- ///
736
- /// Example: \include DenseBase_template_int_middleCols.cpp
737
- /// Output: \verbinclude DenseBase_template_int_middleCols.out
738
- ///
739
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
740
- ///
741
- /// \sa class Block, block(Index,Index,Index,Index)
742
- ///
743
- template<int N>
744
- EIGEN_DEVICE_FUNC
745
- inline typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
746
- {
747
- return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
748
- }
749
-
750
- /// This is the const version of middleCols<int>().
751
- template<int N>
752
- EIGEN_DEVICE_FUNC
753
- inline typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) const
754
- {
755
- return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
756
- }
757
-
758
-
759
-
760
- /// \returns a fixed-size expression of a block in *this.
761
- ///
762
- /// The template parameters \a NRows and \a NCols are the number of
763
- /// rows and columns in the block.
764
- ///
765
- /// \param startRow the first row in the block
766
- /// \param startCol the first column in the block
767
- ///
768
- /// Example: \include MatrixBase_block_int_int.cpp
769
- /// Output: \verbinclude MatrixBase_block_int_int.out
770
- ///
771
- /// \note since block is a templated member, the keyword template has to be used
772
- /// if the matrix type is also a template parameter: \code m.template block<3,3>(1,1); \endcode
773
- ///
774
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
775
- ///
776
- /// \sa class Block, block(Index,Index,Index,Index)
777
- ///
778
- template<int NRows, int NCols>
779
- EIGEN_DEVICE_FUNC
780
- inline typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol)
781
- {
782
- return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
783
- }
784
-
785
- /// This is the const version of block<>(Index, Index). */
786
- template<int NRows, int NCols>
787
- EIGEN_DEVICE_FUNC
788
- inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol) const
789
- {
790
- return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
791
- }
792
-
793
- /// \returns an expression of a block in *this.
794
- ///
795
- /// \tparam NRows number of rows in block as specified at compile-time
796
- /// \tparam NCols number of columns in block as specified at compile-time
797
- /// \param startRow the first row in the block
798
- /// \param startCol the first column in the block
799
- /// \param blockRows number of rows in block as specified at run-time
800
- /// \param blockCols number of columns in block as specified at run-time
801
- ///
802
- /// This function is mainly useful for blocks where the number of rows is specified at compile-time
803
- /// and the number of columns is specified at run-time, or vice versa. The compile-time and run-time
804
- /// information should not contradict. In other words, \a blockRows should equal \a NRows unless
805
- /// \a NRows is \a Dynamic, and the same for the number of columns.
806
- ///
807
- /// Example: \include MatrixBase_template_int_int_block_int_int_int_int.cpp
808
- /// Output: \verbinclude MatrixBase_template_int_int_block_int_int_int_int.cpp
809
- ///
810
- EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
811
- ///
812
- /// \sa class Block, block(Index,Index,Index,Index)
813
- ///
814
- template<int NRows, int NCols>
815
- inline typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
816
- Index blockRows, Index blockCols)
817
- {
818
- return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
819
- }
820
-
821
- /// This is the const version of block<>(Index, Index, Index, Index).
822
- template<int NRows, int NCols>
823
- inline const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
824
- Index blockRows, Index blockCols) const
825
- {
826
- return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
827
- }
828
-
829
- /// \returns an expression of the \a i-th column of *this. Note that the numbering starts at 0.
830
- ///
831
- /// Example: \include MatrixBase_col.cpp
832
- /// Output: \verbinclude MatrixBase_col.out
833
- ///
834
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
835
- /**
836
- * \sa row(), class Block */
837
- EIGEN_DEVICE_FUNC
838
- inline ColXpr col(Index i)
839
- {
840
- return ColXpr(derived(), i);
841
- }
842
-
843
- /// This is the const version of col().
844
- EIGEN_DEVICE_FUNC
845
- inline ConstColXpr col(Index i) const
846
- {
847
- return ConstColXpr(derived(), i);
848
- }
849
-
850
- /// \returns an expression of the \a i-th row of *this. Note that the numbering starts at 0.
851
- ///
852
- /// Example: \include MatrixBase_row.cpp
853
- /// Output: \verbinclude MatrixBase_row.out
854
- ///
855
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
856
- /**
857
- * \sa col(), class Block */
858
- EIGEN_DEVICE_FUNC
859
- inline RowXpr row(Index i)
860
- {
861
- return RowXpr(derived(), i);
862
- }
863
-
864
- /// This is the const version of row(). */
865
- EIGEN_DEVICE_FUNC
866
- inline ConstRowXpr row(Index i) const
867
- {
868
- return ConstRowXpr(derived(), i);
869
- }
870
-
871
- /// \returns a dynamic-size expression of a segment (i.e. a vector block) in *this.
872
- ///
873
- /// \only_for_vectors
874
- ///
875
- /// \param start the first coefficient in the segment
876
- /// \param n the number of coefficients in the segment
877
- ///
878
- /// Example: \include MatrixBase_segment_int_int.cpp
879
- /// Output: \verbinclude MatrixBase_segment_int_int.out
880
- ///
881
- /// \note Even though the returned expression has dynamic size, in the case
882
- /// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
883
- /// which means that evaluating it does not cause a dynamic memory allocation.
884
- ///
885
- /// \sa class Block, segment(Index)
886
- ///
887
- EIGEN_DEVICE_FUNC
888
- inline SegmentReturnType segment(Index start, Index n)
889
- {
890
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
891
- return SegmentReturnType(derived(), start, n);
892
- }
893
-
894
-
895
- /// This is the const version of segment(Index,Index).
896
- EIGEN_DEVICE_FUNC
897
- inline ConstSegmentReturnType segment(Index start, Index n) const
898
- {
899
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
900
- return ConstSegmentReturnType(derived(), start, n);
901
- }
902
-
903
- /// \returns a dynamic-size expression of the first coefficients of *this.
904
- ///
905
- /// \only_for_vectors
906
- ///
907
- /// \param n the number of coefficients in the segment
908
- ///
909
- /// Example: \include MatrixBase_start_int.cpp
910
- /// Output: \verbinclude MatrixBase_start_int.out
911
- ///
912
- /// \note Even though the returned expression has dynamic size, in the case
913
- /// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
914
- /// which means that evaluating it does not cause a dynamic memory allocation.
915
- ///
916
- /// \sa class Block, block(Index,Index)
917
- ///
918
- EIGEN_DEVICE_FUNC
919
- inline SegmentReturnType head(Index n)
920
- {
921
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
922
- return SegmentReturnType(derived(), 0, n);
923
- }
924
-
925
- /// This is the const version of head(Index).
926
- EIGEN_DEVICE_FUNC
927
- inline ConstSegmentReturnType head(Index n) const
928
- {
929
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
930
- return ConstSegmentReturnType(derived(), 0, n);
931
- }
932
-
933
- /// \returns a dynamic-size expression of the last coefficients of *this.
934
- ///
935
- /// \only_for_vectors
936
- ///
937
- /// \param n the number of coefficients in the segment
938
- ///
939
- /// Example: \include MatrixBase_end_int.cpp
940
- /// Output: \verbinclude MatrixBase_end_int.out
941
- ///
942
- /// \note Even though the returned expression has dynamic size, in the case
943
- /// when it is applied to a fixed-size vector, it inherits a fixed maximal size,
944
- /// which means that evaluating it does not cause a dynamic memory allocation.
945
- ///
946
- /// \sa class Block, block(Index,Index)
947
- ///
948
- EIGEN_DEVICE_FUNC
949
- inline SegmentReturnType tail(Index n)
950
- {
951
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
952
- return SegmentReturnType(derived(), this->size() - n, n);
953
- }
954
-
955
- /// This is the const version of tail(Index).
956
- EIGEN_DEVICE_FUNC
957
- inline ConstSegmentReturnType tail(Index n) const
958
- {
959
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
960
- return ConstSegmentReturnType(derived(), this->size() - n, n);
961
- }
962
-
963
- /// \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
964
- ///
965
- /// \only_for_vectors
966
- ///
967
- /// \tparam N the number of coefficients in the segment as specified at compile-time
968
- /// \param start the index of the first element in the segment
969
- /// \param n the number of coefficients in the segment as specified at compile-time
970
- ///
971
- /// The compile-time and run-time information should not contradict. In other words,
972
- /// \a n should equal \a N unless \a N is \a Dynamic.
973
- ///
974
- /// Example: \include MatrixBase_template_int_segment.cpp
975
- /// Output: \verbinclude MatrixBase_template_int_segment.out
976
- ///
977
- /// \sa class Block
978
- ///
979
- template<int N>
980
- EIGEN_DEVICE_FUNC
981
- inline typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
982
- {
983
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
984
- return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
985
- }
986
-
987
- /// This is the const version of segment<int>(Index).
988
- template<int N>
989
- EIGEN_DEVICE_FUNC
990
- inline typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N) const
991
- {
992
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
993
- return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
994
- }
995
-
996
- /// \returns a fixed-size expression of the first coefficients of *this.
997
- ///
998
- /// \only_for_vectors
999
- ///
1000
- /// \tparam N the number of coefficients in the segment as specified at compile-time
1001
- /// \param n the number of coefficients in the segment as specified at run-time
1002
- ///
1003
- /// The compile-time and run-time information should not contradict. In other words,
1004
- /// \a n should equal \a N unless \a N is \a Dynamic.
1005
- ///
1006
- /// Example: \include MatrixBase_template_int_start.cpp
1007
- /// Output: \verbinclude MatrixBase_template_int_start.out
1008
- ///
1009
- /// \sa class Block
1010
- ///
1011
- template<int N>
1012
- EIGEN_DEVICE_FUNC
1013
- inline typename FixedSegmentReturnType<N>::Type head(Index n = N)
1014
- {
1015
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1016
- return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
1017
- }
1018
-
1019
- /// This is the const version of head<int>().
1020
- template<int N>
1021
- EIGEN_DEVICE_FUNC
1022
- inline typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
1023
- {
1024
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1025
- return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
1026
- }
1027
-
1028
- /// \returns a fixed-size expression of the last coefficients of *this.
1029
- ///
1030
- /// \only_for_vectors
1031
- ///
1032
- /// \tparam N the number of coefficients in the segment as specified at compile-time
1033
- /// \param n the number of coefficients in the segment as specified at run-time
1034
- ///
1035
- /// The compile-time and run-time information should not contradict. In other words,
1036
- /// \a n should equal \a N unless \a N is \a Dynamic.
1037
- ///
1038
- /// Example: \include MatrixBase_template_int_end.cpp
1039
- /// Output: \verbinclude MatrixBase_template_int_end.out
1040
- ///
1041
- /// \sa class Block
1042
- ///
1043
- template<int N>
1044
- EIGEN_DEVICE_FUNC
1045
- inline typename FixedSegmentReturnType<N>::Type tail(Index n = N)
1046
- {
1047
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1048
- return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
1049
- }
1050
-
1051
- /// This is the const version of tail<int>.
1052
- template<int N>
1053
- EIGEN_DEVICE_FUNC
1054
- inline typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
1055
- {
1056
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1057
- return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
1058
- }