@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,45 +7,45 @@
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_RESHAPED_HELPER_H
12
11
  #define EIGEN_RESHAPED_HELPER_H
13
12
 
13
+ // IWYU pragma: private
14
+ #include "../InternalHeaderCheck.h"
15
+
14
16
  namespace Eigen {
15
17
 
16
- enum AutoSize_t { AutoSize };
18
+ enum AutoSize_t { AutoSize };
17
19
  const int AutoOrder = 2;
18
20
 
19
21
  namespace internal {
20
22
 
21
- template<typename SizeType,typename OtherSize, int TotalSize>
23
+ template <typename SizeType, typename OtherSize, int TotalSize>
22
24
  struct get_compiletime_reshape_size {
23
25
  enum { value = get_fixed_value<SizeType>::value };
24
26
  };
25
27
 
26
- template<typename SizeType>
28
+ template <typename SizeType>
27
29
  Index get_runtime_reshape_size(SizeType size, Index /*other*/, Index /*total*/) {
28
30
  return internal::get_runtime_value(size);
29
31
  }
30
32
 
31
- template<typename OtherSize, int TotalSize>
32
- struct get_compiletime_reshape_size<AutoSize_t,OtherSize,TotalSize> {
33
+ template <typename OtherSize, int TotalSize>
34
+ struct get_compiletime_reshape_size<AutoSize_t, OtherSize, TotalSize> {
33
35
  enum {
34
36
  other_size = get_fixed_value<OtherSize>::value,
35
- value = (TotalSize==Dynamic || other_size==Dynamic) ? Dynamic : TotalSize / other_size };
37
+ value = (TotalSize == Dynamic || other_size == Dynamic) ? Dynamic : TotalSize / other_size
38
+ };
36
39
  };
37
40
 
38
- inline Index get_runtime_reshape_size(AutoSize_t /*size*/, Index other, Index total) {
39
- return total/other;
40
- }
41
-
42
- template<int Flags, int Order>
43
- struct get_compiletime_reshape_order {
44
- enum { value = Order == AutoOrder ? Flags & RowMajorBit : Order };
45
- };
41
+ inline Index get_runtime_reshape_size(AutoSize_t /*size*/, Index other, Index total) { return total / other; }
46
42
 
43
+ constexpr int get_compiletime_reshape_order(int flags, int order) {
44
+ return order == AutoOrder ? flags & RowMajorBit : order;
47
45
  }
48
46
 
49
- } // end namespace Eigen
47
+ } // namespace internal
48
+
49
+ } // end namespace Eigen
50
50
 
51
- #endif // EIGEN_RESHAPED_HELPER_H
51
+ #endif // EIGEN_RESHAPED_HELPER_H
@@ -0,0 +1,209 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2021 The Eigen Team
5
+ //
6
+ // This Source Code Form is subject to the terms of the Mozilla
7
+ // Public License v. 2.0. If a copy of the MPL was not distributed
8
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
+
10
+ #ifndef EIGEN_SERIALIZER_H
11
+ #define EIGEN_SERIALIZER_H
12
+
13
+ #include <type_traits>
14
+
15
+ // The Serializer class encodes data into a memory buffer so it can be later
16
+ // reconstructed. This is mainly used to send objects back-and-forth between
17
+ // the CPU and GPU.
18
+
19
+ namespace Eigen {
20
+
21
+ /**
22
+ * Serializes an object to a memory buffer.
23
+ *
24
+ * Useful for transferring data (e.g. back-and-forth to a device).
25
+ */
26
+ template <typename T, typename EnableIf = void>
27
+ class Serializer;
28
+
29
+ // Specialization for POD types.
30
+ template <typename T>
31
+ class Serializer<T,
32
+ typename std::enable_if_t<std::is_trivially_copyable<T>::value && std::is_standard_layout<T>::value>> {
33
+ public:
34
+ /**
35
+ * Determines the required size of the serialization buffer for a value.
36
+ *
37
+ * \param value the value to serialize.
38
+ * \return the required size.
39
+ */
40
+ EIGEN_DEVICE_FUNC size_t size(const T& value) const { return sizeof(value); }
41
+
42
+ /**
43
+ * Serializes a value to a byte buffer.
44
+ * \param dest the destination buffer; if this is nullptr, does nothing.
45
+ * \param end the end of the destination buffer.
46
+ * \param value the value to serialize.
47
+ * \return the next memory address past the end of the serialized data.
48
+ */
49
+ EIGEN_DEVICE_FUNC uint8_t* serialize(uint8_t* dest, uint8_t* end, const T& value) {
50
+ if (EIGEN_PREDICT_FALSE(dest == nullptr)) return nullptr;
51
+ if (EIGEN_PREDICT_FALSE(dest + sizeof(value) > end)) return nullptr;
52
+ EIGEN_USING_STD(memcpy)
53
+ memcpy(dest, &value, sizeof(value));
54
+ return dest + sizeof(value);
55
+ }
56
+
57
+ /**
58
+ * Deserializes a value from a byte buffer.
59
+ * \param src the source buffer; if this is nullptr, does nothing.
60
+ * \param end the end of the source buffer.
61
+ * \param value the value to populate.
62
+ * \return the next unprocessed memory address; nullptr if parsing errors are detected.
63
+ */
64
+ EIGEN_DEVICE_FUNC const uint8_t* deserialize(const uint8_t* src, const uint8_t* end, T& value) const {
65
+ if (EIGEN_PREDICT_FALSE(src == nullptr)) return nullptr;
66
+ if (EIGEN_PREDICT_FALSE(src + sizeof(value) > end)) return nullptr;
67
+ EIGEN_USING_STD(memcpy)
68
+ memcpy(&value, src, sizeof(value));
69
+ return src + sizeof(value);
70
+ }
71
+ };
72
+
73
+ // Specialization for DenseBase.
74
+ // Serializes [rows, cols, data...].
75
+ template <typename Derived>
76
+ class Serializer<DenseBase<Derived>, void> {
77
+ public:
78
+ typedef typename Derived::Scalar Scalar;
79
+
80
+ struct Header {
81
+ typename Derived::Index rows;
82
+ typename Derived::Index cols;
83
+ };
84
+
85
+ EIGEN_DEVICE_FUNC size_t size(const Derived& value) const { return sizeof(Header) + sizeof(Scalar) * value.size(); }
86
+
87
+ EIGEN_DEVICE_FUNC uint8_t* serialize(uint8_t* dest, uint8_t* end, const Derived& value) {
88
+ if (EIGEN_PREDICT_FALSE(dest == nullptr)) return nullptr;
89
+ if (EIGEN_PREDICT_FALSE(dest + size(value) > end)) return nullptr;
90
+ const size_t header_bytes = sizeof(Header);
91
+ const size_t data_bytes = sizeof(Scalar) * value.size();
92
+ Header header = {value.rows(), value.cols()};
93
+ EIGEN_USING_STD(memcpy)
94
+ memcpy(dest, &header, header_bytes);
95
+ dest += header_bytes;
96
+ memcpy(dest, value.data(), data_bytes);
97
+ return dest + data_bytes;
98
+ }
99
+
100
+ EIGEN_DEVICE_FUNC const uint8_t* deserialize(const uint8_t* src, const uint8_t* end, Derived& value) const {
101
+ if (EIGEN_PREDICT_FALSE(src == nullptr)) return nullptr;
102
+ if (EIGEN_PREDICT_FALSE(src + sizeof(Header) > end)) return nullptr;
103
+ const size_t header_bytes = sizeof(Header);
104
+ Header header;
105
+ EIGEN_USING_STD(memcpy)
106
+ memcpy(&header, src, header_bytes);
107
+ src += header_bytes;
108
+ const size_t data_bytes = sizeof(Scalar) * header.rows * header.cols;
109
+ if (EIGEN_PREDICT_FALSE(src + data_bytes > end)) return nullptr;
110
+ value.resize(header.rows, header.cols);
111
+ memcpy(value.data(), src, data_bytes);
112
+ return src + data_bytes;
113
+ }
114
+ };
115
+
116
+ template <typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
117
+ class Serializer<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>
118
+ : public Serializer<DenseBase<Matrix<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {};
119
+
120
+ template <typename Scalar, int Rows, int Cols, int Options, int MaxRows, int MaxCols>
121
+ class Serializer<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>
122
+ : public Serializer<DenseBase<Array<Scalar, Rows, Cols, Options, MaxRows, MaxCols>>> {};
123
+
124
+ namespace internal {
125
+
126
+ // Recursive serialization implementation helper.
127
+ template <size_t N, typename... Types>
128
+ struct serialize_impl;
129
+
130
+ template <size_t N, typename T1, typename... Ts>
131
+ struct serialize_impl<N, T1, Ts...> {
132
+ using Serializer = Eigen::Serializer<typename std::decay<T1>::type>;
133
+
134
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size(const T1& value, const Ts&... args) {
135
+ Serializer serializer;
136
+ size_t size = serializer.size(value);
137
+ return size + serialize_impl<N - 1, Ts...>::serialize_size(args...);
138
+ }
139
+
140
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* end, const T1& value,
141
+ const Ts&... args) {
142
+ Serializer serializer;
143
+ dest = serializer.serialize(dest, end, value);
144
+ return serialize_impl<N - 1, Ts...>::serialize(dest, end, args...);
145
+ }
146
+
147
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* end,
148
+ T1& value, Ts&... args) {
149
+ Serializer serializer;
150
+ src = serializer.deserialize(src, end, value);
151
+ return serialize_impl<N - 1, Ts...>::deserialize(src, end, args...);
152
+ }
153
+ };
154
+
155
+ // Base case.
156
+ template <>
157
+ struct serialize_impl<0> {
158
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size() { return 0; }
159
+
160
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* /*end*/) { return dest; }
161
+
162
+ static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* /*end*/) {
163
+ return src;
164
+ }
165
+ };
166
+
167
+ } // namespace internal
168
+
169
+ /**
170
+ * Determine the buffer size required to serialize a set of values.
171
+ *
172
+ * \param args ... arguments to serialize in sequence.
173
+ * \return the total size of the required buffer.
174
+ */
175
+ template <typename... Args>
176
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE size_t serialize_size(const Args&... args) {
177
+ return internal::serialize_impl<sizeof...(args), Args...>::serialize_size(args...);
178
+ }
179
+
180
+ /**
181
+ * Serialize a set of values to the byte buffer.
182
+ *
183
+ * \param dest output byte buffer; if this is nullptr, does nothing.
184
+ * \param end the end of the output byte buffer.
185
+ * \param args ... arguments to serialize in sequence.
186
+ * \return the next address after all serialized values.
187
+ */
188
+ template <typename... Args>
189
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE uint8_t* serialize(uint8_t* dest, uint8_t* end, const Args&... args) {
190
+ return internal::serialize_impl<sizeof...(args), Args...>::serialize(dest, end, args...);
191
+ }
192
+
193
+ /**
194
+ * Deserialize a set of values from the byte buffer.
195
+ *
196
+ * \param src input byte buffer; if this is nullptr, does nothing.
197
+ * \param end the end of input byte buffer.
198
+ * \param args ... arguments to deserialize in sequence.
199
+ * \return the next address after all parsed values; nullptr if parsing errors are detected.
200
+ */
201
+ template <typename... Args>
202
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const uint8_t* deserialize(const uint8_t* src, const uint8_t* end,
203
+ Args&... args) {
204
+ return internal::serialize_impl<sizeof...(args), Args...>::deserialize(src, end, args...);
205
+ }
206
+
207
+ } // namespace Eigen
208
+
209
+ #endif // EIGEN_SERIALIZER_H
@@ -16,10 +16,6 @@
16
16
  * - in EIGEN_STATIC_ASSERT(CONDITION,MSG) the parameter CONDITION must be a compile time boolean
17
17
  * expression, and MSG an enum listed in struct internal::static_assertion<true>
18
18
  *
19
- * - define EIGEN_NO_STATIC_ASSERT to disable them (and save compilation time)
20
- * in that case, the static assertion is converted to the following runtime assert:
21
- * eigen_assert(CONDITION && "MSG")
22
- *
23
19
  * - currently EIGEN_STATIC_ASSERT can only be used in function scope
24
20
  *
25
21
  */
@@ -27,195 +23,83 @@
27
23
  #ifndef EIGEN_STATIC_ASSERT
28
24
  #ifndef EIGEN_NO_STATIC_ASSERT
29
25
 
30
- #if EIGEN_MAX_CPP_VER>=11 && (__has_feature(cxx_static_assert) || (EIGEN_COMP_CXXVER >= 11) || (EIGEN_COMP_MSVC >= 1600))
31
-
32
- // if native static_assert is enabled, let's use it
33
- #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
34
-
35
- #else // not CXX0X
36
-
37
- namespace Eigen {
38
-
39
- namespace internal {
40
-
41
- template<bool condition>
42
- struct static_assertion {};
43
-
44
- template<>
45
- struct static_assertion<true>
46
- {
47
- enum {
48
- YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX=1,
49
- YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES=1,
50
- YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES=1,
51
- THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE=1,
52
- THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE=1,
53
- THIS_METHOD_IS_ONLY_FOR_OBJECTS_OF_A_SPECIFIC_SIZE=1,
54
- OUT_OF_RANGE_ACCESS=1,
55
- YOU_MADE_A_PROGRAMMING_MISTAKE=1,
56
- EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT=1,
57
- EIGEN_INTERNAL_COMPILATION_ERROR_OR_YOU_MADE_A_PROGRAMMING_MISTAKE=1,
58
- YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR=1,
59
- YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR=1,
60
- UNALIGNED_LOAD_AND_STORE_OPERATIONS_UNIMPLEMENTED_ON_ALTIVEC=1,
61
- THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES=1,
62
- FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED=1,
63
- NUMERIC_TYPE_MUST_BE_REAL=1,
64
- COEFFICIENT_WRITE_ACCESS_TO_SELFADJOINT_NOT_SUPPORTED=1,
65
- WRITING_TO_TRIANGULAR_PART_WITH_UNIT_DIAGONAL_IS_NOT_SUPPORTED=1,
66
- THIS_METHOD_IS_ONLY_FOR_FIXED_SIZE=1,
67
- INVALID_MATRIX_PRODUCT=1,
68
- INVALID_VECTOR_VECTOR_PRODUCT__IF_YOU_WANTED_A_DOT_OR_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTIONS=1,
69
- INVALID_MATRIX_PRODUCT__IF_YOU_WANTED_A_COEFF_WISE_PRODUCT_YOU_MUST_USE_THE_EXPLICIT_FUNCTION=1,
70
- YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY=1,
71
- THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES=1,
72
- THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES=1,
73
- INVALID_MATRIX_TEMPLATE_PARAMETERS=1,
74
- INVALID_MATRIXBASE_TEMPLATE_PARAMETERS=1,
75
- BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER=1,
76
- THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX=1,
77
- THE_MATRIX_OR_EXPRESSION_THAT_YOU_PASSED_DOES_NOT_HAVE_THE_EXPECTED_TYPE=1,
78
- THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_WITH_DIRECT_MEMORY_ACCESS_SUCH_AS_MAP_OR_PLAIN_MATRICES=1,
79
- YOU_ALREADY_SPECIFIED_THIS_STRIDE=1,
80
- INVALID_STORAGE_ORDER_FOR_THIS_VECTOR_EXPRESSION=1,
81
- THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD=1,
82
- PACKET_ACCESS_REQUIRES_TO_HAVE_INNER_STRIDE_FIXED_TO_1=1,
83
- THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS=1,
84
- YOU_CANNOT_MIX_ARRAYS_AND_MATRICES=1,
85
- YOU_PERFORMED_AN_INVALID_TRANSFORMATION_CONVERSION=1,
86
- THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY=1,
87
- YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT=1,
88
- THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS=1,
89
- THIS_METHOD_IS_ONLY_FOR_INNER_OR_LAZY_PRODUCTS=1,
90
- THIS_METHOD_IS_ONLY_FOR_EXPRESSIONS_OF_BOOL=1,
91
- THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES=1,
92
- YOU_PASSED_A_ROW_VECTOR_BUT_A_COLUMN_VECTOR_WAS_EXPECTED=1,
93
- YOU_PASSED_A_COLUMN_VECTOR_BUT_A_ROW_VECTOR_WAS_EXPECTED=1,
94
- THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE=1,
95
- THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH=1,
96
- OBJECT_ALLOCATED_ON_STACK_IS_TOO_BIG=1,
97
- IMPLICIT_CONVERSION_TO_SCALAR_IS_FOR_INNER_PRODUCT_ONLY=1,
98
- STORAGE_LAYOUT_DOES_NOT_MATCH=1,
99
- EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE=1,
100
- THIS_COEFFICIENT_ACCESSOR_TAKING_ONE_ACCESS_IS_ONLY_FOR_EXPRESSIONS_ALLOWING_LINEAR_ACCESS=1,
101
- MATRIX_FREE_CONJUGATE_GRADIENT_IS_COMPATIBLE_WITH_UPPER_UNION_LOWER_MODE_ONLY=1,
102
- THIS_TYPE_IS_NOT_SUPPORTED=1,
103
- STORAGE_KIND_MUST_MATCH=1,
104
- STORAGE_INDEX_MUST_MATCH=1,
105
- CHOLMOD_SUPPORTS_DOUBLE_PRECISION_ONLY=1,
106
- SELFADJOINTVIEW_ACCEPTS_UPPER_AND_LOWER_MODE_ONLY=1,
107
- INVALID_TEMPLATE_PARAMETER=1,
108
- GPU_TENSOR_CONTRACTION_DOES_NOT_SUPPORT_OUTPUT_KERNELS=1,
109
- THE_ARRAY_SIZE_SHOULD_EQUAL_WITH_PACKET_SIZE=1
110
- };
111
- };
112
-
113
- } // end namespace internal
114
-
115
- } // end namespace Eigen
116
-
117
- // Specialized implementation for MSVC to avoid "conditional
118
- // expression is constant" warnings. This implementation doesn't
119
- // appear to work under GCC, hence the multiple implementations.
120
- #if EIGEN_COMP_MSVC
121
-
122
- #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
123
- {Eigen::internal::static_assertion<bool(CONDITION)>::MSG;}
124
-
125
- #else
126
- // In some cases clang interprets bool(CONDITION) as function declaration
127
- #define EIGEN_STATIC_ASSERT(CONDITION,MSG) \
128
- if (Eigen::internal::static_assertion<static_cast<bool>(CONDITION)>::MSG) {}
129
-
130
- #endif
131
-
132
- #endif // not CXX0X
133
-
134
- #else // EIGEN_NO_STATIC_ASSERT
135
-
136
- #define EIGEN_STATIC_ASSERT(CONDITION,MSG) eigen_assert((CONDITION) && #MSG);
137
-
138
- #endif // EIGEN_NO_STATIC_ASSERT
139
- #endif // EIGEN_STATIC_ASSERT
26
+ #define EIGEN_STATIC_ASSERT(X, MSG) static_assert(X, #MSG);
27
+
28
+ #else // EIGEN_NO_STATIC_ASSERT
29
+
30
+ #define EIGEN_STATIC_ASSERT(CONDITION, MSG)
31
+
32
+ #endif // EIGEN_NO_STATIC_ASSERT
33
+ #endif // EIGEN_STATIC_ASSERT
140
34
 
141
35
  // static assertion failing if the type \a TYPE is not a vector type
142
36
  #define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE) \
143
- EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, \
144
- YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
37
+ EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime, YOU_TRIED_CALLING_A_VECTOR_METHOD_ON_A_MATRIX)
145
38
 
146
39
  // static assertion failing if the type \a TYPE is not fixed-size
147
- #define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
148
- EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime!=Eigen::Dynamic, \
40
+ #define EIGEN_STATIC_ASSERT_FIXED_SIZE(TYPE) \
41
+ EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime != Eigen::Dynamic, \
149
42
  YOU_CALLED_A_FIXED_SIZE_METHOD_ON_A_DYNAMIC_SIZE_MATRIX_OR_VECTOR)
150
43
 
151
44
  // static assertion failing if the type \a TYPE is not dynamic-size
152
- #define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
153
- EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime==Eigen::Dynamic, \
45
+ #define EIGEN_STATIC_ASSERT_DYNAMIC_SIZE(TYPE) \
46
+ EIGEN_STATIC_ASSERT(TYPE::SizeAtCompileTime == Eigen::Dynamic, \
154
47
  YOU_CALLED_A_DYNAMIC_SIZE_METHOD_ON_A_FIXED_SIZE_MATRIX_OR_VECTOR)
155
48
 
156
49
  // static assertion failing if the type \a TYPE is not a vector type of the given size
157
- #define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
158
- EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime && TYPE::SizeAtCompileTime==SIZE, \
50
+ #define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE) \
51
+ EIGEN_STATIC_ASSERT(TYPE::IsVectorAtCompileTime&& TYPE::SizeAtCompileTime == SIZE, \
159
52
  THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE)
160
53
 
161
54
  // static assertion failing if the type \a TYPE is not a vector type of the given size
162
- #define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
163
- EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime==ROWS && TYPE::ColsAtCompileTime==COLS, \
55
+ #define EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(TYPE, ROWS, COLS) \
56
+ EIGEN_STATIC_ASSERT(TYPE::RowsAtCompileTime == ROWS && TYPE::ColsAtCompileTime == COLS, \
164
57
  THIS_METHOD_IS_ONLY_FOR_MATRICES_OF_A_SPECIFIC_SIZE)
165
58
 
166
59
  // static assertion failing if the two vector expression types are not compatible (same fixed-size or dynamic size)
167
- #define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0,TYPE1) \
168
- EIGEN_STATIC_ASSERT( \
169
- (int(TYPE0::SizeAtCompileTime)==Eigen::Dynamic \
170
- || int(TYPE1::SizeAtCompileTime)==Eigen::Dynamic \
171
- || int(TYPE0::SizeAtCompileTime)==int(TYPE1::SizeAtCompileTime)),\
172
- YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
173
-
174
- #define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
175
- ( \
176
- (int(Eigen::internal::size_of_xpr_at_compile_time<TYPE0>::ret)==0 && int(Eigen::internal::size_of_xpr_at_compile_time<TYPE1>::ret)==0) \
177
- || (\
178
- (int(TYPE0::RowsAtCompileTime)==Eigen::Dynamic \
179
- || int(TYPE1::RowsAtCompileTime)==Eigen::Dynamic \
180
- || int(TYPE0::RowsAtCompileTime)==int(TYPE1::RowsAtCompileTime)) \
181
- && (int(TYPE0::ColsAtCompileTime)==Eigen::Dynamic \
182
- || int(TYPE1::ColsAtCompileTime)==Eigen::Dynamic \
183
- || int(TYPE0::ColsAtCompileTime)==int(TYPE1::ColsAtCompileTime))\
184
- ) \
185
- )
60
+ #define EIGEN_STATIC_ASSERT_SAME_VECTOR_SIZE(TYPE0, TYPE1) \
61
+ EIGEN_STATIC_ASSERT( \
62
+ (int(TYPE0::SizeAtCompileTime) == Eigen::Dynamic || int(TYPE1::SizeAtCompileTime) == Eigen::Dynamic || \
63
+ int(TYPE0::SizeAtCompileTime) == int(TYPE1::SizeAtCompileTime)), \
64
+ YOU_MIXED_VECTORS_OF_DIFFERENT_SIZES)
65
+
66
+ #define EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0, TYPE1) \
67
+ ((int(Eigen::internal::size_of_xpr_at_compile_time<TYPE0>::ret) == 0 && \
68
+ int(Eigen::internal::size_of_xpr_at_compile_time<TYPE1>::ret) == 0) || \
69
+ ((int(TYPE0::RowsAtCompileTime) == Eigen::Dynamic || int(TYPE1::RowsAtCompileTime) == Eigen::Dynamic || \
70
+ int(TYPE0::RowsAtCompileTime) == int(TYPE1::RowsAtCompileTime)) && \
71
+ (int(TYPE0::ColsAtCompileTime) == Eigen::Dynamic || int(TYPE1::ColsAtCompileTime) == Eigen::Dynamic || \
72
+ int(TYPE0::ColsAtCompileTime) == int(TYPE1::ColsAtCompileTime))))
186
73
 
187
74
  #define EIGEN_STATIC_ASSERT_NON_INTEGER(TYPE) \
188
- EIGEN_STATIC_ASSERT(!Eigen::NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
189
-
75
+ EIGEN_STATIC_ASSERT(!Eigen::NumTraits<TYPE>::IsInteger, THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES)
190
76
 
191
- // static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different sizes
192
- #define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0,TYPE1) \
193
- EIGEN_STATIC_ASSERT( \
194
- EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0,TYPE1),\
195
- YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
77
+ // static assertion failing if it is guaranteed at compile-time that the two matrix expression types have different
78
+ // sizes
79
+ #define EIGEN_STATIC_ASSERT_SAME_MATRIX_SIZE(TYPE0, TYPE1) \
80
+ EIGEN_STATIC_ASSERT(EIGEN_PREDICATE_SAME_MATRIX_SIZE(TYPE0, TYPE1), YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES)
196
81
 
197
- #define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
198
- EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Eigen::Dynamic) && \
82
+ #define EIGEN_STATIC_ASSERT_SIZE_1x1(TYPE) \
83
+ EIGEN_STATIC_ASSERT((TYPE::RowsAtCompileTime == 1 || TYPE::RowsAtCompileTime == Eigen::Dynamic) && \
199
84
  (TYPE::ColsAtCompileTime == 1 || TYPE::ColsAtCompileTime == Eigen::Dynamic), \
200
- THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
85
+ THIS_METHOD_IS_ONLY_FOR_1x1_EXPRESSIONS)
201
86
 
202
87
  #define EIGEN_STATIC_ASSERT_LVALUE(Derived) \
203
- EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, \
204
- THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
88
+ EIGEN_STATIC_ASSERT(Eigen::internal::is_lvalue<Derived>::value, THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY)
205
89
 
206
- #define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
207
- EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived>::XprKind, ArrayXpr>::value), \
208
- THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
90
+ #define EIGEN_STATIC_ASSERT_ARRAYXPR(Derived) \
91
+ EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived>::XprKind, ArrayXpr>::value), \
92
+ THIS_METHOD_IS_ONLY_FOR_ARRAYS_NOT_MATRICES)
209
93
 
210
- #define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
211
- EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived1>::XprKind, \
212
- typename Eigen::internal::traits<Derived2>::XprKind \
213
- >::value), \
214
- YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
94
+ #define EIGEN_STATIC_ASSERT_SAME_XPR_KIND(Derived1, Derived2) \
95
+ EIGEN_STATIC_ASSERT((Eigen::internal::is_same<typename Eigen::internal::traits<Derived1>::XprKind, \
96
+ typename Eigen::internal::traits<Derived2>::XprKind>::value), \
97
+ YOU_CANNOT_MIX_ARRAYS_AND_MATRICES)
215
98
 
216
99
  // Check that a cost value is positive, and that is stay within a reasonable range
217
100
  // TODO this check could be enabled for internal debugging only
218
- #define EIGEN_INTERNAL_CHECK_COST_VALUE(C) \
219
- EIGEN_STATIC_ASSERT((C)>=0 && (C)<=HugeCost*HugeCost, EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE);
101
+ #define EIGEN_INTERNAL_CHECK_COST_VALUE(C) \
102
+ EIGEN_STATIC_ASSERT((C) >= 0 && (C) <= HugeCost * HugeCost, \
103
+ EIGEN_INTERNAL_ERROR_PLEASE_FILE_A_BUG_REPORT__INVALID_COST_VALUE);
220
104
 
221
- #endif // EIGEN_STATIC_ASSERT_H
105
+ #endif // EIGEN_STATIC_ASSERT_H