@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
@@ -12,14 +12,17 @@
12
12
  #ifndef EIGEN_CWISE_TERNARY_OP_H
13
13
  #define EIGEN_CWISE_TERNARY_OP_H
14
14
 
15
+ // IWYU pragma: private
16
+ #include "./InternalHeaderCheck.h"
17
+
15
18
  namespace Eigen {
16
19
 
17
20
  namespace internal {
18
21
  template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3>
19
- struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
22
+ struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>> {
20
23
  // we must not inherit from traits<Arg1> since it has
21
24
  // the potential to cause problems with MSVC
22
- typedef typename remove_all<Arg1>::type Ancestor;
25
+ typedef remove_all_t<Arg1> Ancestor;
23
26
  typedef typename traits<Ancestor>::XprKind XprKind;
24
27
  enum {
25
28
  RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime,
@@ -31,9 +34,8 @@ struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
31
34
  // even though we require Arg1, Arg2, and Arg3 to have the same scalar type
32
35
  // (see CwiseTernaryOp constructor),
33
36
  // we still want to handle the case when the result type is different.
34
- typedef typename result_of<TernaryOp(
35
- const typename Arg1::Scalar&, const typename Arg2::Scalar&,
36
- const typename Arg3::Scalar&)>::type Scalar;
37
+ typedef typename result_of<TernaryOp(const typename Arg1::Scalar&, const typename Arg2::Scalar&,
38
+ const typename Arg3::Scalar&)>::type Scalar;
37
39
 
38
40
  typedef typename internal::traits<Arg1>::StorageKind StorageKind;
39
41
  typedef typename internal::traits<Arg1>::StorageIndex StorageIndex;
@@ -41,138 +43,114 @@ struct traits<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> > {
41
43
  typedef typename Arg1::Nested Arg1Nested;
42
44
  typedef typename Arg2::Nested Arg2Nested;
43
45
  typedef typename Arg3::Nested Arg3Nested;
44
- typedef typename remove_reference<Arg1Nested>::type _Arg1Nested;
45
- typedef typename remove_reference<Arg2Nested>::type _Arg2Nested;
46
- typedef typename remove_reference<Arg3Nested>::type _Arg3Nested;
47
- enum { Flags = _Arg1Nested::Flags & RowMajorBit };
46
+ typedef std::remove_reference_t<Arg1Nested> Arg1Nested_;
47
+ typedef std::remove_reference_t<Arg2Nested> Arg2Nested_;
48
+ typedef std::remove_reference_t<Arg3Nested> Arg3Nested_;
49
+ enum { Flags = Arg1Nested_::Flags & RowMajorBit };
48
50
  };
49
51
  } // end namespace internal
50
52
 
51
- template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
52
- typename StorageKind>
53
+ template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3, typename StorageKind>
53
54
  class CwiseTernaryOpImpl;
54
55
 
55
56
  /** \class CwiseTernaryOp
56
- * \ingroup Core_Module
57
- *
58
- * \brief Generic expression where a coefficient-wise ternary operator is
57
+ * \ingroup Core_Module
58
+ *
59
+ * \brief Generic expression where a coefficient-wise ternary operator is
59
60
  * applied to two expressions
60
- *
61
- * \tparam TernaryOp template functor implementing the operator
62
- * \tparam Arg1Type the type of the first argument
63
- * \tparam Arg2Type the type of the second argument
64
- * \tparam Arg3Type the type of the third argument
65
- *
66
- * This class represents an expression where a coefficient-wise ternary
61
+ *
62
+ * \tparam TernaryOp template functor implementing the operator
63
+ * \tparam Arg1Type the type of the first argument
64
+ * \tparam Arg2Type the type of the second argument
65
+ * \tparam Arg3Type the type of the third argument
66
+ *
67
+ * This class represents an expression where a coefficient-wise ternary
67
68
  * operator is applied to three expressions.
68
- * It is the return type of ternary operators, by which we mean only those
69
+ * It is the return type of ternary operators, by which we mean only those
69
70
  * ternary operators where
70
- * all three arguments are Eigen expressions.
71
- * For example, the return type of betainc(matrix1, matrix2, matrix3) is a
71
+ * all three arguments are Eigen expressions.
72
+ * For example, the return type of betainc(matrix1, matrix2, matrix3) is a
72
73
  * CwiseTernaryOp.
73
- *
74
- * Most of the time, this is the only way that it is used, so you typically
74
+ *
75
+ * Most of the time, this is the only way that it is used, so you typically
75
76
  * don't have to name
76
- * CwiseTernaryOp types explicitly.
77
- *
78
- * \sa MatrixBase::ternaryExpr(const MatrixBase<Argument2> &, const
77
+ * CwiseTernaryOp types explicitly.
78
+ *
79
+ * \sa MatrixBase::ternaryExpr(const MatrixBase<Argument2> &, const
79
80
  * MatrixBase<Argument3> &, const CustomTernaryOp &) const, class CwiseBinaryOp,
80
81
  * class CwiseUnaryOp, class CwiseNullaryOp
81
- */
82
- template <typename TernaryOp, typename Arg1Type, typename Arg2Type,
83
- typename Arg3Type>
84
- class CwiseTernaryOp : public CwiseTernaryOpImpl<
85
- TernaryOp, Arg1Type, Arg2Type, Arg3Type,
86
- typename internal::traits<Arg1Type>::StorageKind>,
87
- internal::no_assignment_operator
88
- {
82
+ */
83
+ template <typename TernaryOp, typename Arg1Type, typename Arg2Type, typename Arg3Type>
84
+ class CwiseTernaryOp : public CwiseTernaryOpImpl<TernaryOp, Arg1Type, Arg2Type, Arg3Type,
85
+ typename internal::traits<Arg1Type>::StorageKind>,
86
+ internal::no_assignment_operator {
89
87
  public:
90
- typedef typename internal::remove_all<Arg1Type>::type Arg1;
91
- typedef typename internal::remove_all<Arg2Type>::type Arg2;
92
- typedef typename internal::remove_all<Arg3Type>::type Arg3;
93
-
94
- typedef typename CwiseTernaryOpImpl<
95
- TernaryOp, Arg1Type, Arg2Type, Arg3Type,
96
- typename internal::traits<Arg1Type>::StorageKind>::Base Base;
88
+ typedef internal::remove_all_t<Arg1Type> Arg1;
89
+ typedef internal::remove_all_t<Arg2Type> Arg2;
90
+ typedef internal::remove_all_t<Arg3Type> Arg3;
91
+
92
+ // require the sizes to match
93
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg2)
94
+ EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg3)
95
+
96
+ // The index types should match
97
+ EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
98
+ typename internal::traits<Arg2Type>::StorageKind>::value),
99
+ STORAGE_KIND_MUST_MATCH)
100
+ EIGEN_STATIC_ASSERT((internal::is_same<typename internal::traits<Arg1Type>::StorageKind,
101
+ typename internal::traits<Arg3Type>::StorageKind>::value),
102
+ STORAGE_KIND_MUST_MATCH)
103
+
104
+ typedef typename CwiseTernaryOpImpl<TernaryOp, Arg1Type, Arg2Type, Arg3Type,
105
+ typename internal::traits<Arg1Type>::StorageKind>::Base Base;
97
106
  EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseTernaryOp)
98
107
 
99
108
  typedef typename internal::ref_selector<Arg1Type>::type Arg1Nested;
100
109
  typedef typename internal::ref_selector<Arg2Type>::type Arg2Nested;
101
110
  typedef typename internal::ref_selector<Arg3Type>::type Arg3Nested;
102
- typedef typename internal::remove_reference<Arg1Nested>::type _Arg1Nested;
103
- typedef typename internal::remove_reference<Arg2Nested>::type _Arg2Nested;
104
- typedef typename internal::remove_reference<Arg3Nested>::type _Arg3Nested;
105
-
106
- EIGEN_DEVICE_FUNC
107
- EIGEN_STRONG_INLINE CwiseTernaryOp(const Arg1& a1, const Arg2& a2,
108
- const Arg3& a3,
109
- const TernaryOp& func = TernaryOp())
111
+ typedef std::remove_reference_t<Arg1Nested> Arg1Nested_;
112
+ typedef std::remove_reference_t<Arg2Nested> Arg2Nested_;
113
+ typedef std::remove_reference_t<Arg3Nested> Arg3Nested_;
114
+
115
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CwiseTernaryOp(const Arg1& a1, const Arg2& a2, const Arg3& a3,
116
+ const TernaryOp& func = TernaryOp())
110
117
  : m_arg1(a1), m_arg2(a2), m_arg3(a3), m_functor(func) {
111
- // require the sizes to match
112
- EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg2)
113
- EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(Arg1, Arg3)
114
-
115
- // The index types should match
116
- EIGEN_STATIC_ASSERT((internal::is_same<
117
- typename internal::traits<Arg1Type>::StorageKind,
118
- typename internal::traits<Arg2Type>::StorageKind>::value),
119
- STORAGE_KIND_MUST_MATCH)
120
- EIGEN_STATIC_ASSERT((internal::is_same<
121
- typename internal::traits<Arg1Type>::StorageKind,
122
- typename internal::traits<Arg3Type>::StorageKind>::value),
123
- STORAGE_KIND_MUST_MATCH)
124
-
125
- eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() &&
126
- a1.rows() == a3.rows() && a1.cols() == a3.cols());
118
+ eigen_assert(a1.rows() == a2.rows() && a1.cols() == a2.cols() && a1.rows() == a3.rows() && a1.cols() == a3.cols());
127
119
  }
128
120
 
129
- EIGEN_DEVICE_FUNC
130
- EIGEN_STRONG_INLINE Index rows() const {
121
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const {
131
122
  // return the fixed size type if available to enable compile time
132
123
  // optimizations
133
- if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
134
- RowsAtCompileTime == Dynamic &&
135
- internal::traits<typename internal::remove_all<Arg2Nested>::type>::
136
- RowsAtCompileTime == Dynamic)
124
+ if (internal::traits<internal::remove_all_t<Arg1Nested>>::RowsAtCompileTime == Dynamic &&
125
+ internal::traits<internal::remove_all_t<Arg2Nested>>::RowsAtCompileTime == Dynamic)
137
126
  return m_arg3.rows();
138
- else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
139
- RowsAtCompileTime == Dynamic &&
140
- internal::traits<typename internal::remove_all<Arg3Nested>::type>::
141
- RowsAtCompileTime == Dynamic)
127
+ else if (internal::traits<internal::remove_all_t<Arg1Nested>>::RowsAtCompileTime == Dynamic &&
128
+ internal::traits<internal::remove_all_t<Arg3Nested>>::RowsAtCompileTime == Dynamic)
142
129
  return m_arg2.rows();
143
130
  else
144
131
  return m_arg1.rows();
145
132
  }
146
- EIGEN_DEVICE_FUNC
147
- EIGEN_STRONG_INLINE Index cols() const {
133
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const {
148
134
  // return the fixed size type if available to enable compile time
149
135
  // optimizations
150
- if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
151
- ColsAtCompileTime == Dynamic &&
152
- internal::traits<typename internal::remove_all<Arg2Nested>::type>::
153
- ColsAtCompileTime == Dynamic)
136
+ if (internal::traits<internal::remove_all_t<Arg1Nested>>::ColsAtCompileTime == Dynamic &&
137
+ internal::traits<internal::remove_all_t<Arg2Nested>>::ColsAtCompileTime == Dynamic)
154
138
  return m_arg3.cols();
155
- else if (internal::traits<typename internal::remove_all<Arg1Nested>::type>::
156
- ColsAtCompileTime == Dynamic &&
157
- internal::traits<typename internal::remove_all<Arg3Nested>::type>::
158
- ColsAtCompileTime == Dynamic)
139
+ else if (internal::traits<internal::remove_all_t<Arg1Nested>>::ColsAtCompileTime == Dynamic &&
140
+ internal::traits<internal::remove_all_t<Arg3Nested>>::ColsAtCompileTime == Dynamic)
159
141
  return m_arg2.cols();
160
142
  else
161
143
  return m_arg1.cols();
162
144
  }
163
145
 
164
146
  /** \returns the first argument nested expression */
165
- EIGEN_DEVICE_FUNC
166
- const _Arg1Nested& arg1() const { return m_arg1; }
147
+ EIGEN_DEVICE_FUNC const Arg1Nested_& arg1() const { return m_arg1; }
167
148
  /** \returns the first argument nested expression */
168
- EIGEN_DEVICE_FUNC
169
- const _Arg2Nested& arg2() const { return m_arg2; }
149
+ EIGEN_DEVICE_FUNC const Arg2Nested_& arg2() const { return m_arg2; }
170
150
  /** \returns the third argument nested expression */
171
- EIGEN_DEVICE_FUNC
172
- const _Arg3Nested& arg3() const { return m_arg3; }
151
+ EIGEN_DEVICE_FUNC const Arg3Nested_& arg3() const { return m_arg3; }
173
152
  /** \returns the functor representing the ternary operation */
174
- EIGEN_DEVICE_FUNC
175
- const TernaryOp& functor() const { return m_functor; }
153
+ EIGEN_DEVICE_FUNC const TernaryOp& functor() const { return m_functor; }
176
154
 
177
155
  protected:
178
156
  Arg1Nested m_arg1;
@@ -182,14 +160,10 @@ class CwiseTernaryOp : public CwiseTernaryOpImpl<
182
160
  };
183
161
 
184
162
  // Generic API dispatcher
185
- template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3,
186
- typename StorageKind>
187
- class CwiseTernaryOpImpl
188
- : public internal::generic_xpr_base<
189
- CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type {
163
+ template <typename TernaryOp, typename Arg1, typename Arg2, typename Arg3, typename StorageKind>
164
+ class CwiseTernaryOpImpl : public internal::generic_xpr_base<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>>::type {
190
165
  public:
191
- typedef typename internal::generic_xpr_base<
192
- CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3> >::type Base;
166
+ typedef typename internal::generic_xpr_base<CwiseTernaryOp<TernaryOp, Arg1, Arg2, Arg3>>::type Base;
193
167
  };
194
168
 
195
169
  } // end namespace Eigen
@@ -11,93 +11,81 @@
11
11
  #ifndef EIGEN_CWISE_UNARY_OP_H
12
12
  #define EIGEN_CWISE_UNARY_OP_H
13
13
 
14
- namespace Eigen {
14
+ // IWYU pragma: private
15
+ #include "./InternalHeaderCheck.h"
16
+
17
+ namespace Eigen {
15
18
 
16
19
  namespace internal {
17
- template<typename UnaryOp, typename XprType>
18
- struct traits<CwiseUnaryOp<UnaryOp, XprType> >
19
- : traits<XprType>
20
- {
21
- typedef typename result_of<
22
- UnaryOp(const typename XprType::Scalar&)
23
- >::type Scalar;
20
+ template <typename UnaryOp, typename XprType>
21
+ struct traits<CwiseUnaryOp<UnaryOp, XprType> > : traits<XprType> {
22
+ typedef typename result_of<UnaryOp(const typename XprType::Scalar&)>::type Scalar;
24
23
  typedef typename XprType::Nested XprTypeNested;
25
- typedef typename remove_reference<XprTypeNested>::type _XprTypeNested;
26
- enum {
27
- Flags = _XprTypeNested::Flags & RowMajorBit
28
- };
24
+ typedef std::remove_reference_t<XprTypeNested> XprTypeNested_;
25
+ enum { Flags = XprTypeNested_::Flags & RowMajorBit };
29
26
  };
30
- }
27
+ } // namespace internal
31
28
 
32
- template<typename UnaryOp, typename XprType, typename StorageKind>
29
+ template <typename UnaryOp, typename XprType, typename StorageKind>
33
30
  class CwiseUnaryOpImpl;
34
31
 
35
32
  /** \class CwiseUnaryOp
36
- * \ingroup Core_Module
37
- *
38
- * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
39
- *
40
- * \tparam UnaryOp template functor implementing the operator
41
- * \tparam XprType the type of the expression to which we are applying the unary operator
42
- *
43
- * This class represents an expression where a unary operator is applied to an expression.
44
- * It is the return type of all operations taking exactly 1 input expression, regardless of the
45
- * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
46
- * is considered unary, because only the right-hand side is an expression, and its
47
- * return type is a specialization of CwiseUnaryOp.
48
- *
49
- * Most of the time, this is the only way that it is used, so you typically don't have to name
50
- * CwiseUnaryOp types explicitly.
51
- *
52
- * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
53
- */
54
- template<typename UnaryOp, typename XprType>
55
- class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>, internal::no_assignment_operator
56
- {
57
- public:
58
-
59
- typedef typename CwiseUnaryOpImpl<UnaryOp, XprType,typename internal::traits<XprType>::StorageKind>::Base Base;
60
- EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
61
- typedef typename internal::ref_selector<XprType>::type XprTypeNested;
62
- typedef typename internal::remove_all<XprType>::type NestedExpression;
33
+ * \ingroup Core_Module
34
+ *
35
+ * \brief Generic expression where a coefficient-wise unary operator is applied to an expression
36
+ *
37
+ * \tparam UnaryOp template functor implementing the operator
38
+ * \tparam XprType the type of the expression to which we are applying the unary operator
39
+ *
40
+ * This class represents an expression where a unary operator is applied to an expression.
41
+ * It is the return type of all operations taking exactly 1 input expression, regardless of the
42
+ * presence of other inputs such as scalars. For example, the operator* in the expression 3*matrix
43
+ * is considered unary, because only the right-hand side is an expression, and its
44
+ * return type is a specialization of CwiseUnaryOp.
45
+ *
46
+ * Most of the time, this is the only way that it is used, so you typically don't have to name
47
+ * CwiseUnaryOp types explicitly.
48
+ *
49
+ * \sa MatrixBase::unaryExpr(const CustomUnaryOp &) const, class CwiseBinaryOp, class CwiseNullaryOp
50
+ */
51
+ template <typename UnaryOp, typename XprType>
52
+ class CwiseUnaryOp : public CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>,
53
+ internal::no_assignment_operator {
54
+ public:
55
+ typedef typename CwiseUnaryOpImpl<UnaryOp, XprType, typename internal::traits<XprType>::StorageKind>::Base Base;
56
+ EIGEN_GENERIC_PUBLIC_INTERFACE(CwiseUnaryOp)
57
+ typedef typename internal::ref_selector<XprType>::type XprTypeNested;
58
+ typedef internal::remove_all_t<XprType> NestedExpression;
63
59
 
64
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
65
- explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
60
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE explicit CwiseUnaryOp(const XprType& xpr, const UnaryOp& func = UnaryOp())
66
61
  : m_xpr(xpr), m_functor(func) {}
67
62
 
68
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
69
- Index rows() const { return m_xpr.rows(); }
70
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
71
- Index cols() const { return m_xpr.cols(); }
63
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index rows() const noexcept { return m_xpr.rows(); }
64
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE constexpr Index cols() const noexcept { return m_xpr.cols(); }
72
65
 
73
- /** \returns the functor representing the unary operation */
74
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
75
- const UnaryOp& functor() const { return m_functor; }
66
+ /** \returns the functor representing the unary operation */
67
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const UnaryOp& functor() const { return m_functor; }
76
68
 
77
- /** \returns the nested expression */
78
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
79
- const typename internal::remove_all<XprTypeNested>::type&
80
- nestedExpression() const { return m_xpr; }
69
+ /** \returns the nested expression */
70
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const internal::remove_all_t<XprTypeNested>& nestedExpression() const {
71
+ return m_xpr;
72
+ }
81
73
 
82
- /** \returns the nested expression */
83
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
84
- typename internal::remove_all<XprTypeNested>::type&
85
- nestedExpression() { return m_xpr; }
74
+ /** \returns the nested expression */
75
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::remove_all_t<XprTypeNested>& nestedExpression() { return m_xpr; }
86
76
 
87
- protected:
88
- XprTypeNested m_xpr;
89
- const UnaryOp m_functor;
77
+ protected:
78
+ XprTypeNested m_xpr;
79
+ const UnaryOp m_functor;
90
80
  };
91
81
 
92
82
  // Generic API dispatcher
93
- template<typename UnaryOp, typename XprType, typename StorageKind>
94
- class CwiseUnaryOpImpl
95
- : public internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type
96
- {
97
- public:
83
+ template <typename UnaryOp, typename XprType, typename StorageKind>
84
+ class CwiseUnaryOpImpl : public internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type {
85
+ public:
98
86
  typedef typename internal::generic_xpr_base<CwiseUnaryOp<UnaryOp, XprType> >::type Base;
99
87
  };
100
88
 
101
- } // end namespace Eigen
89
+ } // end namespace Eigen
102
90
 
103
- #endif // EIGEN_CWISE_UNARY_OP_H
91
+ #endif // EIGEN_CWISE_UNARY_OP_H