@smake/eigen 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -20
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +187 -120
  6. package/eigen/Eigen/Eigenvalues +16 -13
  7. package/eigen/Eigen/Geometry +18 -18
  8. package/eigen/Eigen/Householder +9 -7
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -13
  11. package/eigen/Eigen/KLUSupport +23 -21
  12. package/eigen/Eigen/LU +15 -16
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -51
  15. package/eigen/Eigen/PaStiXSupport +23 -21
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -20
  18. package/eigen/Eigen/QtAlignedMalloc +5 -12
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -17
  21. package/eigen/Eigen/Sparse +1 -2
  22. package/eigen/Eigen/SparseCholesky +18 -15
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +9 -9
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +366 -405
  37. package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
  42. package/eigen/Eigen/src/Core/Array.h +329 -370
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
  48. package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
  49. package/eigen/Eigen/src/Core/Block.h +371 -390
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
  53. package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
  59. package/eigen/Eigen/src/Core/DenseBase.h +630 -658
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
  61. package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +168 -207
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +167 -217
  67. package/eigen/Eigen/src/Core/EigenBase.h +74 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -113
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
  75. package/eigen/Eigen/src/Core/IO.h +131 -156
  76. package/eigen/Eigen/src/Core/IndexedView.h +209 -125
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +50 -59
  80. package/eigen/Eigen/src/Core/Map.h +123 -141
  81. package/eigen/Eigen/src/Core/MapBase.h +255 -282
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
  84. package/eigen/Eigen/src/Core/Matrix.h +463 -494
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
  86. package/eigen/Eigen/src/Core/NestByValue.h +58 -52
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -86
  88. package/eigen/Eigen/src/Core/NumTraits.h +206 -206
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
  92. package/eigen/Eigen/src/Core/Product.h +246 -130
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
  94. package/eigen/Eigen/src/Core/Random.h +153 -164
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +334 -314
  98. package/eigen/Eigen/src/Core/Ref.h +259 -257
  99. package/eigen/Eigen/src/Core/Replicate.h +92 -104
  100. package/eigen/Eigen/src/Core/Reshaped.h +215 -271
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +133 -148
  103. package/eigen/Eigen/src/Core/Select.h +68 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +88 -102
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
  109. package/eigen/Eigen/src/Core/SolverBase.h +132 -133
  110. package/eigen/Eigen/src/Core/StableNorm.h +113 -147
  111. package/eigen/Eigen/src/Core/StlIterators.h +404 -248
  112. package/eigen/Eigen/src/Core/Stride.h +90 -92
  113. package/eigen/Eigen/src/Core/Swap.h +70 -39
  114. package/eigen/Eigen/src/Core/Transpose.h +258 -295
  115. package/eigen/Eigen/src/Core/Transpositions.h +270 -333
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
  119. package/eigen/Eigen/src/Core/Visitor.h +464 -308
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +229 -41
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2380 -1362
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +54 -82
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -47
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -277
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
  217. package/eigen/Eigen/src/Core/util/Constants.h +297 -262
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +417 -116
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
  226. package/eigen/Eigen/src/Core/util/Macros.h +655 -773
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +970 -748
  229. package/eigen/Eigen/src/Core/util/Meta.h +581 -633
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +17 -17
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +89 -105
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
  264. package/eigen/Eigen/src/Geometry/Transform.h +858 -936
  265. package/eigen/Eigen/src/Geometry/Translation.h +94 -92
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
  269. package/eigen/Eigen/src/Householder/Householder.h +102 -124
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
  285. package/eigen/Eigen/src/LU/Determinant.h +50 -69
  286. package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +243 -265
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -430
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +244 -264
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +577 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1603 -1245
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +370 -416
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +138 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +756 -710
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +245 -301
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +89 -100
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +124 -132
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +450 -502
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -730
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +428 -464
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9972 -16179
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/{BlockMethods.h → BlockMethods.inc} +434 -506
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/package.json +1 -1
  409. package/eigen/COPYING.APACHE +0 -203
  410. package/eigen/COPYING.BSD +0 -26
  411. package/eigen/COPYING.GPL +0 -674
  412. package/eigen/COPYING.LGPL +0 -502
  413. package/eigen/COPYING.MINPACK +0 -51
  414. package/eigen/COPYING.MPL2 +0 -373
  415. package/eigen/COPYING.README +0 -18
  416. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
  417. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
  418. package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
  419. package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
  420. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  421. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  422. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  423. package/eigen/Eigen/src/misc/lapack.h +0 -152
  424. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  425. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  426. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  427. package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  428. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  429. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  430. package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  431. package/eigen/README.md +0 -5
@@ -18,37 +18,62 @@ typedef Block<Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMaj
18
18
  typedef const Block<const Derived, 1, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowXpr;
19
19
  /// \internal expression type of a block of whole columns */
20
20
  typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ColsBlockXpr;
21
- typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor> ConstColsBlockXpr;
21
+ typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, Dynamic, !IsRowMajor>
22
+ ConstColsBlockXpr;
22
23
  /// \internal expression type of a block of whole rows */
23
24
  typedef Block<Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> RowsBlockXpr;
24
25
  typedef const Block<const Derived, Dynamic, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> ConstRowsBlockXpr;
25
26
  /// \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; };
27
+ template <int N>
28
+ struct NColsBlockXpr {
29
+ typedef Block<Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type;
30
+ };
31
+ template <int N>
32
+ struct ConstNColsBlockXpr {
33
+ typedef const Block<const Derived, internal::traits<Derived>::RowsAtCompileTime, N, !IsRowMajor> Type;
34
+ };
28
35
  /// \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; };
36
+ template <int N>
37
+ struct NRowsBlockXpr {
38
+ typedef Block<Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type;
39
+ };
40
+ template <int N>
41
+ struct ConstNRowsBlockXpr {
42
+ typedef const Block<const Derived, N, internal::traits<Derived>::ColsAtCompileTime, IsRowMajor> Type;
43
+ };
31
44
  /// \internal expression of a block */
32
45
  typedef Block<Derived> BlockXpr;
33
46
  typedef const Block<const Derived> ConstBlockXpr;
34
47
  /// \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; };
48
+ template <int Rows, int Cols>
49
+ struct FixedBlockXpr {
50
+ typedef Block<Derived, Rows, Cols> Type;
51
+ };
52
+ template <int Rows, int Cols>
53
+ struct ConstFixedBlockXpr {
54
+ typedef Block<const Derived, Rows, Cols> Type;
55
+ };
37
56
 
38
57
  typedef VectorBlock<Derived> SegmentReturnType;
39
58
  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; };
59
+ template <int Size>
60
+ struct FixedSegmentReturnType {
61
+ typedef VectorBlock<Derived, Size> Type;
62
+ };
63
+ template <int Size>
64
+ struct ConstFixedSegmentReturnType {
65
+ typedef const VectorBlock<const Derived, Size> Type;
66
+ };
42
67
 
43
68
  /// \internal inner-vector
44
- typedef Block<Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> InnerVectorReturnType;
45
- typedef Block<const Derived,IsRowMajor?1:Dynamic,IsRowMajor?Dynamic:1,true> ConstInnerVectorReturnType;
69
+ typedef Block<Derived, IsRowMajor ? 1 : Dynamic, IsRowMajor ? Dynamic : 1, true> InnerVectorReturnType;
70
+ typedef Block<const Derived, IsRowMajor ? 1 : Dynamic, IsRowMajor ? Dynamic : 1, true> ConstInnerVectorReturnType;
46
71
 
47
72
  /// \internal set of inner-vectors
48
- typedef Block<Derived,Dynamic,Dynamic,true> InnerVectorsReturnType;
49
- typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
73
+ typedef Block<Derived, Dynamic, Dynamic, true> InnerVectorsReturnType;
74
+ typedef Block<const Derived, Dynamic, Dynamic, true> ConstInnerVectorsReturnType;
50
75
 
51
- #endif // not EIGEN_PARSED_BY_DOXYGEN
76
+ #endif // not EIGEN_PARSED_BY_DOXYGEN
52
77
 
53
78
  /// \returns an expression of a block in \c *this with either dynamic or fixed sizes.
54
79
  ///
@@ -64,16 +89,15 @@ typedef Block<const Derived,Dynamic,Dynamic,true> ConstInnerVectorsReturnType;
64
89
  ///
65
90
  /// \newin{3.4}:
66
91
  ///
67
- /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing Eigen::fix<N>,
68
- /// or Eigen::fix<N>(n) as arguments. In the later case, \c n plays the role of a runtime fallback value in case \c N equals Eigen::Dynamic.
69
- /// Here is an example with a fixed number of rows \c NRows and dynamic number of columns \c cols:
70
- /// \code
71
- /// mat.block(i,j,fix<NRows>,cols)
72
- /// \endcode
92
+ /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
93
+ /// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. In the later case, \c n plays the role of a runtime fallback value
94
+ /// in case \c N equals Eigen::Dynamic. Here is an example with a fixed number of rows \c NRows and dynamic number of
95
+ /// columns \c cols: \code mat.block(i,j,fix<NRows>,cols) \endcode
73
96
  ///
74
97
  /// This function thus fully covers the features offered by the following overloads block<NRows,NCols>(Index, Index),
75
98
  /// and block<NRows,NCols>(Index, Index, Index, Index) that are thus obsolete. Indeed, this generic version avoids
76
- /// redundancy, it preserves the argument order, and prevents the need to rely on the template keyword in templated code.
99
+ /// redundancy, it preserves the argument order, and prevents the need to rely on the template keyword in templated
100
+ /// code.
77
101
  ///
78
102
  /// but with less redundancy and more consistency as it does not modify the argument order
79
103
  /// and seamlessly enable hybrid fixed/dynamic sizes.
@@ -86,35 +110,40 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
86
110
  ///
87
111
  /// \sa class Block, fix, fix<N>(int)
88
112
  ///
89
- template<typename NRowsType, typename NColsType>
113
+ template <typename NRowsType, typename NColsType>
90
114
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
91
115
  #ifndef EIGEN_PARSED_BY_DOXYGEN
92
- typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
116
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
117
+ internal::get_fixed_value<NColsType>::value>::Type
93
118
  #else
94
- typename FixedBlockXpr<...,...>::Type
119
+ typename FixedBlockXpr<..., ...>::Type
95
120
  #endif
96
- block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols)
97
- {
98
- return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type(
99
- derived(), startRow, startCol, internal::get_runtime_value(blockRows), internal::get_runtime_value(blockCols));
121
+ block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) {
122
+ return
123
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
124
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), startRow, startCol,
125
+ internal::get_runtime_value(blockRows),
126
+ internal::get_runtime_value(blockCols));
100
127
  }
101
128
 
102
129
  /// This is the const version of block(Index,Index,NRowsType,NColsType)
103
- template<typename NRowsType, typename NColsType>
130
+ template <typename NRowsType, typename NColsType>
104
131
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
105
132
  #ifndef EIGEN_PARSED_BY_DOXYGEN
106
- const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
133
+ const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
134
+ internal::get_fixed_value<NColsType>::value>::Type
107
135
  #else
108
- const typename ConstFixedBlockXpr<...,...>::Type
136
+ const typename ConstFixedBlockXpr<..., ...>::Type
109
137
  #endif
110
- block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) const
111
- {
112
- return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type(
113
- derived(), startRow, startCol, internal::get_runtime_value(blockRows), internal::get_runtime_value(blockCols));
138
+ block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols) const {
139
+ return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
140
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), startRow, startCol,
141
+ internal::get_runtime_value(
142
+ blockRows),
143
+ internal::get_runtime_value(
144
+ blockCols));
114
145
  }
115
146
 
116
-
117
-
118
147
  /// \returns a expression of a top-right corner of \c *this with either dynamic or fixed sizes.
119
148
  ///
120
149
  /// \param cRows the number of rows in the corner
@@ -125,38 +154,50 @@ block(Index startRow, Index startCol, NRowsType blockRows, NColsType blockCols)
125
154
  /// Example with dynamic sizes: \include MatrixBase_topRightCorner_int_int.cpp
126
155
  /// Output: \verbinclude MatrixBase_topRightCorner_int_int.out
127
156
  ///
128
- /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing Eigen::fix<N>,
129
- /// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
157
+ /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
158
+ /// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
159
+ /// for the details.
130
160
  ///
131
161
  EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
132
162
  ///
133
163
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
134
164
  ///
135
- template<typename NRowsType, typename NColsType>
165
+ template <typename NRowsType, typename NColsType>
136
166
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
137
167
  #ifndef EIGEN_PARSED_BY_DOXYGEN
138
- typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
168
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
169
+ internal::get_fixed_value<NColsType>::value>::Type
139
170
  #else
140
- typename FixedBlockXpr<...,...>::Type
171
+ typename FixedBlockXpr<..., ...>::Type
141
172
  #endif
142
- topRightCorner(NRowsType cRows, NColsType cCols)
143
- {
144
- return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
145
- (derived(), 0, cols() - internal::get_runtime_value(cCols), internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
173
+ topRightCorner(NRowsType cRows, NColsType cCols) {
174
+ return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
175
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), 0,
176
+ cols() - internal::get_runtime_value(
177
+ cCols),
178
+ internal::get_runtime_value(cRows),
179
+ internal::get_runtime_value(cCols));
146
180
  }
147
181
 
148
182
  /// This is the const version of topRightCorner(NRowsType, NColsType).
149
- template<typename NRowsType, typename NColsType>
183
+ template <typename NRowsType, typename NColsType>
150
184
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
151
185
  #ifndef EIGEN_PARSED_BY_DOXYGEN
152
- const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
186
+ const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
187
+ internal::get_fixed_value<NColsType>::value>::Type
153
188
  #else
154
- const typename ConstFixedBlockXpr<...,...>::Type
189
+ const typename ConstFixedBlockXpr<..., ...>::Type
155
190
  #endif
156
- topRightCorner(NRowsType cRows, NColsType cCols) const
157
- {
158
- return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
159
- (derived(), 0, cols() - internal::get_runtime_value(cCols), internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
191
+ topRightCorner(NRowsType cRows, NColsType cCols) const {
192
+ return
193
+ typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
194
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), 0,
195
+ cols() -
196
+ internal::get_runtime_value(
197
+ cCols),
198
+ internal::get_runtime_value(cRows),
199
+ internal::get_runtime_value(
200
+ cCols));
160
201
  }
161
202
 
162
203
  /// \returns an expression of a fixed-size top-right corner of \c *this.
@@ -171,19 +212,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
171
212
  ///
172
213
  /// \sa class Block, block<int,int>(Index,Index)
173
214
  ///
174
- template<int CRows, int CCols>
175
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
176
- typename FixedBlockXpr<CRows,CCols>::Type topRightCorner()
177
- {
178
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
215
+ template <int CRows, int CCols>
216
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topRightCorner() {
217
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - CCols);
179
218
  }
180
219
 
181
220
  /// This is the const version of topRightCorner<int, int>().
182
- template<int CRows, int CCols>
183
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
184
- const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner() const
185
- {
186
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - CCols);
221
+ template <int CRows, int CCols>
222
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topRightCorner() const {
223
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - CCols);
187
224
  }
188
225
 
189
226
  /// \returns an expression of a top-right corner of \c *this.
@@ -205,23 +242,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
205
242
  ///
206
243
  /// \sa class Block
207
244
  ///
208
- template<int CRows, int CCols>
209
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
210
- typename FixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols)
211
- {
212
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
245
+ template <int CRows, int CCols>
246
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topRightCorner(Index cRows,
247
+ Index cCols) {
248
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
213
249
  }
214
250
 
215
251
  /// This is the const version of topRightCorner<int, int>(Index, Index).
216
- template<int CRows, int CCols>
217
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
218
- const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows, Index cCols) const
219
- {
220
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
252
+ template <int CRows, int CCols>
253
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topRightCorner(
254
+ Index cRows, Index cCols) const {
255
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, cols() - cCols, cRows, cCols);
221
256
  }
222
257
 
223
-
224
-
225
258
  /// \returns an expression of a top-left corner of \c *this with either dynamic or fixed sizes.
226
259
  ///
227
260
  /// \param cRows the number of rows in the corner
@@ -232,38 +265,45 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type topRightCorner(Index cRows,
232
265
  /// Example: \include MatrixBase_topLeftCorner_int_int.cpp
233
266
  /// Output: \verbinclude MatrixBase_topLeftCorner_int_int.out
234
267
  ///
235
- /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing Eigen::fix<N>,
236
- /// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
268
+ /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
269
+ /// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
270
+ /// for the details.
237
271
  ///
238
272
  EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
239
273
  ///
240
274
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
241
275
  ///
242
- template<typename NRowsType, typename NColsType>
276
+ template <typename NRowsType, typename NColsType>
243
277
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
244
278
  #ifndef EIGEN_PARSED_BY_DOXYGEN
245
- typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
279
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
280
+ internal::get_fixed_value<NColsType>::value>::Type
246
281
  #else
247
- typename FixedBlockXpr<...,...>::Type
282
+ typename FixedBlockXpr<..., ...>::Type
248
283
  #endif
249
- topLeftCorner(NRowsType cRows, NColsType cCols)
250
- {
251
- return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
252
- (derived(), 0, 0, internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
284
+ topLeftCorner(NRowsType cRows, NColsType cCols) {
285
+ return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
286
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0,
287
+ internal::get_runtime_value(cRows),
288
+ internal::get_runtime_value(cCols));
253
289
  }
254
290
 
255
291
  /// This is the const version of topLeftCorner(Index, Index).
256
- template<typename NRowsType, typename NColsType>
292
+ template <typename NRowsType, typename NColsType>
257
293
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
258
294
  #ifndef EIGEN_PARSED_BY_DOXYGEN
259
- const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
295
+ const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
296
+ internal::get_fixed_value<NColsType>::value>::Type
260
297
  #else
261
- const typename ConstFixedBlockXpr<...,...>::Type
298
+ const typename ConstFixedBlockXpr<..., ...>::Type
262
299
  #endif
263
- topLeftCorner(NRowsType cRows, NColsType cCols) const
264
- {
265
- return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
266
- (derived(), 0, 0, internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
300
+ topLeftCorner(NRowsType cRows, NColsType cCols) const {
301
+ return
302
+ typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
303
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0,
304
+ internal::get_runtime_value(cRows),
305
+ internal::get_runtime_value(
306
+ cCols));
267
307
  }
268
308
 
269
309
  /// \returns an expression of a fixed-size top-left corner of \c *this.
@@ -277,19 +317,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
277
317
  ///
278
318
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
279
319
  ///
280
- template<int CRows, int CCols>
281
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
282
- typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner()
283
- {
284
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
320
+ template <int CRows, int CCols>
321
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topLeftCorner() {
322
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0);
285
323
  }
286
324
 
287
325
  /// This is the const version of topLeftCorner<int, int>().
288
- template<int CRows, int CCols>
289
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
290
- const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner() const
291
- {
292
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0);
326
+ template <int CRows, int CCols>
327
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topLeftCorner() const {
328
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0);
293
329
  }
294
330
 
295
331
  /// \returns an expression of a top-left corner of \c *this.
@@ -311,23 +347,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
311
347
  ///
312
348
  /// \sa class Block
313
349
  ///
314
- template<int CRows, int CCols>
315
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
316
- typename FixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols)
317
- {
318
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
350
+ template <int CRows, int CCols>
351
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type topLeftCorner(Index cRows,
352
+ Index cCols) {
353
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0, cRows, cCols);
319
354
  }
320
355
 
321
356
  /// This is the const version of topLeftCorner<int, int>(Index, Index).
322
- template<int CRows, int CCols>
323
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
324
- const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows, Index cCols) const
325
- {
326
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), 0, 0, cRows, cCols);
357
+ template <int CRows, int CCols>
358
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type topLeftCorner(
359
+ Index cRows, Index cCols) const {
360
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), 0, 0, cRows, cCols);
327
361
  }
328
362
 
329
-
330
-
331
363
  /// \returns an expression of a bottom-right corner of \c *this with either dynamic or fixed sizes.
332
364
  ///
333
365
  /// \param cRows the number of rows in the corner
@@ -338,40 +370,45 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type topLeftCorner(Index cRows,
338
370
  /// Example: \include MatrixBase_bottomRightCorner_int_int.cpp
339
371
  /// Output: \verbinclude MatrixBase_bottomRightCorner_int_int.out
340
372
  ///
341
- /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing Eigen::fix<N>,
342
- /// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
373
+ /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
374
+ /// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
375
+ /// for the details.
343
376
  ///
344
377
  EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
345
378
  ///
346
379
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
347
380
  ///
348
- template<typename NRowsType, typename NColsType>
381
+ template <typename NRowsType, typename NColsType>
349
382
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
350
383
  #ifndef EIGEN_PARSED_BY_DOXYGEN
351
- typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
384
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
385
+ internal::get_fixed_value<NColsType>::value>::Type
352
386
  #else
353
- typename FixedBlockXpr<...,...>::Type
387
+ typename FixedBlockXpr<..., ...>::Type
354
388
  #endif
355
- bottomRightCorner(NRowsType cRows, NColsType cCols)
356
- {
357
- return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
358
- (derived(), rows() - internal::get_runtime_value(cRows), cols() - internal::get_runtime_value(cCols),
359
- internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
389
+ bottomRightCorner(NRowsType cRows, NColsType cCols) {
390
+ return
391
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value, internal::get_fixed_value<NColsType>::value>::
392
+ Type(derived(), rows() - internal::get_runtime_value(cRows), cols() - internal::get_runtime_value(cCols),
393
+ internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
360
394
  }
361
395
 
362
396
  /// This is the const version of bottomRightCorner(NRowsType, NColsType).
363
- template<typename NRowsType, typename NColsType>
397
+ template <typename NRowsType, typename NColsType>
364
398
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
365
399
  #ifndef EIGEN_PARSED_BY_DOXYGEN
366
- const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
400
+ const typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
401
+ internal::get_fixed_value<NColsType>::value>::Type
367
402
  #else
368
- const typename ConstFixedBlockXpr<...,...>::Type
403
+ const typename ConstFixedBlockXpr<..., ...>::Type
369
404
  #endif
370
- bottomRightCorner(NRowsType cRows, NColsType cCols) const
371
- {
372
- return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
373
- (derived(), rows() - internal::get_runtime_value(cRows), cols() - internal::get_runtime_value(cCols),
374
- internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
405
+ bottomRightCorner(NRowsType cRows, NColsType cCols) const {
406
+ return typename ConstFixedBlockXpr<
407
+ internal::get_fixed_value<NRowsType>::value,
408
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), rows() - internal::get_runtime_value(cRows),
409
+ cols() - internal::get_runtime_value(cCols),
410
+ internal::get_runtime_value(cRows),
411
+ internal::get_runtime_value(cCols));
375
412
  }
376
413
 
377
414
  /// \returns an expression of a fixed-size bottom-right corner of \c *this.
@@ -385,19 +422,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
385
422
  ///
386
423
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
387
424
  ///
388
- template<int CRows, int CCols>
389
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
390
- typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner()
391
- {
392
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
425
+ template <int CRows, int CCols>
426
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomRightCorner() {
427
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, cols() - CCols);
393
428
  }
394
429
 
395
430
  /// This is the const version of bottomRightCorner<int, int>().
396
- template<int CRows, int CCols>
397
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
398
- const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner() const
399
- {
400
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, cols() - CCols);
431
+ template <int CRows, int CCols>
432
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomRightCorner() const {
433
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, cols() - CCols);
401
434
  }
402
435
 
403
436
  /// \returns an expression of a bottom-right corner of \c *this.
@@ -419,23 +452,19 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
419
452
  ///
420
453
  /// \sa class Block
421
454
  ///
422
- template<int CRows, int CCols>
423
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
424
- typename FixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols)
425
- {
426
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
455
+ template <int CRows, int CCols>
456
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomRightCorner(Index cRows,
457
+ Index cCols) {
458
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
427
459
  }
428
460
 
429
461
  /// This is the const version of bottomRightCorner<int, int>(Index, Index).
430
- template<int CRows, int CCols>
431
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
432
- const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRows, Index cCols) const
433
- {
434
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
462
+ template <int CRows, int CCols>
463
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomRightCorner(
464
+ Index cRows, Index cCols) const {
465
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
435
466
  }
436
467
 
437
-
438
-
439
468
  /// \returns an expression of a bottom-left corner of \c *this with either dynamic or fixed sizes.
440
469
  ///
441
470
  /// \param cRows the number of rows in the corner
@@ -446,40 +475,47 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomRightCorner(Index cRo
446
475
  /// Example: \include MatrixBase_bottomLeftCorner_int_int.cpp
447
476
  /// Output: \verbinclude MatrixBase_bottomLeftCorner_int_int.out
448
477
  ///
449
- /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing Eigen::fix<N>,
450
- /// or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
478
+ /// The number of rows \a blockRows and columns \a blockCols can also be specified at compile-time by passing
479
+ /// Eigen::fix<N>, or Eigen::fix<N>(n) as arguments. See \link block(Index,Index,NRowsType,NColsType) block() \endlink
480
+ /// for the details.
451
481
  ///
452
482
  EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
453
483
  ///
454
484
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
455
485
  ///
456
- template<typename NRowsType, typename NColsType>
486
+ template <typename NRowsType, typename NColsType>
457
487
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
458
488
  #ifndef EIGEN_PARSED_BY_DOXYGEN
459
- typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
489
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
490
+ internal::get_fixed_value<NColsType>::value>::Type
460
491
  #else
461
- typename FixedBlockXpr<...,...>::Type
492
+ typename FixedBlockXpr<..., ...>::Type
462
493
  #endif
463
- bottomLeftCorner(NRowsType cRows, NColsType cCols)
464
- {
465
- return typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
466
- (derived(), rows() - internal::get_runtime_value(cRows), 0,
467
- internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
494
+ bottomLeftCorner(NRowsType cRows, NColsType cCols) {
495
+ return
496
+ typename FixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
497
+ internal::get_fixed_value<NColsType>::value>::Type(derived(),
498
+ rows() -
499
+ internal::get_runtime_value(cRows),
500
+ 0, internal::get_runtime_value(cRows),
501
+ internal::get_runtime_value(cCols));
468
502
  }
469
503
 
470
504
  /// This is the const version of bottomLeftCorner(NRowsType, NColsType).
471
- template<typename NRowsType, typename NColsType>
505
+ template <typename NRowsType, typename NColsType>
472
506
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
473
507
  #ifndef EIGEN_PARSED_BY_DOXYGEN
474
- typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
508
+ typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,
509
+ internal::get_fixed_value<NColsType>::value>::Type
475
510
  #else
476
- typename ConstFixedBlockXpr<...,...>::Type
511
+ typename ConstFixedBlockXpr<..., ...>::Type
477
512
  #endif
478
- bottomLeftCorner(NRowsType cRows, NColsType cCols) const
479
- {
480
- return typename ConstFixedBlockXpr<internal::get_fixed_value<NRowsType>::value,internal::get_fixed_value<NColsType>::value>::Type
481
- (derived(), rows() - internal::get_runtime_value(cRows), 0,
482
- internal::get_runtime_value(cRows), internal::get_runtime_value(cCols));
513
+ bottomLeftCorner(NRowsType cRows, NColsType cCols) const {
514
+ return typename ConstFixedBlockXpr<
515
+ internal::get_fixed_value<NRowsType>::value,
516
+ internal::get_fixed_value<NColsType>::value>::Type(derived(), rows() - internal::get_runtime_value(cRows), 0,
517
+ internal::get_runtime_value(cRows),
518
+ internal::get_runtime_value(cCols));
483
519
  }
484
520
 
485
521
  /// \returns an expression of a fixed-size bottom-left corner of \c *this.
@@ -493,19 +529,15 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
493
529
  ///
494
530
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
495
531
  ///
496
- template<int CRows, int CCols>
497
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
498
- typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner()
499
- {
500
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
532
+ template <int CRows, int CCols>
533
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomLeftCorner() {
534
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, 0);
501
535
  }
502
536
 
503
537
  /// This is the const version of bottomLeftCorner<int, int>().
504
- template<int CRows, int CCols>
505
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
506
- const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner() const
507
- {
508
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - CRows, 0);
538
+ template <int CRows, int CCols>
539
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomLeftCorner() const {
540
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - CRows, 0);
509
541
  }
510
542
 
511
543
  /// \returns an expression of a bottom-left corner of \c *this.
@@ -527,23 +559,18 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
527
559
  ///
528
560
  /// \sa class Block
529
561
  ///
530
- template<int CRows, int CCols>
531
- EIGEN_STRONG_INLINE
532
- typename FixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols)
533
- {
534
- return typename FixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
562
+ template <int CRows, int CCols>
563
+ EIGEN_STRONG_INLINE typename FixedBlockXpr<CRows, CCols>::Type bottomLeftCorner(Index cRows, Index cCols) {
564
+ return typename FixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
535
565
  }
536
566
 
537
567
  /// This is the const version of bottomLeftCorner<int, int>(Index, Index).
538
- template<int CRows, int CCols>
539
- EIGEN_STRONG_INLINE
540
- const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRows, Index cCols) const
541
- {
542
- return typename ConstFixedBlockXpr<CRows,CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
568
+ template <int CRows, int CCols>
569
+ EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<CRows, CCols>::Type bottomLeftCorner(Index cRows,
570
+ Index cCols) const {
571
+ return typename ConstFixedBlockXpr<CRows, CCols>::Type(derived(), rows() - cRows, 0, cRows, cCols);
543
572
  }
544
573
 
545
-
546
-
547
574
  /// \returns a block consisting of the top rows of \c *this.
548
575
  ///
549
576
  /// \param n the number of rows in the block
@@ -556,35 +583,33 @@ const typename ConstFixedBlockXpr<CRows,CCols>::Type bottomLeftCorner(Index cRow
556
583
  /// or Eigen::fix<N>(n) as arguments.
557
584
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
558
585
  ///
559
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
586
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
560
587
  ///
561
588
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
562
589
  ///
563
- template<typename NRowsType>
590
+ template <typename NRowsType>
564
591
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
565
592
  #ifndef EIGEN_PARSED_BY_DOXYGEN
566
- typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
593
+ typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
567
594
  #else
568
- typename NRowsBlockXpr<...>::Type
595
+ typename NRowsBlockXpr<...>::Type
569
596
  #endif
570
- topRows(NRowsType n)
571
- {
572
- return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
573
- (derived(), 0, 0, internal::get_runtime_value(n), cols());
597
+ topRows(NRowsType n) {
598
+ return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
599
+ derived(), 0, 0, internal::get_runtime_value(n), cols());
574
600
  }
575
601
 
576
602
  /// This is the const version of topRows(NRowsType).
577
- template<typename NRowsType>
603
+ template <typename NRowsType>
578
604
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
579
605
  #ifndef EIGEN_PARSED_BY_DOXYGEN
580
- const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
606
+ const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
581
607
  #else
582
- const typename ConstNRowsBlockXpr<...>::Type
608
+ const typename ConstNRowsBlockXpr<...>::Type
583
609
  #endif
584
- topRows(NRowsType n) const
585
- {
586
- return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
587
- (derived(), 0, 0, internal::get_runtime_value(n), cols());
610
+ topRows(NRowsType n) const {
611
+ return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
612
+ derived(), 0, 0, internal::get_runtime_value(n), cols());
588
613
  }
589
614
 
590
615
  /// \returns a block consisting of the top rows of \c *this.
@@ -598,27 +623,21 @@ topRows(NRowsType n) const
598
623
  /// Example: \include MatrixBase_template_int_topRows.cpp
599
624
  /// Output: \verbinclude MatrixBase_template_int_topRows.out
600
625
  ///
601
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
626
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
602
627
  ///
603
628
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
604
629
  ///
605
- template<int N>
606
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
607
- typename NRowsBlockXpr<N>::Type topRows(Index n = N)
608
- {
630
+ template <int N>
631
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type topRows(Index n = N) {
609
632
  return typename NRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
610
633
  }
611
634
 
612
635
  /// This is the const version of topRows<int>().
613
- template<int N>
614
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
615
- typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
616
- {
636
+ template <int N>
637
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const {
617
638
  return typename ConstNRowsBlockXpr<N>::Type(derived(), 0, 0, n, cols());
618
639
  }
619
640
 
620
-
621
-
622
641
  /// \returns a block consisting of the bottom rows of \c *this.
623
642
  ///
624
643
  /// \param n the number of rows in the block
@@ -631,35 +650,33 @@ typename ConstNRowsBlockXpr<N>::Type topRows(Index n = N) const
631
650
  /// or Eigen::fix<N>(n) as arguments.
632
651
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
633
652
  ///
634
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
653
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
635
654
  ///
636
655
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
637
656
  ///
638
- template<typename NRowsType>
657
+ template <typename NRowsType>
639
658
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
640
659
  #ifndef EIGEN_PARSED_BY_DOXYGEN
641
- typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
660
+ typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
642
661
  #else
643
- typename NRowsBlockXpr<...>::Type
662
+ typename NRowsBlockXpr<...>::Type
644
663
  #endif
645
- bottomRows(NRowsType n)
646
- {
647
- return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
648
- (derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
664
+ bottomRows(NRowsType n) {
665
+ return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
666
+ derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
649
667
  }
650
668
 
651
669
  /// This is the const version of bottomRows(NRowsType).
652
- template<typename NRowsType>
670
+ template <typename NRowsType>
653
671
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
654
672
  #ifndef EIGEN_PARSED_BY_DOXYGEN
655
- const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
673
+ const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
656
674
  #else
657
- const typename ConstNRowsBlockXpr<...>::Type
675
+ const typename ConstNRowsBlockXpr<...>::Type
658
676
  #endif
659
- bottomRows(NRowsType n) const
660
- {
661
- return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
662
- (derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
677
+ bottomRows(NRowsType n) const {
678
+ return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
679
+ derived(), rows() - internal::get_runtime_value(n), 0, internal::get_runtime_value(n), cols());
663
680
  }
664
681
 
665
682
  /// \returns a block consisting of the bottom rows of \c *this.
@@ -673,27 +690,21 @@ bottomRows(NRowsType n) const
673
690
  /// Example: \include MatrixBase_template_int_bottomRows.cpp
674
691
  /// Output: \verbinclude MatrixBase_template_int_bottomRows.out
675
692
  ///
676
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
693
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
677
694
  ///
678
695
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
679
696
  ///
680
- template<int N>
681
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
682
- typename NRowsBlockXpr<N>::Type bottomRows(Index n = N)
683
- {
697
+ template <int N>
698
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type bottomRows(Index n = N) {
684
699
  return typename NRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
685
700
  }
686
701
 
687
702
  /// This is the const version of bottomRows<int>().
688
- template<int N>
689
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
690
- typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
691
- {
703
+ template <int N>
704
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const {
692
705
  return typename ConstNRowsBlockXpr<N>::Type(derived(), rows() - n, 0, n, cols());
693
706
  }
694
707
 
695
-
696
-
697
708
  /// \returns a block consisting of a range of rows of \c *this.
698
709
  ///
699
710
  /// \param startRow the index of the first row in the block
@@ -707,35 +718,33 @@ typename ConstNRowsBlockXpr<N>::Type bottomRows(Index n = N) const
707
718
  /// or Eigen::fix<N>(n) as arguments.
708
719
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
709
720
  ///
710
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
721
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
711
722
  ///
712
723
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
713
724
  ///
714
- template<typename NRowsType>
725
+ template <typename NRowsType>
715
726
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
716
727
  #ifndef EIGEN_PARSED_BY_DOXYGEN
717
- typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
728
+ typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
718
729
  #else
719
- typename NRowsBlockXpr<...>::Type
730
+ typename NRowsBlockXpr<...>::Type
720
731
  #endif
721
- middleRows(Index startRow, NRowsType n)
722
- {
723
- return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
724
- (derived(), startRow, 0, internal::get_runtime_value(n), cols());
732
+ middleRows(Index startRow, NRowsType n) {
733
+ return typename NRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
734
+ derived(), startRow, 0, internal::get_runtime_value(n), cols());
725
735
  }
726
736
 
727
737
  /// This is the const version of middleRows(Index,NRowsType).
728
- template<typename NRowsType>
738
+ template <typename NRowsType>
729
739
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
730
740
  #ifndef EIGEN_PARSED_BY_DOXYGEN
731
- const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
741
+ const typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
732
742
  #else
733
- const typename ConstNRowsBlockXpr<...>::Type
743
+ const typename ConstNRowsBlockXpr<...>::Type
734
744
  #endif
735
- middleRows(Index startRow, NRowsType n) const
736
- {
737
- return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type
738
- (derived(), startRow, 0, internal::get_runtime_value(n), cols());
745
+ middleRows(Index startRow, NRowsType n) const {
746
+ return typename ConstNRowsBlockXpr<internal::get_fixed_value<NRowsType>::value>::Type(
747
+ derived(), startRow, 0, internal::get_runtime_value(n), cols());
739
748
  }
740
749
 
741
750
  /// \returns a block consisting of a range of rows of \c *this.
@@ -750,27 +759,22 @@ middleRows(Index startRow, NRowsType n) const
750
759
  /// Example: \include DenseBase_template_int_middleRows.cpp
751
760
  /// Output: \verbinclude DenseBase_template_int_middleRows.out
752
761
  ///
753
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
762
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
754
763
  ///
755
764
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
756
765
  ///
757
- template<int N>
758
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
759
- typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N)
760
- {
766
+ template <int N>
767
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) {
761
768
  return typename NRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
762
769
  }
763
770
 
764
771
  /// This is the const version of middleRows<int>().
765
- template<int N>
766
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
767
- typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) const
768
- {
772
+ template <int N>
773
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow,
774
+ Index n = N) const {
769
775
  return typename ConstNRowsBlockXpr<N>::Type(derived(), startRow, 0, n, cols());
770
776
  }
771
777
 
772
-
773
-
774
778
  /// \returns a block consisting of the left columns of \c *this.
775
779
  ///
776
780
  /// \param n the number of columns in the block
@@ -783,35 +787,33 @@ typename ConstNRowsBlockXpr<N>::Type middleRows(Index startRow, Index n = N) con
783
787
  /// or Eigen::fix<N>(n) as arguments.
784
788
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
785
789
  ///
786
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
790
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
787
791
  ///
788
792
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
789
793
  ///
790
- template<typename NColsType>
794
+ template <typename NColsType>
791
795
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
792
796
  #ifndef EIGEN_PARSED_BY_DOXYGEN
793
- typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
797
+ typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
794
798
  #else
795
- typename NColsBlockXpr<...>::Type
799
+ typename NColsBlockXpr<...>::Type
796
800
  #endif
797
- leftCols(NColsType n)
798
- {
799
- return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
800
- (derived(), 0, 0, rows(), internal::get_runtime_value(n));
801
+ leftCols(NColsType n) {
802
+ return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0, rows(),
803
+ internal::get_runtime_value(n));
801
804
  }
802
805
 
803
806
  /// This is the const version of leftCols(NColsType).
804
- template<typename NColsType>
807
+ template <typename NColsType>
805
808
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
806
809
  #ifndef EIGEN_PARSED_BY_DOXYGEN
807
- const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
810
+ const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
808
811
  #else
809
- const typename ConstNColsBlockXpr<...>::Type
812
+ const typename ConstNColsBlockXpr<...>::Type
810
813
  #endif
811
- leftCols(NColsType n) const
812
- {
813
- return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
814
- (derived(), 0, 0, rows(), internal::get_runtime_value(n));
814
+ leftCols(NColsType n) const {
815
+ return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(derived(), 0, 0, rows(),
816
+ internal::get_runtime_value(n));
815
817
  }
816
818
 
817
819
  /// \returns a block consisting of the left columns of \c *this.
@@ -825,27 +827,21 @@ leftCols(NColsType n) const
825
827
  /// Example: \include MatrixBase_template_int_leftCols.cpp
826
828
  /// Output: \verbinclude MatrixBase_template_int_leftCols.out
827
829
  ///
828
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
830
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
829
831
  ///
830
832
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
831
833
  ///
832
- template<int N>
833
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
834
- typename NColsBlockXpr<N>::Type leftCols(Index n = N)
835
- {
834
+ template <int N>
835
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type leftCols(Index n = N) {
836
836
  return typename NColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
837
837
  }
838
838
 
839
839
  /// This is the const version of leftCols<int>().
840
- template<int N>
841
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
842
- typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
843
- {
840
+ template <int N>
841
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const {
844
842
  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, 0, rows(), n);
845
843
  }
846
844
 
847
-
848
-
849
845
  /// \returns a block consisting of the right columns of \c *this.
850
846
  ///
851
847
  /// \param n the number of columns in the block
@@ -858,35 +854,33 @@ typename ConstNColsBlockXpr<N>::Type leftCols(Index n = N) const
858
854
  /// or Eigen::fix<N>(n) as arguments.
859
855
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
860
856
  ///
861
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
857
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
862
858
  ///
863
859
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
864
860
  ///
865
- template<typename NColsType>
861
+ template <typename NColsType>
866
862
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
867
863
  #ifndef EIGEN_PARSED_BY_DOXYGEN
868
- typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
864
+ typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
869
865
  #else
870
- typename NColsBlockXpr<...>::Type
866
+ typename NColsBlockXpr<...>::Type
871
867
  #endif
872
- rightCols(NColsType n)
873
- {
874
- return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
875
- (derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
868
+ rightCols(NColsType n) {
869
+ return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
870
+ derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
876
871
  }
877
872
 
878
873
  /// This is the const version of rightCols(NColsType).
879
- template<typename NColsType>
874
+ template <typename NColsType>
880
875
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
881
876
  #ifndef EIGEN_PARSED_BY_DOXYGEN
882
- const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
877
+ const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
883
878
  #else
884
- const typename ConstNColsBlockXpr<...>::Type
879
+ const typename ConstNColsBlockXpr<...>::Type
885
880
  #endif
886
- rightCols(NColsType n) const
887
- {
888
- return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
889
- (derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
881
+ rightCols(NColsType n) const {
882
+ return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
883
+ derived(), 0, cols() - internal::get_runtime_value(n), rows(), internal::get_runtime_value(n));
890
884
  }
891
885
 
892
886
  /// \returns a block consisting of the right columns of \c *this.
@@ -900,27 +894,21 @@ rightCols(NColsType n) const
900
894
  /// Example: \include MatrixBase_template_int_rightCols.cpp
901
895
  /// Output: \verbinclude MatrixBase_template_int_rightCols.out
902
896
  ///
903
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
897
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
904
898
  ///
905
899
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
906
900
  ///
907
- template<int N>
908
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
909
- typename NColsBlockXpr<N>::Type rightCols(Index n = N)
910
- {
901
+ template <int N>
902
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type rightCols(Index n = N) {
911
903
  return typename NColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
912
904
  }
913
905
 
914
906
  /// This is the const version of rightCols<int>().
915
- template<int N>
916
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
917
- typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
918
- {
907
+ template <int N>
908
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const {
919
909
  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, cols() - n, rows(), n);
920
910
  }
921
911
 
922
-
923
-
924
912
  /// \returns a block consisting of a range of columns of \c *this.
925
913
  ///
926
914
  /// \param startCol the index of the first column in the block
@@ -934,35 +922,33 @@ typename ConstNColsBlockXpr<N>::Type rightCols(Index n = N) const
934
922
  /// or Eigen::fix<N>(n) as arguments.
935
923
  /// See \link block(Index,Index,NRowsType,NColsType) block() \endlink for the details.
936
924
  ///
937
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
925
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
938
926
  ///
939
927
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
940
928
  ///
941
- template<typename NColsType>
929
+ template <typename NColsType>
942
930
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
943
931
  #ifndef EIGEN_PARSED_BY_DOXYGEN
944
- typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
932
+ typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
945
933
  #else
946
- typename NColsBlockXpr<...>::Type
934
+ typename NColsBlockXpr<...>::Type
947
935
  #endif
948
- middleCols(Index startCol, NColsType numCols)
949
- {
950
- return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
951
- (derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
936
+ middleCols(Index startCol, NColsType numCols) {
937
+ return typename NColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
938
+ derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
952
939
  }
953
940
 
954
941
  /// This is the const version of middleCols(Index,NColsType).
955
- template<typename NColsType>
942
+ template <typename NColsType>
956
943
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
957
944
  #ifndef EIGEN_PARSED_BY_DOXYGEN
958
- const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
945
+ const typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
959
946
  #else
960
- const typename ConstNColsBlockXpr<...>::Type
947
+ const typename ConstNColsBlockXpr<...>::Type
961
948
  #endif
962
- middleCols(Index startCol, NColsType numCols) const
963
- {
964
- return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type
965
- (derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
949
+ middleCols(Index startCol, NColsType numCols) const {
950
+ return typename ConstNColsBlockXpr<internal::get_fixed_value<NColsType>::value>::Type(
951
+ derived(), 0, startCol, rows(), internal::get_runtime_value(numCols));
966
952
  }
967
953
 
968
954
  /// \returns a block consisting of a range of columns of \c *this.
@@ -977,27 +963,22 @@ middleCols(Index startCol, NColsType numCols) const
977
963
  /// Example: \include DenseBase_template_int_middleCols.cpp
978
964
  /// Output: \verbinclude DenseBase_template_int_middleCols.out
979
965
  ///
980
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
966
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
981
967
  ///
982
968
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
983
969
  ///
984
- template<int N>
985
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
986
- typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N)
987
- {
970
+ template <int N>
971
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename NColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) {
988
972
  return typename NColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
989
973
  }
990
974
 
991
975
  /// This is the const version of middleCols<int>().
992
- template<int N>
993
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
994
- typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol, Index n = N) const
995
- {
976
+ template <int N>
977
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstNColsBlockXpr<N>::Type middleCols(Index startCol,
978
+ Index n = N) const {
996
979
  return typename ConstNColsBlockXpr<N>::Type(derived(), 0, startCol, rows(), n);
997
980
  }
998
981
 
999
-
1000
-
1001
982
  /// \returns a fixed-size expression of a block of \c *this.
1002
983
  ///
1003
984
  /// The template parameters \a NRows and \a NCols are the number of
@@ -1022,19 +1003,16 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
1022
1003
  ///
1023
1004
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
1024
1005
  ///
1025
- template<int NRows, int NCols>
1026
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1027
- typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol)
1028
- {
1029
- return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
1006
+ template <int NRows, int NCols>
1007
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<NRows, NCols>::Type block(Index startRow, Index startCol) {
1008
+ return typename FixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol);
1030
1009
  }
1031
1010
 
1032
1011
  /// This is the const version of block<>(Index, Index). */
1033
- template<int NRows, int NCols>
1034
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1035
- const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol) const
1036
- {
1037
- return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol);
1012
+ template <int NRows, int NCols>
1013
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<NRows, NCols>::Type block(
1014
+ Index startRow, Index startCol) const {
1015
+ return typename ConstFixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol);
1038
1016
  }
1039
1017
 
1040
1018
  /// \returns an expression of a block of \c *this.
@@ -1068,21 +1046,18 @@ EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
1068
1046
  ///
1069
1047
  /// \sa block(Index,Index,NRowsType,NColsType), class Block
1070
1048
  ///
1071
- template<int NRows, int NCols>
1072
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1073
- typename FixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
1074
- Index blockRows, Index blockCols)
1075
- {
1076
- return typename FixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
1049
+ template <int NRows, int NCols>
1050
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedBlockXpr<NRows, NCols>::Type block(Index startRow, Index startCol,
1051
+ Index blockRows,
1052
+ Index blockCols) {
1053
+ return typename FixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
1077
1054
  }
1078
1055
 
1079
1056
  /// This is the const version of block<>(Index, Index, Index, Index).
1080
- template<int NRows, int NCols>
1081
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1082
- const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index startCol,
1083
- Index blockRows, Index blockCols) const
1084
- {
1085
- return typename ConstFixedBlockXpr<NRows,NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
1057
+ template <int NRows, int NCols>
1058
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const typename ConstFixedBlockXpr<NRows, NCols>::Type block(
1059
+ Index startRow, Index startCol, Index blockRows, Index blockCols) const {
1060
+ return typename ConstFixedBlockXpr<NRows, NCols>::Type(derived(), startRow, startCol, blockRows, blockCols);
1086
1061
  }
1087
1062
 
1088
1063
  /// \returns an expression of the \a i-th column of \c *this. Note that the numbering starts at 0.
@@ -1090,42 +1065,26 @@ const typename ConstFixedBlockXpr<NRows,NCols>::Type block(Index startRow, Index
1090
1065
  /// Example: \include MatrixBase_col.cpp
1091
1066
  /// Output: \verbinclude MatrixBase_col.out
1092
1067
  ///
1093
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column-major)
1068
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(column - major)
1094
1069
  /**
1095
- * \sa row(), class Block */
1096
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1097
- ColXpr col(Index i)
1098
- {
1099
- return ColXpr(derived(), i);
1100
- }
1070
+ * \sa row(), class Block */
1071
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ColXpr col(Index i) { return ColXpr(derived(), i); }
1101
1072
 
1102
1073
  /// This is the const version of col().
1103
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1104
- ConstColXpr col(Index i) const
1105
- {
1106
- return ConstColXpr(derived(), i);
1107
- }
1074
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ConstColXpr col(Index i) const { return ConstColXpr(derived(), i); }
1108
1075
 
1109
1076
  /// \returns an expression of the \a i-th row of \c *this. Note that the numbering starts at 0.
1110
1077
  ///
1111
1078
  /// Example: \include MatrixBase_row.cpp
1112
1079
  /// Output: \verbinclude MatrixBase_row.out
1113
1080
  ///
1114
- EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row-major)
1081
+ EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(row - major)
1115
1082
  /**
1116
- * \sa col(), class Block */
1117
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1118
- RowXpr row(Index i)
1119
- {
1120
- return RowXpr(derived(), i);
1121
- }
1083
+ * \sa col(), class Block */
1084
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE RowXpr row(Index i) { return RowXpr(derived(), i); }
1122
1085
 
1123
1086
  /// This is the const version of row(). */
1124
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1125
- ConstRowXpr row(Index i) const
1126
- {
1127
- return ConstRowXpr(derived(), i);
1128
- }
1087
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE ConstRowXpr row(Index i) const { return ConstRowXpr(derived(), i); }
1129
1088
 
1130
1089
  /// \returns an expression of a segment (i.e. a vector block) in \c *this with either dynamic or fixed sizes.
1131
1090
  ///
@@ -1148,34 +1107,31 @@ ConstRowXpr row(Index i) const
1148
1107
  ///
1149
1108
  /// \sa block(Index,Index,NRowsType,NColsType), fix<N>, fix<N>(int), class Block
1150
1109
  ///
1151
- template<typename NType>
1110
+ template <typename NType>
1152
1111
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1153
1112
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1154
- typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1113
+ typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1155
1114
  #else
1156
- typename FixedSegmentReturnType<...>::Type
1115
+ typename FixedSegmentReturnType<...>::Type
1157
1116
  #endif
1158
- segment(Index start, NType n)
1159
- {
1117
+ segment(Index start, NType n) {
1160
1118
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1161
- return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1162
- (derived(), start, internal::get_runtime_value(n));
1119
+ return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(derived(), start,
1120
+ internal::get_runtime_value(n));
1163
1121
  }
1164
1122
 
1165
-
1166
1123
  /// This is the const version of segment(Index,NType).
1167
- template<typename NType>
1124
+ template <typename NType>
1168
1125
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1169
1126
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1170
- const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1127
+ const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1171
1128
  #else
1172
- const typename ConstFixedSegmentReturnType<...>::Type
1129
+ const typename ConstFixedSegmentReturnType<...>::Type
1173
1130
  #endif
1174
- segment(Index start, NType n) const
1175
- {
1131
+ segment(Index start, NType n) const {
1176
1132
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1177
- return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1178
- (derived(), start, internal::get_runtime_value(n));
1133
+ return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
1134
+ derived(), start, internal::get_runtime_value(n));
1179
1135
  }
1180
1136
 
1181
1137
  /// \returns an expression of the first coefficients of \c *this with either dynamic or fixed sizes.
@@ -1198,33 +1154,31 @@ segment(Index start, NType n) const
1198
1154
  ///
1199
1155
  /// \sa class Block, block(Index,Index)
1200
1156
  ///
1201
- template<typename NType>
1157
+ template <typename NType>
1202
1158
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1203
1159
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1204
- typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1160
+ typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1205
1161
  #else
1206
- typename FixedSegmentReturnType<...>::Type
1162
+ typename FixedSegmentReturnType<...>::Type
1207
1163
  #endif
1208
- head(NType n)
1209
- {
1164
+ head(NType n) {
1210
1165
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1211
- return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1212
- (derived(), 0, internal::get_runtime_value(n));
1166
+ return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(derived(), 0,
1167
+ internal::get_runtime_value(n));
1213
1168
  }
1214
1169
 
1215
1170
  /// This is the const version of head(NType).
1216
- template<typename NType>
1171
+ template <typename NType>
1217
1172
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1218
1173
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1219
- const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1174
+ const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1220
1175
  #else
1221
- const typename ConstFixedSegmentReturnType<...>::Type
1176
+ const typename ConstFixedSegmentReturnType<...>::Type
1222
1177
  #endif
1223
- head(NType n) const
1224
- {
1178
+ head(NType n) const {
1225
1179
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1226
- return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1227
- (derived(), 0, internal::get_runtime_value(n));
1180
+ return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
1181
+ derived(), 0, internal::get_runtime_value(n));
1228
1182
  }
1229
1183
 
1230
1184
  /// \returns an expression of a last coefficients of \c *this with either dynamic or fixed sizes.
@@ -1247,33 +1201,31 @@ head(NType n) const
1247
1201
  ///
1248
1202
  /// \sa class Block, block(Index,Index)
1249
1203
  ///
1250
- template<typename NType>
1204
+ template <typename NType>
1251
1205
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1252
1206
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1253
- typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1207
+ typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1254
1208
  #else
1255
- typename FixedSegmentReturnType<...>::Type
1209
+ typename FixedSegmentReturnType<...>::Type
1256
1210
  #endif
1257
- tail(NType n)
1258
- {
1211
+ tail(NType n) {
1259
1212
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1260
- return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1261
- (derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
1213
+ return typename FixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
1214
+ derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
1262
1215
  }
1263
1216
 
1264
1217
  /// This is the const version of tail(Index).
1265
- template<typename NType>
1218
+ template <typename NType>
1266
1219
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1267
1220
  #ifndef EIGEN_PARSED_BY_DOXYGEN
1268
- const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1221
+ const typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1269
1222
  #else
1270
- const typename ConstFixedSegmentReturnType<...>::Type
1223
+ const typename ConstFixedSegmentReturnType<...>::Type
1271
1224
  #endif
1272
- tail(NType n) const
1273
- {
1225
+ tail(NType n) const {
1274
1226
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1275
- return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type
1276
- (derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
1227
+ return typename ConstFixedSegmentReturnType<internal::get_fixed_value<NType>::value>::Type(
1228
+ derived(), this->size() - internal::get_runtime_value(n), internal::get_runtime_value(n));
1277
1229
  }
1278
1230
 
1279
1231
  /// \returns a fixed-size expression of a segment (i.e. a vector block) in \c *this
@@ -1292,19 +1244,16 @@ tail(NType n) const
1292
1244
  ///
1293
1245
  /// \sa segment(Index,NType), class Block
1294
1246
  ///
1295
- template<int N>
1296
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1297
- typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
1298
- {
1247
+ template <int N>
1248
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type segment(Index start, Index n = N) {
1299
1249
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1300
1250
  return typename FixedSegmentReturnType<N>::Type(derived(), start, n);
1301
1251
  }
1302
1252
 
1303
1253
  /// This is the const version of segment<int>(Index).
1304
- template<int N>
1305
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1306
- typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N) const
1307
- {
1254
+ template <int N>
1255
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type segment(Index start,
1256
+ Index n = N) const {
1308
1257
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1309
1258
  return typename ConstFixedSegmentReturnType<N>::Type(derived(), start, n);
1310
1259
  }
@@ -1324,19 +1273,15 @@ typename ConstFixedSegmentReturnType<N>::Type segment(Index start, Index n = N)
1324
1273
  ///
1325
1274
  /// \sa head(NType), class Block
1326
1275
  ///
1327
- template<int N>
1328
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1329
- typename FixedSegmentReturnType<N>::Type head(Index n = N)
1330
- {
1276
+ template <int N>
1277
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type head(Index n = N) {
1331
1278
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1332
1279
  return typename FixedSegmentReturnType<N>::Type(derived(), 0, n);
1333
1280
  }
1334
1281
 
1335
1282
  /// This is the const version of head<int>().
1336
- template<int N>
1337
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1338
- typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
1339
- {
1283
+ template <int N>
1284
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const {
1340
1285
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1341
1286
  return typename ConstFixedSegmentReturnType<N>::Type(derived(), 0, n);
1342
1287
  }
@@ -1356,87 +1301,70 @@ typename ConstFixedSegmentReturnType<N>::Type head(Index n = N) const
1356
1301
  ///
1357
1302
  /// \sa tail(NType), class Block
1358
1303
  ///
1359
- template<int N>
1360
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1361
- typename FixedSegmentReturnType<N>::Type tail(Index n = N)
1362
- {
1304
+ template <int N>
1305
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename FixedSegmentReturnType<N>::Type tail(Index n = N) {
1363
1306
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1364
- return typename FixedSegmentReturnType<N>::Type(derived(), size() - n);
1307
+ return typename FixedSegmentReturnType<N>::Type(derived(), size() - n, n);
1365
1308
  }
1366
1309
 
1367
1310
  /// This is the const version of tail<int>.
1368
- template<int N>
1369
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1370
- typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const
1371
- {
1311
+ template <int N>
1312
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename ConstFixedSegmentReturnType<N>::Type tail(Index n = N) const {
1372
1313
  EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
1373
- return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n);
1314
+ return typename ConstFixedSegmentReturnType<N>::Type(derived(), size() - n, n);
1374
1315
  }
1375
1316
 
1376
1317
  /// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
1377
1318
  /// is col-major (resp. row-major).
1378
1319
  ///
1379
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1380
- InnerVectorReturnType innerVector(Index outer)
1381
- { return InnerVectorReturnType(derived(), outer); }
1320
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE InnerVectorReturnType innerVector(Index outer) {
1321
+ return InnerVectorReturnType(derived(), outer);
1322
+ }
1382
1323
 
1383
1324
  /// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
1384
1325
  /// is col-major (resp. row-major). Read-only.
1385
1326
  ///
1386
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1387
- const ConstInnerVectorReturnType innerVector(Index outer) const
1388
- { return ConstInnerVectorReturnType(derived(), outer); }
1327
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ConstInnerVectorReturnType innerVector(Index outer) const {
1328
+ return ConstInnerVectorReturnType(derived(), outer);
1329
+ }
1389
1330
 
1390
1331
  /// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
1391
1332
  /// is col-major (resp. row-major).
1392
1333
  ///
1393
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1394
- InnerVectorsReturnType
1395
- innerVectors(Index outerStart, Index outerSize)
1396
- {
1397
- return Block<Derived,Dynamic,Dynamic,true>(derived(),
1398
- IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
1399
- IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
1400
-
1334
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE InnerVectorsReturnType innerVectors(Index outerStart, Index outerSize) {
1335
+ return Block<Derived, Dynamic, Dynamic, true>(derived(), IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
1336
+ IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
1401
1337
  }
1402
1338
 
1403
1339
  /// \returns the \a outer -th column (resp. row) of the matrix \c *this if \c *this
1404
1340
  /// is col-major (resp. row-major). Read-only.
1405
1341
  ///
1406
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1407
- const ConstInnerVectorsReturnType
1408
- innerVectors(Index outerStart, Index outerSize) const
1409
- {
1410
- return Block<const Derived,Dynamic,Dynamic,true>(derived(),
1411
- IsRowMajor ? outerStart : 0, IsRowMajor ? 0 : outerStart,
1412
- IsRowMajor ? outerSize : rows(), IsRowMajor ? cols() : outerSize);
1413
-
1342
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const ConstInnerVectorsReturnType innerVectors(Index outerStart,
1343
+ Index outerSize) const {
1344
+ return Block<const Derived, Dynamic, Dynamic, true>(derived(), IsRowMajor ? outerStart : 0,
1345
+ IsRowMajor ? 0 : outerStart, IsRowMajor ? outerSize : rows(),
1346
+ IsRowMajor ? cols() : outerSize);
1414
1347
  }
1415
1348
 
1416
1349
  /** \returns the i-th subvector (column or vector) according to the \c Direction
1417
- * \sa subVectors()
1418
- */
1419
- template<DirectionType Direction>
1420
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1421
- typename internal::conditional<Direction==Vertical,ColXpr,RowXpr>::type
1422
- subVector(Index i)
1423
- {
1424
- return typename internal::conditional<Direction==Vertical,ColXpr,RowXpr>::type(derived(),i);
1350
+ * \sa subVectors()
1351
+ */
1352
+ template <DirectionType Direction>
1353
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::conditional_t<Direction == Vertical, ColXpr, RowXpr> subVector(Index i) {
1354
+ return std::conditional_t<Direction == Vertical, ColXpr, RowXpr>(derived(), i);
1425
1355
  }
1426
1356
 
1427
1357
  /** This is the const version of subVector(Index) */
1428
- template<DirectionType Direction>
1429
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
1430
- typename internal::conditional<Direction==Vertical,ConstColXpr,ConstRowXpr>::type
1431
- subVector(Index i) const
1432
- {
1433
- return typename internal::conditional<Direction==Vertical,ConstColXpr,ConstRowXpr>::type(derived(),i);
1358
+ template <DirectionType Direction>
1359
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE std::conditional_t<Direction == Vertical, ConstColXpr, ConstRowXpr> subVector(
1360
+ Index i) const {
1361
+ return std::conditional_t<Direction == Vertical, ConstColXpr, ConstRowXpr>(derived(), i);
1434
1362
  }
1435
1363
 
1436
1364
  /** \returns the number of subvectors (rows or columns) in the direction \c Direction
1437
- * \sa subVector(Index)
1438
- */
1439
- template<DirectionType Direction>
1440
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
1441
- Index subVectors() const
1442
- { return (Direction==Vertical)?cols():rows(); }
1365
+ * \sa subVector(Index)
1366
+ */
1367
+ template <DirectionType Direction>
1368
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index subVectors() const {
1369
+ return (Direction == Vertical) ? cols() : rows();
1370
+ }