@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
@@ -7,180 +7,481 @@
7
7
  // Public License v. 2.0. If a copy of the MPL was not distributed
8
8
  // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
9
 
10
-
11
10
  #ifndef EIGEN_INDEXED_VIEW_HELPER_H
12
11
  #define EIGEN_INDEXED_VIEW_HELPER_H
13
12
 
13
+ // IWYU pragma: private
14
+ #include "../InternalHeaderCheck.h"
15
+
14
16
  namespace Eigen {
15
17
 
16
18
  namespace internal {
17
19
  struct symbolic_last_tag {};
18
- }
20
+
21
+ struct all_t {};
22
+
23
+ } // namespace internal
24
+
25
+ namespace placeholders {
26
+
27
+ typedef symbolic::SymbolExpr<internal::symbolic_last_tag> last_t;
19
28
 
20
29
  /** \var last
21
- * \ingroup Core_Module
22
- *
23
- * Can be used as a parameter to Eigen::seq and Eigen::seqN functions to symbolically reference the last element/row/columns
24
- * of the underlying vector or matrix once passed to DenseBase::operator()(const RowIndices&, const ColIndices&).
25
- *
26
- * This symbolic placeholder supports standard arithmetic operations.
27
- *
28
- * A typical usage example would be:
29
- * \code
30
- * using namespace Eigen;
31
- * using Eigen::last;
32
- * VectorXd v(n);
33
- * v(seq(2,last-2)).setOnes();
34
- * \endcode
35
- *
36
- * \sa end
37
- */
38
- static const symbolic::SymbolExpr<internal::symbolic_last_tag> last; // PLEASE use Eigen::last instead of Eigen::placeholders::last
30
+ * \ingroup Core_Module
31
+ *
32
+ * Can be used as a parameter to Eigen::seq and Eigen::seqN functions to symbolically reference the last
33
+ * element/row/columns of the underlying vector or matrix once passed to DenseBase::operator()(const RowIndices&, const
34
+ * ColIndices&).
35
+ *
36
+ * This symbolic placeholder supports standard arithmetic operations.
37
+ *
38
+ * A typical usage example would be:
39
+ * \code
40
+ * using namespace Eigen;
41
+ * using Eigen::placeholders::last;
42
+ * VectorXd v(n);
43
+ * v(seq(2,last-2)).setOnes();
44
+ * \endcode
45
+ *
46
+ * \sa end
47
+ */
48
+ static constexpr const last_t last;
49
+
50
+ typedef symbolic::AddExpr<symbolic::SymbolExpr<internal::symbolic_last_tag>,
51
+ symbolic::ValueExpr<Eigen::internal::FixedInt<1>>>
52
+ lastp1_t;
53
+ typedef Eigen::internal::all_t all_t;
39
54
 
40
55
  /** \var lastp1
41
- * \ingroup Core_Module
42
- *
43
- * Can be used as a parameter to Eigen::seq and Eigen::seqN functions to symbolically
44
- * reference the last+1 element/row/columns of the underlying vector or matrix once
45
- * passed to DenseBase::operator()(const RowIndices&, const ColIndices&).
46
- *
47
- * This symbolic placeholder supports standard arithmetic operations.
48
- * It is essentially an alias to last+fix<1>.
49
- *
50
- * \sa last
51
- */
56
+ * \ingroup Core_Module
57
+ *
58
+ * Can be used as a parameter to Eigen::seq and Eigen::seqN functions to symbolically
59
+ * reference the last+1 element/row/columns of the underlying vector or matrix once
60
+ * passed to DenseBase::operator()(const RowIndices&, const ColIndices&).
61
+ *
62
+ * This symbolic placeholder supports standard arithmetic operations.
63
+ * It is essentially an alias to last+fix<1>.
64
+ *
65
+ * \sa last
66
+ */
52
67
  #ifdef EIGEN_PARSED_BY_DOXYGEN
53
- static const auto lastp1 = last+fix<1>;
68
+ static constexpr auto lastp1 = last + fix<1>;
54
69
  #else
55
70
  // Using a FixedExpr<1> expression is important here to make sure the compiler
56
71
  // can fully optimize the computation starting indices with zero overhead.
57
- static const symbolic::AddExpr<symbolic::SymbolExpr<internal::symbolic_last_tag>,symbolic::ValueExpr<Eigen::internal::FixedInt<1> > > lastp1(last+fix<1>());
72
+ static constexpr lastp1_t lastp1 = lastp1_t{};
58
73
  #endif
59
74
 
75
+ /** \var end
76
+ * \ingroup Core_Module
77
+ * \sa lastp1
78
+ */
79
+ static constexpr lastp1_t end = lastp1;
80
+
81
+ /** \var all
82
+ * \ingroup Core_Module
83
+ * Can be used as a parameter to DenseBase::operator()(const RowIndices&, const ColIndices&) to index all rows or
84
+ * columns
85
+ */
86
+ static constexpr Eigen::internal::all_t all;
87
+
88
+ } // namespace placeholders
89
+
60
90
  namespace internal {
61
91
 
62
- // Replace symbolic last/end "keywords" by their true runtime value
63
- inline Index eval_expr_given_size(Index x, Index /* size */) { return x; }
92
+ // Evaluate a symbolic expression or constant given the "size" of an object, allowing
93
+ // any symbols like `last` to be evaluated. The default here assumes a dynamic constant.
94
+ template <typename Expr, int SizeAtCompileTime, typename EnableIf = void>
95
+ struct SymbolicExpressionEvaluator {
96
+ static constexpr Index ValueAtCompileTime = Undefined;
97
+ static Index eval(const Expr& expr, Index /*size*/) { return static_cast<Index>(expr); }
98
+ };
64
99
 
65
- template<int N>
66
- FixedInt<N> eval_expr_given_size(FixedInt<N> x, Index /*size*/) { return x; }
100
+ // Symbolic expression with size known at compile-time.
101
+ template <typename Expr, int SizeAtCompileTime>
102
+ struct SymbolicExpressionEvaluator<Expr, SizeAtCompileTime, std::enable_if_t<symbolic::is_symbolic<Expr>::value>> {
103
+ static constexpr Index ValueAtCompileTime =
104
+ Expr::Derived::eval_at_compile_time(Eigen::placeholders::last = fix<SizeAtCompileTime - 1>);
105
+ static Index eval(const Expr& expr, Index /*size*/) {
106
+ return expr.eval(Eigen::placeholders::last = fix<SizeAtCompileTime - 1>);
107
+ }
108
+ };
67
109
 
68
- template<typename Derived>
69
- Index eval_expr_given_size(const symbolic::BaseExpr<Derived> &x, Index size)
70
- {
71
- return x.derived().eval(last=size-1);
72
- }
110
+ // Symbolic expression with dynamic size.
111
+ template <typename Expr>
112
+ struct SymbolicExpressionEvaluator<Expr, Dynamic, std::enable_if_t<symbolic::is_symbolic<Expr>::value>> {
113
+ static constexpr Index ValueAtCompileTime = Undefined;
114
+ static Index eval(const Expr& expr, Index size) { return expr.eval(Eigen::placeholders::last = size - 1); }
115
+ };
73
116
 
74
- // Extract increment/step at compile time
75
- template<typename T, typename EnableIf = void> struct get_compile_time_incr {
76
- enum { value = UndefinedIncr };
117
+ // Fixed int.
118
+ template <int N, int SizeAtCompileTime>
119
+ struct SymbolicExpressionEvaluator<FixedInt<N>, SizeAtCompileTime, void> {
120
+ static constexpr Index ValueAtCompileTime = static_cast<Index>(N);
121
+ static Index eval(const FixedInt<N>& /*expr*/, Index /*size*/) { return ValueAtCompileTime; }
77
122
  };
78
123
 
79
- // Analogue of std::get<0>(x), but tailored for our needs.
80
- template<typename T>
81
- EIGEN_CONSTEXPR Index first(const T& x) EIGEN_NOEXCEPT { return x.first(); }
124
+ //--------------------------------------------------------------------------------
125
+ // Handling of generic indices (e.g. array)
126
+ //--------------------------------------------------------------------------------
82
127
 
83
- // IndexedViewCompatibleType/makeIndexedViewCompatible turn an arbitrary object of type T into something usable by MatrixSlice
84
- // The generic implementation is a no-op
85
- template<typename T,int XprSize,typename EnableIf=void>
86
- struct IndexedViewCompatibleType {
87
- typedef T type;
128
+ // Potentially wrap indices in a type that is better-suited for IndexedView evaluation.
129
+ template <typename Indices, int NestedSizeAtCompileTime, typename EnableIf = void>
130
+ struct IndexedViewHelperIndicesWrapper {
131
+ using type = Indices;
132
+ static const type& CreateIndexSequence(const Indices& indices, Index /*nested_size*/) { return indices; }
88
133
  };
89
134
 
90
- template<typename T,typename Q>
91
- const T& makeIndexedViewCompatible(const T& x, Index /*size*/, Q) { return x; }
135
+ // Extract compile-time and runtime first, size, increments.
136
+ template <typename Indices, typename EnableIf = void>
137
+ struct IndexedViewHelper {
138
+ static constexpr Index FirstAtCompileTime = Undefined;
139
+ static constexpr Index SizeAtCompileTime = array_size<Indices>::value;
140
+ static constexpr Index IncrAtCompileTime = Undefined;
141
+
142
+ static constexpr Index first(const Indices& indices) { return static_cast<Index>(indices[0]); }
143
+ static constexpr Index size(const Indices& indices) { return index_list_size(indices); }
144
+ static constexpr Index incr(const Indices& /*indices*/) { return Undefined; }
145
+ };
92
146
 
93
147
  //--------------------------------------------------------------------------------
94
- // Handling of a single Index
148
+ // Handling of ArithmeticSequence
95
149
  //--------------------------------------------------------------------------------
96
150
 
97
- struct SingleRange {
98
- enum {
99
- SizeAtCompileTime = 1
100
- };
101
- SingleRange(Index val) : m_value(val) {}
102
- Index operator[](Index) const { return m_value; }
103
- static EIGEN_CONSTEXPR Index size() EIGEN_NOEXCEPT { return 1; }
104
- Index first() const EIGEN_NOEXCEPT { return m_value; }
105
- Index m_value;
151
+ template <Index FirstAtCompileTime_, Index SizeAtCompileTime_, Index IncrAtCompileTime_>
152
+ class ArithmeticSequenceRange {
153
+ public:
154
+ static constexpr Index FirstAtCompileTime = FirstAtCompileTime_;
155
+ static constexpr Index SizeAtCompileTime = SizeAtCompileTime_;
156
+ static constexpr Index IncrAtCompileTime = IncrAtCompileTime_;
157
+
158
+ constexpr ArithmeticSequenceRange(Index first, Index size, Index incr) : first_{first}, size_{size}, incr_{incr} {}
159
+ constexpr Index operator[](Index i) const { return first() + i * incr(); }
160
+ constexpr Index first() const noexcept { return first_.value(); }
161
+ constexpr Index size() const noexcept { return size_.value(); }
162
+ constexpr Index incr() const noexcept { return incr_.value(); }
163
+
164
+ private:
165
+ variable_if_dynamicindex<Index, int(FirstAtCompileTime)> first_;
166
+ variable_if_dynamic<Index, int(SizeAtCompileTime)> size_;
167
+ variable_if_dynamicindex<Index, int(IncrAtCompileTime)> incr_;
106
168
  };
107
169
 
108
- template<> struct get_compile_time_incr<SingleRange> {
109
- enum { value = 1 }; // 1 or 0 ??
170
+ template <typename FirstType, typename SizeType, typename IncrType, int NestedSizeAtCompileTime>
171
+ struct IndexedViewHelperIndicesWrapper<ArithmeticSequence<FirstType, SizeType, IncrType>, NestedSizeAtCompileTime,
172
+ void> {
173
+ static constexpr Index EvalFirstAtCompileTime =
174
+ SymbolicExpressionEvaluator<FirstType, NestedSizeAtCompileTime>::ValueAtCompileTime;
175
+ static constexpr Index EvalSizeAtCompileTime =
176
+ SymbolicExpressionEvaluator<SizeType, NestedSizeAtCompileTime>::ValueAtCompileTime;
177
+ static constexpr Index EvalIncrAtCompileTime =
178
+ SymbolicExpressionEvaluator<IncrType, NestedSizeAtCompileTime>::ValueAtCompileTime;
179
+
180
+ static constexpr Index FirstAtCompileTime =
181
+ (int(EvalFirstAtCompileTime) == Undefined) ? Index(DynamicIndex) : EvalFirstAtCompileTime;
182
+ static constexpr Index SizeAtCompileTime =
183
+ (int(EvalSizeAtCompileTime) == Undefined) ? Index(Dynamic) : EvalSizeAtCompileTime;
184
+ static constexpr Index IncrAtCompileTime =
185
+ (int(EvalIncrAtCompileTime) == Undefined) ? Index(DynamicIndex) : EvalIncrAtCompileTime;
186
+
187
+ using Indices = ArithmeticSequence<FirstType, SizeType, IncrType>;
188
+ using type = ArithmeticSequenceRange<FirstAtCompileTime, SizeAtCompileTime, IncrAtCompileTime>;
189
+
190
+ static type CreateIndexSequence(const Indices& indices, Index nested_size) {
191
+ Index first =
192
+ SymbolicExpressionEvaluator<FirstType, NestedSizeAtCompileTime>::eval(indices.firstObject(), nested_size);
193
+ Index size =
194
+ SymbolicExpressionEvaluator<SizeType, NestedSizeAtCompileTime>::eval(indices.sizeObject(), nested_size);
195
+ Index incr =
196
+ SymbolicExpressionEvaluator<IncrType, NestedSizeAtCompileTime>::eval(indices.incrObject(), nested_size);
197
+ return type(first, size, incr);
198
+ }
110
199
  };
111
200
 
112
- // Turn a single index into something that looks like an array (i.e., that exposes a .size(), and operator[](int) methods)
113
- template<typename T, int XprSize>
114
- struct IndexedViewCompatibleType<T,XprSize,typename internal::enable_if<internal::is_integral<T>::value>::type> {
115
- // Here we could simply use Array, but maybe it's less work for the compiler to use
116
- // a simpler wrapper as SingleRange
117
- //typedef Eigen::Array<Index,1,1> type;
118
- typedef SingleRange type;
201
+ template <Index FirstAtCompileTime_, Index SizeAtCompileTime_, Index IncrAtCompileTime_>
202
+ struct IndexedViewHelper<ArithmeticSequenceRange<FirstAtCompileTime_, SizeAtCompileTime_, IncrAtCompileTime_>, void> {
203
+ public:
204
+ using Indices = ArithmeticSequenceRange<FirstAtCompileTime_, SizeAtCompileTime_, IncrAtCompileTime_>;
205
+ static constexpr Index FirstAtCompileTime = Indices::FirstAtCompileTime;
206
+ static constexpr Index SizeAtCompileTime = Indices::SizeAtCompileTime;
207
+ static constexpr Index IncrAtCompileTime = Indices::IncrAtCompileTime;
208
+ static Index first(const Indices& indices) { return indices.first(); }
209
+ static Index size(const Indices& indices) { return indices.size(); }
210
+ static Index incr(const Indices& indices) { return indices.incr(); }
119
211
  };
120
212
 
121
- template<typename T, int XprSize>
122
- struct IndexedViewCompatibleType<T, XprSize, typename enable_if<symbolic::is_symbolic<T>::value>::type> {
123
- typedef SingleRange type;
213
+ //--------------------------------------------------------------------------------
214
+ // Handling of a single index.
215
+ //--------------------------------------------------------------------------------
216
+
217
+ template <Index ValueAtCompileTime>
218
+ class SingleRange {
219
+ public:
220
+ static constexpr Index FirstAtCompileTime = ValueAtCompileTime;
221
+ static constexpr Index SizeAtCompileTime = Index(1);
222
+ static constexpr Index IncrAtCompileTime = Index(1); // Needs to be 1 to be treated as block-like.
223
+
224
+ constexpr SingleRange(Index v) noexcept : value_(v) {}
225
+ constexpr Index operator[](Index) const noexcept { return first(); }
226
+ constexpr Index first() const noexcept { return value_.value(); }
227
+ constexpr Index size() const noexcept { return SizeAtCompileTime; }
228
+ constexpr Index incr() const noexcept { return IncrAtCompileTime; }
229
+
230
+ private:
231
+ variable_if_dynamicindex<Index, int(ValueAtCompileTime)> value_;
124
232
  };
125
233
 
234
+ template <typename T>
235
+ struct is_single_range : public std::false_type {};
236
+
237
+ template <Index ValueAtCompileTime>
238
+ struct is_single_range<SingleRange<ValueAtCompileTime>> : public std::true_type {};
239
+
240
+ template <typename SingleIndex, int NestedSizeAtCompileTime>
241
+ struct IndexedViewHelperIndicesWrapper<
242
+ SingleIndex, NestedSizeAtCompileTime,
243
+ std::enable_if_t<std::is_integral<SingleIndex>::value || symbolic::is_symbolic<SingleIndex>::value>> {
244
+ static constexpr Index EvalValueAtCompileTime =
245
+ SymbolicExpressionEvaluator<SingleIndex, NestedSizeAtCompileTime>::ValueAtCompileTime;
246
+ static constexpr Index ValueAtCompileTime =
247
+ (int(EvalValueAtCompileTime) == Undefined) ? Index(DynamicIndex) : EvalValueAtCompileTime;
248
+ using type = SingleRange<ValueAtCompileTime>;
249
+ static type CreateIndexSequence(const SingleIndex& index, Index nested_size) {
250
+ return type(SymbolicExpressionEvaluator<SingleIndex, NestedSizeAtCompileTime>::eval(index, nested_size));
251
+ }
252
+ };
126
253
 
127
- template<typename T>
128
- typename enable_if<symbolic::is_symbolic<T>::value,SingleRange>::type
129
- makeIndexedViewCompatible(const T& id, Index size, SpecializedType) {
130
- return eval_expr_given_size(id,size);
131
- }
254
+ template <int N, int NestedSizeAtCompileTime>
255
+ struct IndexedViewHelperIndicesWrapper<FixedInt<N>, NestedSizeAtCompileTime, void> {
256
+ using type = SingleRange<Index(N)>;
257
+ static type CreateIndexSequence(const FixedInt<N>& /*index*/) { return type(Index(N)); }
258
+ };
259
+
260
+ template <Index ValueAtCompileTime>
261
+ struct IndexedViewHelper<SingleRange<ValueAtCompileTime>, void> {
262
+ using Indices = SingleRange<ValueAtCompileTime>;
263
+ static constexpr Index FirstAtCompileTime = Indices::FirstAtCompileTime;
264
+ static constexpr Index SizeAtCompileTime = Indices::SizeAtCompileTime;
265
+ static constexpr Index IncrAtCompileTime = Indices::IncrAtCompileTime;
266
+
267
+ static constexpr Index first(const Indices& indices) { return indices.first(); }
268
+ static constexpr Index size(const Indices& /*indices*/) { return SizeAtCompileTime; }
269
+ static constexpr Index incr(const Indices& /*indices*/) { return IncrAtCompileTime; }
270
+ };
132
271
 
133
272
  //--------------------------------------------------------------------------------
134
273
  // Handling of all
135
274
  //--------------------------------------------------------------------------------
136
275
 
137
- struct all_t { all_t() {} };
138
-
139
276
  // Convert a symbolic 'all' into a usable range type
140
- template<int XprSize>
141
- struct AllRange {
142
- enum { SizeAtCompileTime = XprSize };
143
- AllRange(Index size = XprSize) : m_size(size) {}
144
- EIGEN_CONSTEXPR Index operator[](Index i) const EIGEN_NOEXCEPT { return i; }
145
- EIGEN_CONSTEXPR Index size() const EIGEN_NOEXCEPT { return m_size.value(); }
146
- EIGEN_CONSTEXPR Index first() const EIGEN_NOEXCEPT { return 0; }
147
- variable_if_dynamic<Index,XprSize> m_size;
277
+ template <Index SizeAtCompileTime_>
278
+ class AllRange {
279
+ public:
280
+ static constexpr Index FirstAtCompileTime = Index(0);
281
+ static constexpr Index SizeAtCompileTime = SizeAtCompileTime_;
282
+ static constexpr Index IncrAtCompileTime = Index(1);
283
+ constexpr AllRange(Index size) : size_(size) {}
284
+ constexpr Index operator[](Index i) const noexcept { return i; }
285
+ constexpr Index first() const noexcept { return FirstAtCompileTime; }
286
+ constexpr Index size() const noexcept { return size_.value(); }
287
+ constexpr Index incr() const noexcept { return IncrAtCompileTime; }
288
+
289
+ private:
290
+ variable_if_dynamic<Index, int(SizeAtCompileTime)> size_;
148
291
  };
149
292
 
150
- template<int XprSize>
151
- struct IndexedViewCompatibleType<all_t,XprSize> {
152
- typedef AllRange<XprSize> type;
293
+ template <int NestedSizeAtCompileTime>
294
+ struct IndexedViewHelperIndicesWrapper<all_t, NestedSizeAtCompileTime, void> {
295
+ using type = AllRange<Index(NestedSizeAtCompileTime)>;
296
+ static type CreateIndexSequence(const all_t& /*indices*/, Index nested_size) { return type(nested_size); }
297
+ };
298
+
299
+ template <Index SizeAtCompileTime_>
300
+ struct IndexedViewHelper<AllRange<SizeAtCompileTime_>, void> {
301
+ using Indices = AllRange<SizeAtCompileTime_>;
302
+ static constexpr Index FirstAtCompileTime = Indices::FirstAtCompileTime;
303
+ static constexpr Index SizeAtCompileTime = Indices::SizeAtCompileTime;
304
+ static constexpr Index IncrAtCompileTime = Indices::IncrAtCompileTime;
305
+
306
+ static Index first(const Indices& indices) { return indices.first(); }
307
+ static Index size(const Indices& indices) { return indices.size(); }
308
+ static Index incr(const Indices& indices) { return indices.incr(); }
153
309
  };
154
310
 
155
- template<typename XprSizeType>
156
- inline AllRange<get_fixed_value<XprSizeType>::value> makeIndexedViewCompatible(all_t , XprSizeType size, SpecializedType) {
157
- return AllRange<get_fixed_value<XprSizeType>::value>(size);
311
+ // this helper class assumes internal::valid_indexed_view_overload<RowIndices, ColIndices>::value == true
312
+ template <typename Derived, typename RowIndices, typename ColIndices, typename EnableIf = void>
313
+ struct IndexedViewSelector;
314
+
315
+ template <typename Indices, int SizeAtCompileTime>
316
+ using IvcType = typename internal::IndexedViewHelperIndicesWrapper<Indices, SizeAtCompileTime>::type;
317
+
318
+ template <int SizeAtCompileTime, typename Indices>
319
+ inline IvcType<Indices, SizeAtCompileTime> CreateIndexSequence(size_t size, const Indices& indices) {
320
+ return internal::IndexedViewHelperIndicesWrapper<Indices, SizeAtCompileTime>::CreateIndexSequence(indices, size);
158
321
  }
159
322
 
160
- template<int Size> struct get_compile_time_incr<AllRange<Size> > {
161
- enum { value = 1 };
323
+ // Generic
324
+ template <typename Derived, typename RowIndices, typename ColIndices>
325
+ struct IndexedViewSelector<Derived, RowIndices, ColIndices,
326
+ std::enable_if_t<internal::traits<
327
+ IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>,
328
+ IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsIndexedView>> {
329
+ using ReturnType = IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>,
330
+ IvcType<ColIndices, Derived::ColsAtCompileTime>>;
331
+ using ConstReturnType = IndexedView<const Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>,
332
+ IvcType<ColIndices, Derived::ColsAtCompileTime>>;
333
+
334
+ static inline ReturnType run(Derived& derived, const RowIndices& rowIndices, const ColIndices& colIndices) {
335
+ return ReturnType(derived, CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices),
336
+ CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices));
337
+ }
338
+ static inline ConstReturnType run(const Derived& derived, const RowIndices& rowIndices,
339
+ const ColIndices& colIndices) {
340
+ return ConstReturnType(derived, CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices),
341
+ CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices));
342
+ }
162
343
  };
163
344
 
164
- } // end namespace internal
345
+ // Block
346
+ template <typename Derived, typename RowIndices, typename ColIndices>
347
+ struct IndexedViewSelector<
348
+ Derived, RowIndices, ColIndices,
349
+ std::enable_if_t<internal::traits<IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>,
350
+ IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsBlock>> {
351
+ using ActualRowIndices = IvcType<RowIndices, Derived::RowsAtCompileTime>;
352
+ using ActualColIndices = IvcType<ColIndices, Derived::ColsAtCompileTime>;
353
+ using IndexedViewType = IndexedView<Derived, ActualRowIndices, ActualColIndices>;
354
+ using ConstIndexedViewType = IndexedView<const Derived, ActualRowIndices, ActualColIndices>;
355
+ using ReturnType = typename internal::traits<IndexedViewType>::BlockType;
356
+ using ConstReturnType = typename internal::traits<ConstIndexedViewType>::BlockType;
357
+ using RowHelper = internal::IndexedViewHelper<ActualRowIndices>;
358
+ using ColHelper = internal::IndexedViewHelper<ActualColIndices>;
359
+
360
+ static inline ReturnType run(Derived& derived, const RowIndices& rowIndices, const ColIndices& colIndices) {
361
+ auto actualRowIndices = CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices);
362
+ auto actualColIndices = CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices);
363
+ return ReturnType(derived, RowHelper::first(actualRowIndices), ColHelper::first(actualColIndices),
364
+ RowHelper::size(actualRowIndices), ColHelper::size(actualColIndices));
365
+ }
366
+ static inline ConstReturnType run(const Derived& derived, const RowIndices& rowIndices,
367
+ const ColIndices& colIndices) {
368
+ auto actualRowIndices = CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices);
369
+ auto actualColIndices = CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices);
370
+ return ConstReturnType(derived, RowHelper::first(actualRowIndices), ColHelper::first(actualColIndices),
371
+ RowHelper::size(actualRowIndices), ColHelper::size(actualColIndices));
372
+ }
373
+ };
165
374
 
375
+ // Scalar
376
+ template <typename Derived, typename RowIndices, typename ColIndices>
377
+ struct IndexedViewSelector<
378
+ Derived, RowIndices, ColIndices,
379
+ std::enable_if_t<internal::traits<IndexedView<Derived, IvcType<RowIndices, Derived::RowsAtCompileTime>,
380
+ IvcType<ColIndices, Derived::ColsAtCompileTime>>>::ReturnAsScalar>> {
381
+ using ReturnType = typename DenseBase<Derived>::Scalar&;
382
+ using ConstReturnType = typename DenseBase<Derived>::CoeffReturnType;
383
+ using ActualRowIndices = IvcType<RowIndices, Derived::RowsAtCompileTime>;
384
+ using ActualColIndices = IvcType<ColIndices, Derived::ColsAtCompileTime>;
385
+ using RowHelper = internal::IndexedViewHelper<ActualRowIndices>;
386
+ using ColHelper = internal::IndexedViewHelper<ActualColIndices>;
387
+ static inline ReturnType run(Derived& derived, const RowIndices& rowIndices, const ColIndices& colIndices) {
388
+ auto actualRowIndices = CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices);
389
+ auto actualColIndices = CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices);
390
+ return derived(RowHelper::first(actualRowIndices), ColHelper::first(actualColIndices));
391
+ }
392
+ static inline ConstReturnType run(const Derived& derived, const RowIndices& rowIndices,
393
+ const ColIndices& colIndices) {
394
+ auto actualRowIndices = CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), rowIndices);
395
+ auto actualColIndices = CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), colIndices);
396
+ return derived(RowHelper::first(actualRowIndices), ColHelper::first(actualColIndices));
397
+ }
398
+ };
166
399
 
167
- /** \var all
168
- * \ingroup Core_Module
169
- * Can be used as a parameter to DenseBase::operator()(const RowIndices&, const ColIndices&) to index all rows or columns
170
- */
171
- static const Eigen::internal::all_t all; // PLEASE use Eigen::all instead of Eigen::placeholders::all
400
+ // this helper class assumes internal::is_valid_index_type<Indices>::value == false
401
+ template <typename Derived, typename Indices, typename EnableIf = void>
402
+ struct VectorIndexedViewSelector;
403
+
404
+ // Generic
405
+ template <typename Derived, typename Indices>
406
+ struct VectorIndexedViewSelector<
407
+ Derived, Indices,
408
+ std::enable_if_t<!internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value &&
409
+ internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>::IncrAtCompileTime !=
410
+ 1>> {
411
+ static constexpr bool IsRowMajor = DenseBase<Derived>::IsRowMajor;
412
+ using ZeroIndex = internal::SingleRange<Index(0)>;
413
+ using RowMajorReturnType = IndexedView<Derived, ZeroIndex, IvcType<Indices, Derived::SizeAtCompileTime>>;
414
+ using ConstRowMajorReturnType = IndexedView<const Derived, ZeroIndex, IvcType<Indices, Derived::SizeAtCompileTime>>;
415
+
416
+ using ColMajorReturnType = IndexedView<Derived, IvcType<Indices, Derived::SizeAtCompileTime>, ZeroIndex>;
417
+ using ConstColMajorReturnType = IndexedView<const Derived, IvcType<Indices, Derived::SizeAtCompileTime>, ZeroIndex>;
418
+
419
+ using ReturnType = typename internal::conditional<IsRowMajor, RowMajorReturnType, ColMajorReturnType>::type;
420
+ using ConstReturnType =
421
+ typename internal::conditional<IsRowMajor, ConstRowMajorReturnType, ConstColMajorReturnType>::type;
422
+
423
+ template <bool UseRowMajor = IsRowMajor, std::enable_if_t<UseRowMajor, bool> = true>
424
+ static inline RowMajorReturnType run(Derived& derived, const Indices& indices) {
425
+ return RowMajorReturnType(derived, ZeroIndex(0),
426
+ CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), indices));
427
+ }
428
+ template <bool UseRowMajor = IsRowMajor, std::enable_if_t<UseRowMajor, bool> = true>
429
+ static inline ConstRowMajorReturnType run(const Derived& derived, const Indices& indices) {
430
+ return ConstRowMajorReturnType(derived, ZeroIndex(0),
431
+ CreateIndexSequence<Derived::ColsAtCompileTime>(derived.cols(), indices));
432
+ }
433
+ template <bool UseRowMajor = IsRowMajor, std::enable_if_t<!UseRowMajor, bool> = true>
434
+ static inline ColMajorReturnType run(Derived& derived, const Indices& indices) {
435
+ return ColMajorReturnType(derived, CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), indices),
436
+ ZeroIndex(0));
437
+ }
438
+ template <bool UseRowMajor = IsRowMajor, std::enable_if_t<!UseRowMajor, bool> = true>
439
+ static inline ConstColMajorReturnType run(const Derived& derived, const Indices& indices) {
440
+ return ConstColMajorReturnType(derived, CreateIndexSequence<Derived::RowsAtCompileTime>(derived.rows(), indices),
441
+ ZeroIndex(0));
442
+ }
443
+ };
172
444
 
445
+ // Block
446
+ template <typename Derived, typename Indices>
447
+ struct VectorIndexedViewSelector<
448
+ Derived, Indices,
449
+ std::enable_if_t<!internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value &&
450
+ internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>::IncrAtCompileTime ==
451
+ 1>> {
452
+ using Helper = internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>;
453
+ using ReturnType = VectorBlock<Derived, Helper::SizeAtCompileTime>;
454
+ using ConstReturnType = VectorBlock<const Derived, Helper::SizeAtCompileTime>;
455
+ static inline ReturnType run(Derived& derived, const Indices& indices) {
456
+ auto actualIndices = CreateIndexSequence<Derived::SizeAtCompileTime>(derived.size(), indices);
457
+ return ReturnType(derived, Helper::first(actualIndices), Helper::size(actualIndices));
458
+ }
459
+ static inline ConstReturnType run(const Derived& derived, const Indices& indices) {
460
+ auto actualIndices = CreateIndexSequence<Derived::SizeAtCompileTime>(derived.size(), indices);
461
+ return ConstReturnType(derived, Helper::first(actualIndices), Helper::size(actualIndices));
462
+ }
463
+ };
173
464
 
174
- namespace placeholders {
175
- typedef symbolic::SymbolExpr<internal::symbolic_last_tag> last_t;
176
- typedef symbolic::AddExpr<symbolic::SymbolExpr<internal::symbolic_last_tag>,symbolic::ValueExpr<Eigen::internal::FixedInt<1> > > end_t;
177
- typedef Eigen::internal::all_t all_t;
465
+ // Symbolic
466
+ template <typename Derived, typename Indices>
467
+ struct VectorIndexedViewSelector<
468
+ Derived, Indices,
469
+ std::enable_if_t<internal::is_single_range<IvcType<Indices, Derived::SizeAtCompileTime>>::value>> {
470
+ using ReturnType = typename DenseBase<Derived>::Scalar&;
471
+ using ConstReturnType = typename DenseBase<Derived>::CoeffReturnType;
472
+ using Helper = internal::IndexedViewHelper<IvcType<Indices, Derived::SizeAtCompileTime>>;
473
+ static inline ReturnType run(Derived& derived, const Indices& indices) {
474
+ auto actualIndices = CreateIndexSequence<Derived::SizeAtCompileTime>(derived.size(), indices);
475
+ return derived(Helper::first(actualIndices));
476
+ }
477
+ static inline ConstReturnType run(const Derived& derived, const Indices& indices) {
478
+ auto actualIndices = CreateIndexSequence<Derived::SizeAtCompileTime>(derived.size(), indices);
479
+ return derived(Helper::first(actualIndices));
480
+ }
481
+ };
178
482
 
179
- EIGEN_DEPRECATED static const all_t all = Eigen::all; // PLEASE use Eigen::all instead of Eigen::placeholders::all
180
- EIGEN_DEPRECATED static const last_t last = Eigen::last; // PLEASE use Eigen::last instead of Eigen::placeholders::last
181
- EIGEN_DEPRECATED static const end_t end = Eigen::lastp1; // PLEASE use Eigen::lastp1 instead of Eigen::placeholders::end
182
- }
483
+ } // end namespace internal
183
484
 
184
- } // end namespace Eigen
485
+ } // end namespace Eigen
185
486
 
186
- #endif // EIGEN_INDEXED_VIEW_HELPER_H
487
+ #endif // EIGEN_INDEXED_VIEW_HELPER_H