@smake/eigen 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -21
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +235 -326
  6. package/eigen/Eigen/Eigenvalues +16 -14
  7. package/eigen/Eigen/Geometry +21 -24
  8. package/eigen/Eigen/Householder +9 -8
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -14
  11. package/eigen/Eigen/KLUSupport +43 -0
  12. package/eigen/Eigen/LU +16 -20
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -54
  15. package/eigen/Eigen/PaStiXSupport +23 -20
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -21
  18. package/eigen/Eigen/QtAlignedMalloc +5 -13
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -18
  21. package/eigen/Eigen/Sparse +1 -4
  22. package/eigen/Eigen/SparseCholesky +18 -23
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +12 -8
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
  37. package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
  42. package/eigen/Eigen/src/Core/Array.h +341 -294
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
  48. package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
  49. package/eigen/Eigen/src/Core/Block.h +375 -398
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
  53. package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
  59. package/eigen/Eigen/src/Core/DenseBase.h +632 -571
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
  61. package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +169 -210
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +172 -222
  67. package/eigen/Eigen/src/Core/EigenBase.h +75 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
  75. package/eigen/Eigen/src/Core/IO.h +147 -139
  76. package/eigen/Eigen/src/Core/IndexedView.h +321 -0
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +56 -66
  80. package/eigen/Eigen/src/Core/Map.h +124 -142
  81. package/eigen/Eigen/src/Core/MapBase.h +256 -281
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
  84. package/eigen/Eigen/src/Core/Matrix.h +491 -416
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
  86. package/eigen/Eigen/src/Core/NestByValue.h +66 -85
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -85
  88. package/eigen/Eigen/src/Core/NumTraits.h +235 -148
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
  92. package/eigen/Eigen/src/Core/Product.h +260 -139
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
  94. package/eigen/Eigen/src/Core/Random.h +161 -136
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +366 -336
  98. package/eigen/Eigen/src/Core/Ref.h +308 -209
  99. package/eigen/Eigen/src/Core/Replicate.h +94 -106
  100. package/eigen/Eigen/src/Core/Reshaped.h +398 -0
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +136 -145
  103. package/eigen/Eigen/src/Core/Select.h +70 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +97 -111
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
  109. package/eigen/Eigen/src/Core/SolverBase.h +138 -101
  110. package/eigen/Eigen/src/Core/StableNorm.h +156 -160
  111. package/eigen/Eigen/src/Core/StlIterators.h +619 -0
  112. package/eigen/Eigen/src/Core/Stride.h +91 -88
  113. package/eigen/Eigen/src/Core/Swap.h +70 -38
  114. package/eigen/Eigen/src/Core/Transpose.h +295 -273
  115. package/eigen/Eigen/src/Core/Transpositions.h +272 -317
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
  119. package/eigen/Eigen/src/Core/Visitor.h +480 -216
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  217. package/eigen/Eigen/src/Core/util/Constants.h +314 -263
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
  226. package/eigen/Eigen/src/Core/util/Macros.h +939 -646
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
  229. package/eigen/Eigen/src/Core/util/Meta.h +618 -426
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
  264. package/eigen/Eigen/src/Geometry/Transform.h +896 -953
  265. package/eigen/Eigen/src/Geometry/Translation.h +100 -98
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
  269. package/eigen/Eigen/src/Householder/Householder.h +104 -122
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  285. package/eigen/Eigen/src/LU/Determinant.h +60 -63
  286. package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/lib/LibEigen.d.ts +4 -0
  409. package/lib/LibEigen.js +14 -0
  410. package/lib/index.d.ts +1 -1
  411. package/lib/index.js +7 -3
  412. package/package.json +2 -10
  413. package/eigen/Eigen/CMakeLists.txt +0 -19
  414. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
  415. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
  416. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  417. package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
  418. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  419. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  420. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  421. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  422. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  423. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  424. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  425. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  426. package/eigen/Eigen/src/misc/lapack.h +0 -152
  427. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
  428. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
  429. package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
  430. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  431. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
  432. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  433. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
  434. package/lib/eigen.d.ts +0 -2
  435. package/lib/eigen.js +0 -15
@@ -11,298 +11,273 @@
11
11
  #ifndef EIGEN_MAPBASE_H
12
12
  #define EIGEN_MAPBASE_H
13
13
 
14
- #define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
15
- EIGEN_STATIC_ASSERT((int(internal::evaluator<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
16
- YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
14
+ #define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
15
+ EIGEN_STATIC_ASSERT((int(internal::evaluator<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
16
+ YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
17
17
 
18
- namespace Eigen {
18
+ // IWYU pragma: private
19
+ #include "./InternalHeaderCheck.h"
20
+
21
+ namespace Eigen {
19
22
 
20
23
  /** \ingroup Core_Module
21
- *
22
- * \brief Base class for dense Map and Block expression with direct access
23
- *
24
- * This base class provides the const low-level accessors (e.g. coeff, coeffRef) of dense
25
- * Map and Block objects with direct access.
26
- * Typical users do not have to directly deal with this class.
27
- *
28
- * This class can be extended by through the macro plugin \c EIGEN_MAPBASE_PLUGIN.
29
- * See \link TopicCustomizing_Plugins customizing Eigen \endlink for details.
30
- *
31
- * The \c Derived class has to provide the following two methods describing the memory layout:
32
- * \code Index innerStride() const; \endcode
33
- * \code Index outerStride() const; \endcode
34
- *
35
- * \sa class Map, class Block
36
- */
37
- template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
38
- : public internal::dense_xpr_base<Derived>::type
39
- {
40
- public:
41
-
42
- typedef typename internal::dense_xpr_base<Derived>::type Base;
43
- enum {
44
- RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
45
- ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
46
- InnerStrideAtCompileTime = internal::traits<Derived>::InnerStrideAtCompileTime,
47
- SizeAtCompileTime = Base::SizeAtCompileTime
48
- };
49
-
50
- typedef typename internal::traits<Derived>::StorageKind StorageKind;
51
- typedef typename internal::traits<Derived>::Scalar Scalar;
52
- typedef typename internal::packet_traits<Scalar>::type PacketScalar;
53
- typedef typename NumTraits<Scalar>::Real RealScalar;
54
- typedef typename internal::conditional<
55
- bool(internal::is_lvalue<Derived>::value),
56
- Scalar *,
57
- const Scalar *>::type
58
- PointerType;
59
-
60
- using Base::derived;
61
- // using Base::RowsAtCompileTime;
62
- // using Base::ColsAtCompileTime;
63
- // using Base::SizeAtCompileTime;
64
- using Base::MaxRowsAtCompileTime;
65
- using Base::MaxColsAtCompileTime;
66
- using Base::MaxSizeAtCompileTime;
67
- using Base::IsVectorAtCompileTime;
68
- using Base::Flags;
69
- using Base::IsRowMajor;
70
-
71
- using Base::rows;
72
- using Base::cols;
73
- using Base::size;
74
- using Base::coeff;
75
- using Base::coeffRef;
76
- using Base::lazyAssign;
77
- using Base::eval;
78
-
79
- using Base::innerStride;
80
- using Base::outerStride;
81
- using Base::rowStride;
82
- using Base::colStride;
83
-
84
- // bug 217 - compile error on ICC 11.1
85
- using Base::operator=;
86
-
87
- typedef typename Base::CoeffReturnType CoeffReturnType;
88
-
89
- /** \copydoc DenseBase::rows() */
90
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_rows.value(); }
91
- /** \copydoc DenseBase::cols() */
92
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_cols.value(); }
93
-
94
- /** Returns a pointer to the first coefficient of the matrix or vector.
95
- *
96
- * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
97
- *
98
- * \sa innerStride(), outerStride()
99
- */
100
- EIGEN_DEVICE_FUNC inline const Scalar* data() const { return m_data; }
101
-
102
- /** \copydoc PlainObjectBase::coeff(Index,Index) const */
103
- EIGEN_DEVICE_FUNC
104
- inline const Scalar& coeff(Index rowId, Index colId) const
105
- {
106
- return m_data[colId * colStride() + rowId * rowStride()];
107
- }
108
-
109
- /** \copydoc PlainObjectBase::coeff(Index) const */
110
- EIGEN_DEVICE_FUNC
111
- inline const Scalar& coeff(Index index) const
112
- {
113
- EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
114
- return m_data[index * innerStride()];
115
- }
116
-
117
- /** \copydoc PlainObjectBase::coeffRef(Index,Index) const */
118
- EIGEN_DEVICE_FUNC
119
- inline const Scalar& coeffRef(Index rowId, Index colId) const
120
- {
121
- return this->m_data[colId * colStride() + rowId * rowStride()];
122
- }
123
-
124
- /** \copydoc PlainObjectBase::coeffRef(Index) const */
125
- EIGEN_DEVICE_FUNC
126
- inline const Scalar& coeffRef(Index index) const
127
- {
128
- EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
129
- return this->m_data[index * innerStride()];
130
- }
131
-
132
- /** \internal */
133
- template<int LoadMode>
134
- inline PacketScalar packet(Index rowId, Index colId) const
135
- {
136
- return internal::ploadt<PacketScalar, LoadMode>
137
- (m_data + (colId * colStride() + rowId * rowStride()));
138
- }
139
-
140
- /** \internal */
141
- template<int LoadMode>
142
- inline PacketScalar packet(Index index) const
143
- {
144
- EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
145
- return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
146
- }
147
-
148
- /** \internal Constructor for fixed size matrices or vectors */
149
- EIGEN_DEVICE_FUNC
150
- explicit inline MapBase(PointerType dataPtr) : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime)
151
- {
152
- EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
153
- checkSanity<Derived>();
154
- }
155
-
156
- /** \internal Constructor for dynamically sized vectors */
157
- EIGEN_DEVICE_FUNC
158
- inline MapBase(PointerType dataPtr, Index vecSize)
159
- : m_data(dataPtr),
160
- m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
161
- m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime))
162
- {
163
- EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
164
- eigen_assert(vecSize >= 0);
165
- eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
166
- checkSanity<Derived>();
167
- }
168
-
169
- /** \internal Constructor for dynamically sized matrices */
170
- EIGEN_DEVICE_FUNC
171
- inline MapBase(PointerType dataPtr, Index rows, Index cols)
172
- : m_data(dataPtr), m_rows(rows), m_cols(cols)
173
- {
174
- eigen_assert( (dataPtr == 0)
175
- || ( rows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows)
176
- && cols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols)));
177
- checkSanity<Derived>();
178
- }
179
-
180
- #ifdef EIGEN_MAPBASE_PLUGIN
181
- #include EIGEN_MAPBASE_PLUGIN
182
- #endif
183
-
184
- protected:
185
- EIGEN_DEFAULT_COPY_CONSTRUCTOR(MapBase)
186
- EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MapBase)
187
-
188
- template<typename T>
189
- EIGEN_DEVICE_FUNC
190
- void checkSanity(typename internal::enable_if<(internal::traits<T>::Alignment>0),void*>::type = 0) const
191
- {
192
- #if EIGEN_MAX_ALIGN_BYTES>0
193
- // innerStride() is not set yet when this function is called, so we optimistically assume the lowest plausible value:
194
- const Index minInnerStride = InnerStrideAtCompileTime == Dynamic ? 1 : Index(InnerStrideAtCompileTime);
195
- EIGEN_ONLY_USED_FOR_DEBUG(minInnerStride);
196
- eigen_assert(( ((internal::UIntPtr(m_data) % internal::traits<Derived>::Alignment) == 0)
197
- || (cols() * rows() * minInnerStride * sizeof(Scalar)) < internal::traits<Derived>::Alignment ) && "data is not aligned");
24
+ *
25
+ * \brief Base class for dense Map and Block expression with direct access
26
+ *
27
+ * This base class provides the const low-level accessors (e.g. coeff, coeffRef) of dense
28
+ * Map and Block objects with direct access.
29
+ * Typical users do not have to directly deal with this class.
30
+ *
31
+ * This class can be extended by through the macro plugin \c EIGEN_MAPBASE_PLUGIN.
32
+ * See \link TopicCustomizing_Plugins customizing Eigen \endlink for details.
33
+ *
34
+ * The \c Derived class has to provide the following two methods describing the memory layout:
35
+ * \code Index innerStride() const; \endcode
36
+ * \code Index outerStride() const; \endcode
37
+ *
38
+ * \sa class Map, class Block
39
+ */
40
+ template <typename Derived>
41
+ class MapBase<Derived, ReadOnlyAccessors> : public internal::dense_xpr_base<Derived>::type {
42
+ public:
43
+ typedef typename internal::dense_xpr_base<Derived>::type Base;
44
+ enum {
45
+ RowsAtCompileTime = internal::traits<Derived>::RowsAtCompileTime,
46
+ ColsAtCompileTime = internal::traits<Derived>::ColsAtCompileTime,
47
+ InnerStrideAtCompileTime = internal::traits<Derived>::InnerStrideAtCompileTime,
48
+ SizeAtCompileTime = Base::SizeAtCompileTime
49
+ };
50
+
51
+ typedef typename internal::traits<Derived>::StorageKind StorageKind;
52
+ typedef typename internal::traits<Derived>::Scalar Scalar;
53
+ typedef typename internal::packet_traits<Scalar>::type PacketScalar;
54
+ typedef typename NumTraits<Scalar>::Real RealScalar;
55
+ typedef std::conditional_t<bool(internal::is_lvalue<Derived>::value), Scalar*, const Scalar*> PointerType;
56
+
57
+ using Base::derived;
58
+ // using Base::RowsAtCompileTime;
59
+ // using Base::ColsAtCompileTime;
60
+ // using Base::SizeAtCompileTime;
61
+ using Base::Flags;
62
+ using Base::IsRowMajor;
63
+ using Base::IsVectorAtCompileTime;
64
+ using Base::MaxColsAtCompileTime;
65
+ using Base::MaxRowsAtCompileTime;
66
+ using Base::MaxSizeAtCompileTime;
67
+
68
+ using Base::coeff;
69
+ using Base::coeffRef;
70
+ using Base::cols;
71
+ using Base::eval;
72
+ using Base::lazyAssign;
73
+ using Base::rows;
74
+ using Base::size;
75
+
76
+ using Base::colStride;
77
+ using Base::innerStride;
78
+ using Base::outerStride;
79
+ using Base::rowStride;
80
+
81
+ // bug 217 - compile error on ICC 11.1
82
+ using Base::operator=;
83
+
84
+ typedef typename Base::CoeffReturnType CoeffReturnType;
85
+
86
+ /** \copydoc DenseBase::rows() */
87
+ EIGEN_DEVICE_FUNC constexpr Index rows() const noexcept { return m_rows.value(); }
88
+ /** \copydoc DenseBase::cols() */
89
+ EIGEN_DEVICE_FUNC constexpr Index cols() const noexcept { return m_cols.value(); }
90
+
91
+ /** Returns a pointer to the first coefficient of the matrix or vector.
92
+ *
93
+ * \note When addressing this data, make sure to honor the strides returned by innerStride() and outerStride().
94
+ *
95
+ * \sa innerStride(), outerStride()
96
+ */
97
+ EIGEN_DEVICE_FUNC constexpr const Scalar* data() const { return m_data; }
98
+
99
+ /** \copydoc PlainObjectBase::coeff(Index,Index) const */
100
+ EIGEN_DEVICE_FUNC inline const Scalar& coeff(Index rowId, Index colId) const {
101
+ return m_data[colId * colStride() + rowId * rowStride()];
102
+ }
103
+
104
+ /** \copydoc PlainObjectBase::coeff(Index) const */
105
+ EIGEN_DEVICE_FUNC inline const Scalar& coeff(Index index) const {
106
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
107
+ return m_data[index * innerStride()];
108
+ }
109
+
110
+ /** \copydoc PlainObjectBase::coeffRef(Index,Index) const */
111
+ EIGEN_DEVICE_FUNC inline const Scalar& coeffRef(Index rowId, Index colId) const {
112
+ return this->m_data[colId * colStride() + rowId * rowStride()];
113
+ }
114
+
115
+ /** \copydoc PlainObjectBase::coeffRef(Index) const */
116
+ EIGEN_DEVICE_FUNC inline const Scalar& coeffRef(Index index) const {
117
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
118
+ return this->m_data[index * innerStride()];
119
+ }
120
+
121
+ /** \internal */
122
+ template <int LoadMode>
123
+ inline PacketScalar packet(Index rowId, Index colId) const {
124
+ return internal::ploadt<PacketScalar, LoadMode>(m_data + (colId * colStride() + rowId * rowStride()));
125
+ }
126
+
127
+ /** \internal */
128
+ template <int LoadMode>
129
+ inline PacketScalar packet(Index index) const {
130
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
131
+ return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
132
+ }
133
+
134
+ /** \internal Constructor for fixed size matrices or vectors */
135
+ EIGEN_DEVICE_FUNC explicit inline MapBase(PointerType dataPtr)
136
+ : m_data(dataPtr), m_rows(RowsAtCompileTime), m_cols(ColsAtCompileTime) {
137
+ EIGEN_STATIC_ASSERT_FIXED_SIZE(Derived)
138
+ checkSanity<Derived>();
139
+ }
140
+
141
+ /** \internal Constructor for dynamically sized vectors */
142
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize)
143
+ : m_data(dataPtr),
144
+ m_rows(RowsAtCompileTime == Dynamic ? vecSize : Index(RowsAtCompileTime)),
145
+ m_cols(ColsAtCompileTime == Dynamic ? vecSize : Index(ColsAtCompileTime)) {
146
+ EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived)
147
+ eigen_assert(vecSize >= 0);
148
+ eigen_assert(dataPtr == 0 || SizeAtCompileTime == Dynamic || SizeAtCompileTime == vecSize);
149
+ checkSanity<Derived>();
150
+ }
151
+
152
+ /** \internal Constructor for dynamically sized matrices */
153
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index cols)
154
+ : m_data(dataPtr), m_rows(rows), m_cols(cols) {
155
+ eigen_assert((dataPtr == 0) || (rows >= 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows) &&
156
+ cols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols)));
157
+ checkSanity<Derived>();
158
+ }
159
+
160
+ #ifdef EIGEN_MAPBASE_PLUGIN
161
+ #include EIGEN_MAPBASE_PLUGIN
198
162
  #endif
199
- }
200
163
 
201
- template<typename T>
202
- EIGEN_DEVICE_FUNC
203
- void checkSanity(typename internal::enable_if<internal::traits<T>::Alignment==0,void*>::type = 0) const
204
- {}
164
+ protected:
165
+ EIGEN_DEFAULT_COPY_CONSTRUCTOR(MapBase)
166
+ EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MapBase)
167
+
168
+ template <typename T>
169
+ EIGEN_DEVICE_FUNC void checkSanity(std::enable_if_t<(internal::traits<T>::Alignment > 0), void*> = 0) const {
170
+ // Temporary macro to allow scalars to not be properly aligned. This is while we sort out failures
171
+ // in TensorFlow Lite that are currently relying on this UB.
172
+ #ifndef EIGEN_ALLOW_UNALIGNED_SCALARS
173
+ // Pointer must be aligned to the Scalar type, otherwise we get UB.
174
+ eigen_assert((std::uintptr_t(m_data) % alignof(Scalar) == 0) && "data is not scalar-aligned");
175
+ #endif
176
+ #if EIGEN_MAX_ALIGN_BYTES > 0
177
+ // innerStride() is not set yet when this function is called, so we optimistically assume the lowest plausible
178
+ // value:
179
+ const Index minInnerStride = InnerStrideAtCompileTime == Dynamic ? 1 : Index(InnerStrideAtCompileTime);
180
+ EIGEN_ONLY_USED_FOR_DEBUG(minInnerStride);
181
+ eigen_assert((((std::uintptr_t(m_data) % internal::traits<Derived>::Alignment) == 0) ||
182
+ (cols() * rows() * minInnerStride * sizeof(Scalar)) < internal::traits<Derived>::Alignment) &&
183
+ "data is not aligned");
184
+ #endif
185
+ }
186
+
187
+ template <typename T>
188
+ EIGEN_DEVICE_FUNC void checkSanity(std::enable_if_t<internal::traits<T>::Alignment == 0, void*> = 0) const {
189
+ #ifndef EIGEN_ALLOW_UNALIGNED_SCALARS
190
+ // Pointer must be aligned to the Scalar type, otherwise we get UB.
191
+ eigen_assert((std::uintptr_t(m_data) % alignof(Scalar) == 0) && "data is not scalar-aligned");
192
+ #endif
193
+ }
205
194
 
206
- PointerType m_data;
207
- const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
208
- const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
195
+ PointerType m_data;
196
+ const internal::variable_if_dynamic<Index, RowsAtCompileTime> m_rows;
197
+ const internal::variable_if_dynamic<Index, ColsAtCompileTime> m_cols;
209
198
  };
210
199
 
211
200
  /** \ingroup Core_Module
212
- *
213
- * \brief Base class for non-const dense Map and Block expression with direct access
214
- *
215
- * This base class provides the non-const low-level accessors (e.g. coeff and coeffRef) of
216
- * dense Map and Block objects with direct access.
217
- * It inherits MapBase<Derived, ReadOnlyAccessors> which defines the const variant for reading specific entries.
218
- *
219
- * \sa class Map, class Block
220
- */
221
- template<typename Derived> class MapBase<Derived, WriteAccessors>
222
- : public MapBase<Derived, ReadOnlyAccessors>
223
- {
224
- typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
225
- public:
226
-
227
- typedef MapBase<Derived, ReadOnlyAccessors> Base;
228
-
229
- typedef typename Base::Scalar Scalar;
230
- typedef typename Base::PacketScalar PacketScalar;
231
- typedef typename Base::StorageIndex StorageIndex;
232
- typedef typename Base::PointerType PointerType;
233
-
234
- using Base::derived;
235
- using Base::rows;
236
- using Base::cols;
237
- using Base::size;
238
- using Base::coeff;
239
- using Base::coeffRef;
240
-
241
- using Base::innerStride;
242
- using Base::outerStride;
243
- using Base::rowStride;
244
- using Base::colStride;
245
-
246
- typedef typename internal::conditional<
247
- internal::is_lvalue<Derived>::value,
248
- Scalar,
249
- const Scalar
250
- >::type ScalarWithConstIfNotLvalue;
251
-
252
- EIGEN_DEVICE_FUNC
253
- inline const Scalar* data() const { return this->m_data; }
254
- EIGEN_DEVICE_FUNC
255
- inline ScalarWithConstIfNotLvalue* data() { return this->m_data; } // no const-cast here so non-const-correct code will give a compile error
256
-
257
- EIGEN_DEVICE_FUNC
258
- inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col)
259
- {
260
- return this->m_data[col * colStride() + row * rowStride()];
261
- }
262
-
263
- EIGEN_DEVICE_FUNC
264
- inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
265
- {
266
- EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
267
- return this->m_data[index * innerStride()];
268
- }
269
-
270
- template<int StoreMode>
271
- inline void writePacket(Index row, Index col, const PacketScalar& val)
272
- {
273
- internal::pstoret<Scalar, PacketScalar, StoreMode>
274
- (this->m_data + (col * colStride() + row * rowStride()), val);
275
- }
276
-
277
- template<int StoreMode>
278
- inline void writePacket(Index index, const PacketScalar& val)
279
- {
280
- EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
281
- internal::pstoret<Scalar, PacketScalar, StoreMode>
282
- (this->m_data + index * innerStride(), val);
283
- }
284
-
285
- EIGEN_DEVICE_FUNC explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
286
- EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
287
- EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index cols) : Base(dataPtr, rows, cols) {}
288
-
289
- EIGEN_DEVICE_FUNC
290
- Derived& operator=(const MapBase& other)
291
- {
292
- ReadOnlyMapBase::Base::operator=(other);
293
- return derived();
294
- }
295
-
296
- // In theory we could simply refer to Base:Base::operator=, but MSVC does not like Base::Base,
297
- // see bugs 821 and 920.
298
- using ReadOnlyMapBase::Base::operator=;
299
- protected:
300
- EIGEN_DEFAULT_COPY_CONSTRUCTOR(MapBase)
301
- EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MapBase)
201
+ *
202
+ * \brief Base class for non-const dense Map and Block expression with direct access
203
+ *
204
+ * This base class provides the non-const low-level accessors (e.g. coeff and coeffRef) of
205
+ * dense Map and Block objects with direct access.
206
+ * It inherits MapBase<Derived, ReadOnlyAccessors> which defines the const variant for reading specific entries.
207
+ *
208
+ * \sa class Map, class Block
209
+ */
210
+ template <typename Derived>
211
+ class MapBase<Derived, WriteAccessors> : public MapBase<Derived, ReadOnlyAccessors> {
212
+ typedef MapBase<Derived, ReadOnlyAccessors> ReadOnlyMapBase;
213
+
214
+ public:
215
+ typedef MapBase<Derived, ReadOnlyAccessors> Base;
216
+
217
+ typedef typename Base::Scalar Scalar;
218
+ typedef typename Base::PacketScalar PacketScalar;
219
+ typedef typename Base::StorageIndex StorageIndex;
220
+ typedef typename Base::PointerType PointerType;
221
+
222
+ using Base::coeff;
223
+ using Base::coeffRef;
224
+ using Base::cols;
225
+ using Base::derived;
226
+ using Base::rows;
227
+ using Base::size;
228
+
229
+ using Base::colStride;
230
+ using Base::innerStride;
231
+ using Base::outerStride;
232
+ using Base::rowStride;
233
+
234
+ typedef std::conditional_t<internal::is_lvalue<Derived>::value, Scalar, const Scalar> ScalarWithConstIfNotLvalue;
235
+
236
+ EIGEN_DEVICE_FUNC constexpr const Scalar* data() const { return this->m_data; }
237
+ EIGEN_DEVICE_FUNC constexpr ScalarWithConstIfNotLvalue* data() {
238
+ return this->m_data;
239
+ } // no const-cast here so non-const-correct code will give a compile error
240
+
241
+ EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue& coeffRef(Index row, Index col) {
242
+ return this->m_data[col * colStride() + row * rowStride()];
243
+ }
244
+
245
+ EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue& coeffRef(Index index) {
246
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
247
+ return this->m_data[index * innerStride()];
248
+ }
249
+
250
+ template <int StoreMode>
251
+ inline void writePacket(Index row, Index col, const PacketScalar& val) {
252
+ internal::pstoret<Scalar, PacketScalar, StoreMode>(this->m_data + (col * colStride() + row * rowStride()), val);
253
+ }
254
+
255
+ template <int StoreMode>
256
+ inline void writePacket(Index index, const PacketScalar& val) {
257
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
258
+ internal::pstoret<Scalar, PacketScalar, StoreMode>(this->m_data + index * innerStride(), val);
259
+ }
260
+
261
+ EIGEN_DEVICE_FUNC explicit inline MapBase(PointerType dataPtr) : Base(dataPtr) {}
262
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index vecSize) : Base(dataPtr, vecSize) {}
263
+ EIGEN_DEVICE_FUNC inline MapBase(PointerType dataPtr, Index rows, Index cols) : Base(dataPtr, rows, cols) {}
264
+
265
+ EIGEN_DEVICE_FUNC Derived& operator=(const MapBase& other) {
266
+ ReadOnlyMapBase::Base::operator=(other);
267
+ return derived();
268
+ }
269
+
270
+ // In theory we could simply refer to Base:Base::operator=, but MSVC does not like Base::Base,
271
+ // see bugs 821 and 920.
272
+ using ReadOnlyMapBase::Base::operator=;
273
+
274
+ protected:
275
+ EIGEN_DEFAULT_COPY_CONSTRUCTOR(MapBase)
276
+ EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(MapBase)
302
277
  };
303
278
 
304
279
  #undef EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS
305
280
 
306
- } // end namespace Eigen
281
+ } // end namespace Eigen
307
282
 
308
- #endif // EIGEN_MAPBASE_H
283
+ #endif // EIGEN_MAPBASE_H