@smake/eigen 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -20
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +187 -120
  6. package/eigen/Eigen/Eigenvalues +16 -13
  7. package/eigen/Eigen/Geometry +18 -18
  8. package/eigen/Eigen/Householder +9 -7
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -13
  11. package/eigen/Eigen/KLUSupport +23 -21
  12. package/eigen/Eigen/LU +15 -16
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -51
  15. package/eigen/Eigen/PaStiXSupport +23 -21
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -20
  18. package/eigen/Eigen/QtAlignedMalloc +5 -12
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -17
  21. package/eigen/Eigen/Sparse +1 -2
  22. package/eigen/Eigen/SparseCholesky +18 -15
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +9 -9
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +366 -405
  37. package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
  42. package/eigen/Eigen/src/Core/Array.h +329 -370
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
  48. package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
  49. package/eigen/Eigen/src/Core/Block.h +371 -390
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
  53. package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
  59. package/eigen/Eigen/src/Core/DenseBase.h +630 -658
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
  61. package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +168 -207
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +167 -217
  67. package/eigen/Eigen/src/Core/EigenBase.h +74 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -113
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
  75. package/eigen/Eigen/src/Core/IO.h +131 -156
  76. package/eigen/Eigen/src/Core/IndexedView.h +209 -125
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +50 -59
  80. package/eigen/Eigen/src/Core/Map.h +123 -141
  81. package/eigen/Eigen/src/Core/MapBase.h +255 -282
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
  84. package/eigen/Eigen/src/Core/Matrix.h +463 -494
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
  86. package/eigen/Eigen/src/Core/NestByValue.h +58 -52
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -86
  88. package/eigen/Eigen/src/Core/NumTraits.h +206 -206
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
  92. package/eigen/Eigen/src/Core/Product.h +246 -130
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
  94. package/eigen/Eigen/src/Core/Random.h +153 -164
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +334 -314
  98. package/eigen/Eigen/src/Core/Ref.h +259 -257
  99. package/eigen/Eigen/src/Core/Replicate.h +92 -104
  100. package/eigen/Eigen/src/Core/Reshaped.h +215 -271
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +133 -148
  103. package/eigen/Eigen/src/Core/Select.h +68 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +88 -102
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
  109. package/eigen/Eigen/src/Core/SolverBase.h +132 -133
  110. package/eigen/Eigen/src/Core/StableNorm.h +113 -147
  111. package/eigen/Eigen/src/Core/StlIterators.h +404 -248
  112. package/eigen/Eigen/src/Core/Stride.h +90 -92
  113. package/eigen/Eigen/src/Core/Swap.h +70 -39
  114. package/eigen/Eigen/src/Core/Transpose.h +258 -295
  115. package/eigen/Eigen/src/Core/Transpositions.h +270 -333
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
  119. package/eigen/Eigen/src/Core/Visitor.h +464 -308
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +229 -41
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2380 -1362
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +54 -82
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -47
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -277
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
  217. package/eigen/Eigen/src/Core/util/Constants.h +297 -262
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +417 -116
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
  226. package/eigen/Eigen/src/Core/util/Macros.h +655 -773
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +970 -748
  229. package/eigen/Eigen/src/Core/util/Meta.h +581 -633
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +17 -17
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +89 -105
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
  264. package/eigen/Eigen/src/Geometry/Transform.h +858 -936
  265. package/eigen/Eigen/src/Geometry/Translation.h +94 -92
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
  269. package/eigen/Eigen/src/Householder/Householder.h +102 -124
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
  285. package/eigen/Eigen/src/LU/Determinant.h +50 -69
  286. package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +243 -265
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -430
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +244 -264
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +577 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1603 -1245
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +370 -416
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +138 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +756 -710
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +245 -301
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +89 -100
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +124 -132
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +450 -502
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -730
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +428 -464
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9972 -16179
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/{BlockMethods.h → BlockMethods.inc} +434 -506
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/package.json +1 -1
  409. package/eigen/COPYING.APACHE +0 -203
  410. package/eigen/COPYING.BSD +0 -26
  411. package/eigen/COPYING.GPL +0 -674
  412. package/eigen/COPYING.LGPL +0 -502
  413. package/eigen/COPYING.MINPACK +0 -51
  414. package/eigen/COPYING.MPL2 +0 -373
  415. package/eigen/COPYING.README +0 -18
  416. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
  417. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
  418. package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
  419. package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
  420. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  421. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  422. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  423. package/eigen/Eigen/src/misc/lapack.h +0 -152
  424. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  425. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  426. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  427. package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  428. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  429. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  430. package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  431. package/eigen/README.md +0 -5
@@ -7,266 +7,273 @@
7
7
  // Public License v. 2.0. If a copy of the MPL was not distributed
8
8
  // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
9
 
10
-
11
10
  #ifndef EIGEN_INTEGRAL_CONSTANT_H
12
11
  #define EIGEN_INTEGRAL_CONSTANT_H
13
12
 
13
+ // IWYU pragma: private
14
+ #include "../InternalHeaderCheck.h"
15
+
14
16
  namespace Eigen {
15
17
 
16
18
  namespace internal {
17
19
 
18
- template<int N> class FixedInt;
19
- template<int N> class VariableAndFixedInt;
20
+ template <int N>
21
+ class FixedInt;
22
+ template <int N>
23
+ class VariableAndFixedInt;
20
24
 
21
25
  /** \internal
22
- * \class FixedInt
23
- *
24
- * This class embeds a compile-time integer \c N.
25
- *
26
- * It is similar to c++11 std::integral_constant<int,N> but with some additional features
27
- * such as:
28
- * - implicit conversion to int
29
- * - arithmetic and some bitwise operators: -, +, *, /, %, &, |
30
- * - c++98/14 compatibility with fix<N> and fix<N>() syntax to define integral constants.
31
- *
32
- * It is strongly discouraged to directly deal with this class FixedInt. Instances are expcected to
33
- * be created by the user using Eigen::fix<N> or Eigen::fix<N>(). In C++98-11, the former syntax does
34
- * not create a FixedInt<N> instance but rather a point to function that needs to be \em cleaned-up
35
- * using the generic helper:
36
- * \code
37
- * internal::cleanup_index_type<T>::type
38
- * internal::cleanup_index_type<T,DynamicKey>::type
39
- * \endcode
40
- * where T can a FixedInt<N>, a pointer to function FixedInt<N> (*)(), or numerous other integer-like representations.
41
- * \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
42
- *
43
- * For convenience, you can extract the compile-time value \c N in a generic way using the following helper:
44
- * \code
45
- * internal::get_fixed_value<T,DefaultVal>::value
46
- * \endcode
47
- * that will give you \c N if T equals FixedInt<N> or FixedInt<N> (*)(), and \c DefaultVal if T does not embed any compile-time value (e.g., T==int).
48
- *
49
- * \sa fix<N>, class VariableAndFixedInt
50
- */
51
- template<int N> class FixedInt
52
- {
53
- public:
54
- static const int value = N;
55
- EIGEN_CONSTEXPR operator int() const { return value; }
56
- FixedInt() {}
57
- FixedInt( VariableAndFixedInt<N> other) {
58
- #ifndef EIGEN_INTERNAL_DEBUGGING
26
+ * \class FixedInt
27
+ *
28
+ * This class embeds a compile-time integer \c N.
29
+ *
30
+ * It is similar to c++11 std::integral_constant<int,N> but with some additional features
31
+ * such as:
32
+ * - implicit conversion to int
33
+ * - arithmetic and some bitwise operators: -, +, *, /, %, &, |
34
+ * - c++98/14 compatibility with fix<N> and fix<N>() syntax to define integral constants.
35
+ *
36
+ * It is strongly discouraged to directly deal with this class FixedInt. Instances are expected to
37
+ * be created by the user using Eigen::fix<N> or Eigen::fix<N>().
38
+ * \code
39
+ * internal::cleanup_index_type<T>::type
40
+ * internal::cleanup_index_type<T,DynamicKey>::type
41
+ * \endcode
42
+ * where T can a FixedInt<N>, a pointer to function FixedInt<N> (*)(), or numerous other integer-like representations.
43
+ * \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
44
+ *
45
+ * For convenience, you can extract the compile-time value \c N in a generic way using the following helper:
46
+ * \code
47
+ * internal::get_fixed_value<T,DefaultVal>::value
48
+ * \endcode
49
+ * that will give you \c N if T equals FixedInt<N> or FixedInt<N> (*)(), and \c DefaultVal if T does not embed any
50
+ * compile-time value (e.g., T==int).
51
+ *
52
+ * \sa fix<N>, class VariableAndFixedInt
53
+ */
54
+ template <int N>
55
+ class FixedInt {
56
+ public:
57
+ static constexpr int value = N;
58
+ constexpr operator int() const { return N; }
59
+
60
+ constexpr FixedInt() = default;
61
+ constexpr FixedInt(std::integral_constant<int, N>) {}
62
+
63
+ constexpr FixedInt(VariableAndFixedInt<N> other) {
64
+ #ifndef EIGEN_INTERNAL_DEBUGGING
59
65
  EIGEN_UNUSED_VARIABLE(other);
60
- #endif
61
- eigen_internal_assert(int(other)==N);
66
+ #endif
67
+ eigen_internal_assert(int(other) == N);
62
68
  }
63
69
 
64
- FixedInt<-N> operator-() const { return FixedInt<-N>(); }
65
- template<int M>
66
- FixedInt<N+M> operator+( FixedInt<M>) const { return FixedInt<N+M>(); }
67
- template<int M>
68
- FixedInt<N-M> operator-( FixedInt<M>) const { return FixedInt<N-M>(); }
69
- template<int M>
70
- FixedInt<N*M> operator*( FixedInt<M>) const { return FixedInt<N*M>(); }
71
- template<int M>
72
- FixedInt<N/M> operator/( FixedInt<M>) const { return FixedInt<N/M>(); }
73
- template<int M>
74
- FixedInt<N%M> operator%( FixedInt<M>) const { return FixedInt<N%M>(); }
75
- template<int M>
76
- FixedInt<N|M> operator|( FixedInt<M>) const { return FixedInt<N|M>(); }
77
- template<int M>
78
- FixedInt<N&M> operator&( FixedInt<M>) const { return FixedInt<N&M>(); }
79
-
80
- #if EIGEN_HAS_CXX14_VARIABLE_TEMPLATES
81
- // Needed in C++14 to allow fix<N>():
82
- FixedInt operator() () const { return *this; }
70
+ constexpr FixedInt<-N> operator-() const { return FixedInt<-N>(); }
83
71
 
84
- VariableAndFixedInt<N> operator() (int val) const { return VariableAndFixedInt<N>(val); }
85
- #else
86
- FixedInt ( FixedInt<N> (*)() ) {}
87
- #endif
72
+ template <int M>
73
+ constexpr FixedInt<N + M> operator+(FixedInt<M>) const {
74
+ return FixedInt<N + M>();
75
+ }
88
76
 
89
- #if EIGEN_HAS_CXX11
90
- FixedInt(std::integral_constant<int,N>) {}
91
- #endif
77
+ template <int M>
78
+ constexpr FixedInt<N - M> operator-(FixedInt<M>) const {
79
+ return FixedInt<N - M>();
80
+ }
81
+
82
+ template <int M>
83
+ constexpr FixedInt<N * M> operator*(FixedInt<M>) const {
84
+ return FixedInt<N * M>();
85
+ }
86
+
87
+ template <int M>
88
+ constexpr FixedInt<N / M> operator/(FixedInt<M>) const {
89
+ return FixedInt<N / M>();
90
+ }
91
+
92
+ template <int M>
93
+ constexpr FixedInt<N % M> operator%(FixedInt<M>) const {
94
+ return FixedInt<N % M>();
95
+ }
96
+
97
+ template <int M>
98
+ constexpr FixedInt<N | M> operator|(FixedInt<M>) const {
99
+ return FixedInt<N | M>();
100
+ }
101
+
102
+ template <int M>
103
+ constexpr FixedInt<N & M> operator&(FixedInt<M>) const {
104
+ return FixedInt<N & M>();
105
+ }
106
+
107
+ // Needed in C++14 to allow fix<N>():
108
+ constexpr FixedInt operator()() const { return *this; }
109
+
110
+ constexpr VariableAndFixedInt<N> operator()(int val) const { return VariableAndFixedInt<N>(val); }
92
111
  };
93
112
 
94
113
  /** \internal
95
- * \class VariableAndFixedInt
96
- *
97
- * This class embeds both a compile-time integer \c N and a runtime integer.
98
- * Both values are supposed to be equal unless the compile-time value \c N has a special
99
- * value meaning that the runtime-value should be used. Depending on the context, this special
100
- * value can be either Eigen::Dynamic (for positive quantities) or Eigen::DynamicIndex (for
101
- * quantities that can be negative).
102
- *
103
- * It is the return-type of the function Eigen::fix<N>(int), and most of the time this is the only
104
- * way it is used. It is strongly discouraged to directly deal with instances of VariableAndFixedInt.
105
- * Indeed, in order to write generic code, it is the responsibility of the callee to properly convert
106
- * it to either a true compile-time quantity (i.e. a FixedInt<N>), or to a runtime quantity (e.g., an Index)
107
- * using the following generic helper:
108
- * \code
109
- * internal::cleanup_index_type<T>::type
110
- * internal::cleanup_index_type<T,DynamicKey>::type
111
- * \endcode
112
- * where T can be a template instantiation of VariableAndFixedInt or numerous other integer-like representations.
113
- * \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
114
- *
115
- * For convenience, you can also extract the compile-time value \c N using the following helper:
116
- * \code
117
- * internal::get_fixed_value<T,DefaultVal>::value
118
- * \endcode
119
- * that will give you \c N if T equals VariableAndFixedInt<N>, and \c DefaultVal if T does not embed any compile-time value (e.g., T==int).
120
- *
121
- * \sa fix<N>(int), class FixedInt
122
- */
123
- template<int N> class VariableAndFixedInt
124
- {
125
- public:
114
+ * \class VariableAndFixedInt
115
+ *
116
+ * This class embeds both a compile-time integer \c N and a runtime integer.
117
+ * Both values are supposed to be equal unless the compile-time value \c N has a special
118
+ * value meaning that the runtime-value should be used. Depending on the context, this special
119
+ * value can be either Eigen::Dynamic (for positive quantities) or Eigen::DynamicIndex (for
120
+ * quantities that can be negative).
121
+ *
122
+ * It is the return-type of the function Eigen::fix<N>(int), and most of the time this is the only
123
+ * way it is used. It is strongly discouraged to directly deal with instances of VariableAndFixedInt.
124
+ * Indeed, in order to write generic code, it is the responsibility of the callee to properly convert
125
+ * it to either a true compile-time quantity (i.e. a FixedInt<N>), or to a runtime quantity (e.g., an Index)
126
+ * using the following generic helper:
127
+ * \code
128
+ * internal::cleanup_index_type<T>::type
129
+ * internal::cleanup_index_type<T,DynamicKey>::type
130
+ * \endcode
131
+ * where T can be a template instantiation of VariableAndFixedInt or numerous other integer-like representations.
132
+ * \c DynamicKey is either Dynamic (default) or DynamicIndex and used to identify true compile-time values.
133
+ *
134
+ * For convenience, you can also extract the compile-time value \c N using the following helper:
135
+ * \code
136
+ * internal::get_fixed_value<T,DefaultVal>::value
137
+ * \endcode
138
+ * that will give you \c N if T equals VariableAndFixedInt<N>, and \c DefaultVal if T does not embed any compile-time
139
+ * value (e.g., T==int).
140
+ *
141
+ * \sa fix<N>(int), class FixedInt
142
+ */
143
+ template <int N>
144
+ class VariableAndFixedInt {
145
+ public:
126
146
  static const int value = N;
127
147
  operator int() const { return m_value; }
128
148
  VariableAndFixedInt(int val) { m_value = val; }
129
- protected:
149
+
150
+ protected:
130
151
  int m_value;
131
152
  };
132
153
 
133
- template<typename T, int Default=Dynamic> struct get_fixed_value {
154
+ template <typename T, int Default = Dynamic>
155
+ struct get_fixed_value {
134
156
  static const int value = Default;
135
157
  };
136
158
 
137
- template<int N,int Default> struct get_fixed_value<FixedInt<N>,Default> {
159
+ template <int N, int Default>
160
+ struct get_fixed_value<FixedInt<N>, Default> {
138
161
  static const int value = N;
139
162
  };
140
163
 
141
- #if !EIGEN_HAS_CXX14
142
- template<int N,int Default> struct get_fixed_value<FixedInt<N> (*)(),Default> {
164
+ template <int N, int Default>
165
+ struct get_fixed_value<VariableAndFixedInt<N>, Default> {
143
166
  static const int value = N;
144
167
  };
145
- #endif
146
-
147
- template<int N,int Default> struct get_fixed_value<VariableAndFixedInt<N>,Default> {
148
- static const int value = N ;
149
- };
150
168
 
151
- template<typename T, int N, int Default>
152
- struct get_fixed_value<variable_if_dynamic<T,N>,Default> {
169
+ template <typename T, int N, int Default>
170
+ struct get_fixed_value<variable_if_dynamic<T, N>, Default> {
153
171
  static const int value = N;
154
172
  };
155
173
 
156
- template<typename T> EIGEN_DEVICE_FUNC Index get_runtime_value(const T &x) { return x; }
157
- #if !EIGEN_HAS_CXX14
158
- template<int N> EIGEN_DEVICE_FUNC Index get_runtime_value(FixedInt<N> (*)()) { return N; }
159
- #endif
174
+ template <typename T>
175
+ EIGEN_DEVICE_FUNC Index get_runtime_value(const T &x) {
176
+ return x;
177
+ }
160
178
 
161
179
  // Cleanup integer/FixedInt/VariableAndFixedInt/etc types:
162
180
 
163
181
  // By default, no cleanup:
164
- template<typename T, int DynamicKey=Dynamic, typename EnableIf=void> struct cleanup_index_type { typedef T type; };
182
+ template <typename T, int DynamicKey = Dynamic, typename EnableIf = void>
183
+ struct cleanup_index_type {
184
+ typedef T type;
185
+ };
165
186
 
166
187
  // Convert any integral type (e.g., short, int, unsigned int, etc.) to Eigen::Index
167
- template<typename T, int DynamicKey> struct cleanup_index_type<T,DynamicKey,typename internal::enable_if<internal::is_integral<T>::value>::type> { typedef Index type; };
168
-
169
- #if !EIGEN_HAS_CXX14
170
- // In c++98/c++11, fix<N> is a pointer to function that we better cleanup to a true FixedInt<N>:
171
- template<int N, int DynamicKey> struct cleanup_index_type<FixedInt<N> (*)(), DynamicKey> { typedef FixedInt<N> type; };
172
- #endif
188
+ template <typename T, int DynamicKey>
189
+ struct cleanup_index_type<T, DynamicKey, std::enable_if_t<internal::is_integral<T>::value>> {
190
+ typedef Index type;
191
+ };
173
192
 
174
193
  // If VariableAndFixedInt does not match DynamicKey, then we turn it to a pure compile-time value:
175
- template<int N, int DynamicKey> struct cleanup_index_type<VariableAndFixedInt<N>, DynamicKey> { typedef FixedInt<N> type; };
194
+ template <int N, int DynamicKey>
195
+ struct cleanup_index_type<VariableAndFixedInt<N>, DynamicKey> {
196
+ typedef FixedInt<N> type;
197
+ };
176
198
  // If VariableAndFixedInt matches DynamicKey, then we turn it to a pure runtime-value (aka Index):
177
- template<int DynamicKey> struct cleanup_index_type<VariableAndFixedInt<DynamicKey>, DynamicKey> { typedef Index type; };
199
+ template <int DynamicKey>
200
+ struct cleanup_index_type<VariableAndFixedInt<DynamicKey>, DynamicKey> {
201
+ typedef Index type;
202
+ };
178
203
 
179
- #if EIGEN_HAS_CXX11
180
- template<int N, int DynamicKey> struct cleanup_index_type<std::integral_constant<int,N>, DynamicKey> { typedef FixedInt<N> type; };
181
- #endif
204
+ template <int N, int DynamicKey>
205
+ struct cleanup_index_type<std::integral_constant<int, N>, DynamicKey> {
206
+ typedef FixedInt<N> type;
207
+ };
182
208
 
183
- } // end namespace internal
209
+ } // end namespace internal
184
210
 
185
211
  #ifndef EIGEN_PARSED_BY_DOXYGEN
186
212
 
187
- #if EIGEN_HAS_CXX14_VARIABLE_TEMPLATES
188
- template<int N>
189
- static const internal::FixedInt<N> fix{};
190
- #else
191
- template<int N>
192
- inline internal::FixedInt<N> fix() { return internal::FixedInt<N>(); }
193
-
194
- // The generic typename T is mandatory. Otherwise, a code like fix<N> could refer to either the function above or this next overload.
195
- // This way a code like fix<N> can only refer to the previous function.
196
- template<int N,typename T>
197
- inline internal::VariableAndFixedInt<N> fix(T val) { return internal::VariableAndFixedInt<N>(internal::convert_index<int>(val)); }
198
- #endif
213
+ template <int N>
214
+ constexpr internal::FixedInt<N> fix{};
199
215
 
200
- #else // EIGEN_PARSED_BY_DOXYGEN
216
+ #else // EIGEN_PARSED_BY_DOXYGEN
201
217
 
202
218
  /** \var fix<N>()
203
- * \ingroup Core_Module
204
- *
205
- * This \em identifier permits to construct an object embedding a compile-time integer \c N.
206
- *
207
- * \tparam N the compile-time integer value
208
- *
209
- * It is typically used in conjunction with the Eigen::seq and Eigen::seqN functions to pass compile-time values to them:
210
- * \code
211
- * seqN(10,fix<4>,fix<-3>) // <=> [10 7 4 1]
212
- * \endcode
213
- *
214
- * See also the function fix(int) to pass both a compile-time and runtime value.
215
- *
216
- * In c++14, it is implemented as:
217
- * \code
218
- * template<int N> static const internal::FixedInt<N> fix{};
219
- * \endcode
220
- * where internal::FixedInt<N> is an internal template class similar to
221
- * <a href="http://en.cppreference.com/w/cpp/types/integral_constant">\c std::integral_constant </a><tt> <int,N> </tt>
222
- * Here, \c fix<N> is thus an object of type \c internal::FixedInt<N>.
223
- *
224
- * In c++98/11, it is implemented as a function:
225
- * \code
226
- * template<int N> inline internal::FixedInt<N> fix();
227
- * \endcode
228
- * Here internal::FixedInt<N> is thus a pointer to function.
229
- *
230
- * If for some reason you want a true object in c++98 then you can write: \code fix<N>() \endcode which is also valid in c++14.
231
- *
232
- * \sa fix<N>(int), seq, seqN
233
- */
234
- template<int N>
219
+ * \ingroup Core_Module
220
+ *
221
+ * This \em identifier permits to construct an object embedding a compile-time integer \c N.
222
+ *
223
+ * \tparam N the compile-time integer value
224
+ *
225
+ * It is typically used in conjunction with the Eigen::seq and Eigen::seqN functions to pass compile-time values to
226
+ * them: \code seqN(10,fix<4>,fix<-3>) // <=> [10 7 4 1] \endcode
227
+ *
228
+ * See also the function fix(int) to pass both a compile-time and runtime value.
229
+ *
230
+ * In c++14, it is implemented as:
231
+ * \code
232
+ * template<int N> static const internal::FixedInt<N> fix{};
233
+ * \endcode
234
+ * where internal::FixedInt<N> is an internal template class similar to
235
+ * <a href="http://en.cppreference.com/w/cpp/types/integral_constant">\c std::integral_constant </a><tt> <int,N> </tt>
236
+ * Here, \c fix<N> is thus an object of type \c internal::FixedInt<N>.
237
+ *
238
+ * \sa fix<N>(int), seq, seqN
239
+ */
240
+ template <int N>
235
241
  static const auto fix();
236
242
 
237
243
  /** \fn fix<N>(int)
238
- * \ingroup Core_Module
239
- *
240
- * This function returns an object embedding both a compile-time integer \c N, and a fallback runtime value \a val.
241
- *
242
- * \tparam N the compile-time integer value
243
- * \param val the fallback runtime integer value
244
- *
245
- * This function is a more general version of the \ref fix identifier/function that can be used in template code
246
- * where the compile-time value could turn out to actually mean "undefined at compile-time". For positive integers
247
- * such as a size or a dimension, this case is identified by Eigen::Dynamic, whereas runtime signed integers
248
- * (e.g., an increment/stride) are identified as Eigen::DynamicIndex. In such a case, the runtime value \a val
249
- * will be used as a fallback.
250
- *
251
- * A typical use case would be:
252
- * \code
253
- * template<typename Derived> void foo(const MatrixBase<Derived> &mat) {
254
- * const int N = Derived::RowsAtCompileTime==Dynamic ? Dynamic : Derived::RowsAtCompileTime/2;
255
- * const int n = mat.rows()/2;
256
- * ... mat( seqN(0,fix<N>(n) ) ...;
257
- * }
258
- * \endcode
259
- * In this example, the function Eigen::seqN knows that the second argument is expected to be a size.
260
- * If the passed compile-time value N equals Eigen::Dynamic, then the proxy object returned by fix will be dissmissed, and converted to an Eigen::Index of value \c n.
261
- * Otherwise, the runtime-value \c n will be dissmissed, and the returned ArithmeticSequence will be of the exact same type as <tt> seqN(0,fix<N>) </tt>.
262
- *
263
- * \sa fix, seqN, class ArithmeticSequence
264
- */
265
- template<int N>
244
+ * \ingroup Core_Module
245
+ *
246
+ * This function returns an object embedding both a compile-time integer \c N, and a fallback runtime value \a val.
247
+ *
248
+ * \tparam N the compile-time integer value
249
+ * \param val the fallback runtime integer value
250
+ *
251
+ * This function is a more general version of the \ref fix identifier/function that can be used in template code
252
+ * where the compile-time value could turn out to actually mean "undefined at compile-time". For positive integers
253
+ * such as a size or a dimension, this case is identified by Eigen::Dynamic, whereas runtime signed integers
254
+ * (e.g., an increment/stride) are identified as Eigen::DynamicIndex. In such a case, the runtime value \a val
255
+ * will be used as a fallback.
256
+ *
257
+ * A typical use case would be:
258
+ * \code
259
+ * template<typename Derived> void foo(const MatrixBase<Derived> &mat) {
260
+ * const int N = Derived::RowsAtCompileTime==Dynamic ? Dynamic : Derived::RowsAtCompileTime/2;
261
+ * const int n = mat.rows()/2;
262
+ * ... mat( seqN(0,fix<N>(n) ) ...;
263
+ * }
264
+ * \endcode
265
+ * In this example, the function Eigen::seqN knows that the second argument is expected to be a size.
266
+ * If the passed compile-time value N equals Eigen::Dynamic, then the proxy object returned by fix will be dismissed,
267
+ * and converted to an Eigen::Index of value \c n. Otherwise, the runtime-value \c n will be dismissed, and the
268
+ * returned ArithmeticSequence will be of the exact same type as <tt> seqN(0,fix<N>) </tt>.
269
+ *
270
+ * \sa fix, seqN, class ArithmeticSequence
271
+ */
272
+ template <int N>
266
273
  static const auto fix(int val);
267
274
 
268
- #endif // EIGEN_PARSED_BY_DOXYGEN
275
+ #endif // EIGEN_PARSED_BY_DOXYGEN
269
276
 
270
- } // end namespace Eigen
277
+ } // end namespace Eigen
271
278
 
272
- #endif // EIGEN_INTEGRAL_CONSTANT_H
279
+ #endif // EIGEN_INTEGRAL_CONSTANT_H
@@ -34,49 +34,49 @@
34
34
  #define EIGEN_MKL_SUPPORT_H
35
35
 
36
36
  #ifdef EIGEN_USE_MKL_ALL
37
- #ifndef EIGEN_USE_BLAS
38
- #define EIGEN_USE_BLAS
39
- #endif
40
- #ifndef EIGEN_USE_LAPACKE
41
- #define EIGEN_USE_LAPACKE
42
- #endif
43
- #ifndef EIGEN_USE_MKL_VML
44
- #define EIGEN_USE_MKL_VML
45
- #endif
37
+ #ifndef EIGEN_USE_BLAS
38
+ #define EIGEN_USE_BLAS
39
+ #endif
40
+ #ifndef EIGEN_USE_LAPACKE
41
+ #define EIGEN_USE_LAPACKE
42
+ #endif
43
+ #ifndef EIGEN_USE_MKL_VML
44
+ #define EIGEN_USE_MKL_VML
45
+ #endif
46
46
  #endif
47
47
 
48
48
  #ifdef EIGEN_USE_LAPACKE_STRICT
49
- #define EIGEN_USE_LAPACKE
49
+ #define EIGEN_USE_LAPACKE
50
50
  #endif
51
51
 
52
52
  #if defined(EIGEN_USE_MKL_VML) && !defined(EIGEN_USE_MKL)
53
- #define EIGEN_USE_MKL
53
+ #define EIGEN_USE_MKL
54
54
  #endif
55
55
 
56
-
57
56
  #if defined EIGEN_USE_MKL
58
- # if (!defined MKL_DIRECT_CALL) && (!defined EIGEN_MKL_NO_DIRECT_CALL)
59
- # define MKL_DIRECT_CALL
60
- # define MKL_DIRECT_CALL_JUST_SET
61
- # endif
62
- # include <mkl.h>
57
+ #if (!defined MKL_DIRECT_CALL) && (!defined EIGEN_MKL_NO_DIRECT_CALL)
58
+ #define MKL_DIRECT_CALL
59
+ #define MKL_DIRECT_CALL_JUST_SET
60
+ #endif
61
+ #include <mkl.h>
63
62
  /*Check IMKL version for compatibility: < 10.3 is not usable with Eigen*/
64
- # ifndef INTEL_MKL_VERSION
65
- # undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
66
- # elif INTEL_MKL_VERSION < 100305 /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
67
- # undef EIGEN_USE_MKL
68
- # endif
69
- # ifndef EIGEN_USE_MKL
70
- /*If the MKL version is too old, undef everything*/
71
- # undef EIGEN_USE_MKL_ALL
72
- # undef EIGEN_USE_LAPACKE
73
- # undef EIGEN_USE_MKL_VML
74
- # undef EIGEN_USE_LAPACKE_STRICT
75
- # undef EIGEN_USE_LAPACKE
76
- # ifdef MKL_DIRECT_CALL_JUST_SET
77
- # undef MKL_DIRECT_CALL
78
- # endif
79
- # endif
63
+ #ifndef INTEL_MKL_VERSION
64
+ #undef EIGEN_USE_MKL /* INTEL_MKL_VERSION is not even defined on older versions */
65
+ #elif INTEL_MKL_VERSION < \
66
+ 100305 /* the intel-mkl-103-release-notes say this was when the lapacke.h interface was added*/
67
+ #undef EIGEN_USE_MKL
68
+ #endif
69
+ #ifndef EIGEN_USE_MKL
70
+ /*If the MKL version is too old, undef everything*/
71
+ #undef EIGEN_USE_MKL_ALL
72
+ #undef EIGEN_USE_LAPACKE
73
+ #undef EIGEN_USE_MKL_VML
74
+ #undef EIGEN_USE_LAPACKE_STRICT
75
+ #undef EIGEN_USE_LAPACKE
76
+ #ifdef MKL_DIRECT_CALL_JUST_SET
77
+ #undef MKL_DIRECT_CALL
78
+ #endif
79
+ #endif
80
80
  #endif
81
81
 
82
82
  #if defined EIGEN_USE_MKL
@@ -120,10 +120,13 @@
120
120
  #include "../../misc/blas.h"
121
121
  #endif
122
122
 
123
+ // IWYU pragma: private
124
+ #include "../InternalHeaderCheck.h"
125
+
123
126
  namespace Eigen {
124
127
 
125
128
  typedef std::complex<double> dcomplex;
126
- typedef std::complex<float> scomplex;
129
+ typedef std::complex<float> scomplex;
127
130
 
128
131
  #if defined(EIGEN_USE_MKL)
129
132
  typedef MKL_INT BlasIndex;
@@ -131,7 +134,6 @@ typedef MKL_INT BlasIndex;
131
134
  typedef int BlasIndex;
132
135
  #endif
133
136
 
134
- } // end namespace Eigen
135
-
137
+ } // end namespace Eigen
136
138
 
137
- #endif // EIGEN_MKL_SUPPORT_H
139
+ #endif // EIGEN_MKL_SUPPORT_H