tomoto 0.2.2 → 0.3.0

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 (369) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +8 -10
  4. data/ext/tomoto/ct.cpp +11 -11
  5. data/ext/tomoto/dmr.cpp +14 -13
  6. data/ext/tomoto/dt.cpp +14 -14
  7. data/ext/tomoto/extconf.rb +7 -5
  8. data/ext/tomoto/gdmr.cpp +7 -7
  9. data/ext/tomoto/hdp.cpp +9 -9
  10. data/ext/tomoto/hlda.cpp +13 -13
  11. data/ext/tomoto/hpa.cpp +5 -5
  12. data/ext/tomoto/lda.cpp +42 -39
  13. data/ext/tomoto/llda.cpp +6 -6
  14. data/ext/tomoto/mglda.cpp +15 -15
  15. data/ext/tomoto/pa.cpp +6 -6
  16. data/ext/tomoto/plda.cpp +6 -6
  17. data/ext/tomoto/slda.cpp +8 -8
  18. data/ext/tomoto/{ext.cpp → tomoto.cpp} +8 -8
  19. data/ext/tomoto/utils.h +16 -70
  20. data/lib/tomoto/version.rb +1 -1
  21. data/lib/tomoto.rb +5 -1
  22. data/vendor/EigenRand/EigenRand/Core.h +10 -10
  23. data/vendor/EigenRand/EigenRand/Dists/Basic.h +208 -9
  24. data/vendor/EigenRand/EigenRand/Dists/Discrete.h +52 -31
  25. data/vendor/EigenRand/EigenRand/Dists/GammaPoisson.h +9 -8
  26. data/vendor/EigenRand/EigenRand/Dists/NormalExp.h +28 -21
  27. data/vendor/EigenRand/EigenRand/EigenRand +11 -6
  28. data/vendor/EigenRand/EigenRand/Macro.h +13 -7
  29. data/vendor/EigenRand/EigenRand/MorePacketMath.h +348 -740
  30. data/vendor/EigenRand/EigenRand/MvDists/Multinomial.h +5 -3
  31. data/vendor/EigenRand/EigenRand/MvDists/MvNormal.h +9 -3
  32. data/vendor/EigenRand/EigenRand/PacketFilter.h +11 -253
  33. data/vendor/EigenRand/EigenRand/PacketRandomEngine.h +21 -47
  34. data/vendor/EigenRand/EigenRand/RandUtils.h +50 -344
  35. data/vendor/EigenRand/EigenRand/arch/AVX/MorePacketMath.h +619 -0
  36. data/vendor/EigenRand/EigenRand/arch/AVX/PacketFilter.h +149 -0
  37. data/vendor/EigenRand/EigenRand/arch/AVX/RandUtils.h +228 -0
  38. data/vendor/EigenRand/EigenRand/arch/NEON/MorePacketMath.h +473 -0
  39. data/vendor/EigenRand/EigenRand/arch/NEON/PacketFilter.h +142 -0
  40. data/vendor/EigenRand/EigenRand/arch/NEON/RandUtils.h +126 -0
  41. data/vendor/EigenRand/EigenRand/arch/SSE/MorePacketMath.h +501 -0
  42. data/vendor/EigenRand/EigenRand/arch/SSE/PacketFilter.h +133 -0
  43. data/vendor/EigenRand/EigenRand/arch/SSE/RandUtils.h +120 -0
  44. data/vendor/EigenRand/EigenRand/doc.h +24 -12
  45. data/vendor/EigenRand/README.md +57 -4
  46. data/vendor/eigen/COPYING.APACHE +203 -0
  47. data/vendor/eigen/COPYING.BSD +1 -1
  48. data/vendor/eigen/COPYING.MINPACK +51 -52
  49. data/vendor/eigen/Eigen/Cholesky +0 -1
  50. data/vendor/eigen/Eigen/Core +112 -265
  51. data/vendor/eigen/Eigen/Eigenvalues +2 -3
  52. data/vendor/eigen/Eigen/Geometry +5 -8
  53. data/vendor/eigen/Eigen/Householder +0 -1
  54. data/vendor/eigen/Eigen/Jacobi +0 -1
  55. data/vendor/eigen/Eigen/KLUSupport +41 -0
  56. data/vendor/eigen/Eigen/LU +2 -5
  57. data/vendor/eigen/Eigen/OrderingMethods +0 -3
  58. data/vendor/eigen/Eigen/PaStiXSupport +1 -0
  59. data/vendor/eigen/Eigen/PardisoSupport +0 -0
  60. data/vendor/eigen/Eigen/QR +2 -3
  61. data/vendor/eigen/Eigen/QtAlignedMalloc +0 -1
  62. data/vendor/eigen/Eigen/SVD +0 -1
  63. data/vendor/eigen/Eigen/Sparse +0 -2
  64. data/vendor/eigen/Eigen/SparseCholesky +0 -8
  65. data/vendor/eigen/Eigen/SparseLU +4 -0
  66. data/vendor/eigen/Eigen/SparseQR +0 -1
  67. data/vendor/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
  68. data/vendor/eigen/Eigen/src/Cholesky/LLT.h +39 -23
  69. data/vendor/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
  70. data/vendor/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
  71. data/vendor/eigen/Eigen/src/Core/Array.h +99 -11
  72. data/vendor/eigen/Eigen/src/Core/ArrayBase.h +3 -3
  73. data/vendor/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
  74. data/vendor/eigen/Eigen/src/Core/Assign.h +1 -1
  75. data/vendor/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
  76. data/vendor/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
  77. data/vendor/eigen/Eigen/src/Core/BandMatrix.h +16 -16
  78. data/vendor/eigen/Eigen/src/Core/Block.h +56 -60
  79. data/vendor/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
  80. data/vendor/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
  81. data/vendor/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
  82. data/vendor/eigen/Eigen/src/Core/CoreIterators.h +5 -0
  83. data/vendor/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
  84. data/vendor/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
  85. data/vendor/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
  86. data/vendor/eigen/Eigen/src/Core/CwiseUnaryView.h +14 -10
  87. data/vendor/eigen/Eigen/src/Core/DenseBase.h +132 -42
  88. data/vendor/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
  89. data/vendor/eigen/Eigen/src/Core/DenseStorage.h +153 -71
  90. data/vendor/eigen/Eigen/src/Core/Diagonal.h +21 -23
  91. data/vendor/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
  92. data/vendor/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
  93. data/vendor/eigen/Eigen/src/Core/Dot.h +10 -10
  94. data/vendor/eigen/Eigen/src/Core/EigenBase.h +10 -9
  95. data/vendor/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
  96. data/vendor/eigen/Eigen/src/Core/Fuzzy.h +3 -3
  97. data/vendor/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
  98. data/vendor/eigen/Eigen/src/Core/GenericPacketMath.h +599 -152
  99. data/vendor/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
  100. data/vendor/eigen/Eigen/src/Core/IO.h +40 -7
  101. data/vendor/eigen/Eigen/src/Core/IndexedView.h +237 -0
  102. data/vendor/eigen/Eigen/src/Core/Inverse.h +9 -10
  103. data/vendor/eigen/Eigen/src/Core/Map.h +7 -7
  104. data/vendor/eigen/Eigen/src/Core/MapBase.h +10 -3
  105. data/vendor/eigen/Eigen/src/Core/MathFunctions.h +767 -125
  106. data/vendor/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
  107. data/vendor/eigen/Eigen/src/Core/Matrix.h +131 -25
  108. data/vendor/eigen/Eigen/src/Core/MatrixBase.h +21 -3
  109. data/vendor/eigen/Eigen/src/Core/NestByValue.h +25 -50
  110. data/vendor/eigen/Eigen/src/Core/NoAlias.h +4 -3
  111. data/vendor/eigen/Eigen/src/Core/NumTraits.h +107 -20
  112. data/vendor/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  113. data/vendor/eigen/Eigen/src/Core/PermutationMatrix.h +3 -31
  114. data/vendor/eigen/Eigen/src/Core/PlainObjectBase.h +152 -59
  115. data/vendor/eigen/Eigen/src/Core/Product.h +30 -25
  116. data/vendor/eigen/Eigen/src/Core/ProductEvaluators.h +192 -125
  117. data/vendor/eigen/Eigen/src/Core/Random.h +37 -1
  118. data/vendor/eigen/Eigen/src/Core/Redux.h +180 -170
  119. data/vendor/eigen/Eigen/src/Core/Ref.h +121 -23
  120. data/vendor/eigen/Eigen/src/Core/Replicate.h +8 -8
  121. data/vendor/eigen/Eigen/src/Core/Reshaped.h +454 -0
  122. data/vendor/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
  123. data/vendor/eigen/Eigen/src/Core/Reverse.h +18 -12
  124. data/vendor/eigen/Eigen/src/Core/Select.h +8 -6
  125. data/vendor/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
  126. data/vendor/eigen/Eigen/src/Core/Solve.h +14 -14
  127. data/vendor/eigen/Eigen/src/Core/SolveTriangular.h +16 -16
  128. data/vendor/eigen/Eigen/src/Core/SolverBase.h +41 -3
  129. data/vendor/eigen/Eigen/src/Core/StableNorm.h +100 -70
  130. data/vendor/eigen/Eigen/src/Core/StlIterators.h +463 -0
  131. data/vendor/eigen/Eigen/src/Core/Stride.h +9 -4
  132. data/vendor/eigen/Eigen/src/Core/Swap.h +5 -4
  133. data/vendor/eigen/Eigen/src/Core/Transpose.h +88 -27
  134. data/vendor/eigen/Eigen/src/Core/Transpositions.h +26 -47
  135. data/vendor/eigen/Eigen/src/Core/TriangularMatrix.h +93 -75
  136. data/vendor/eigen/Eigen/src/Core/VectorBlock.h +5 -5
  137. data/vendor/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
  138. data/vendor/eigen/Eigen/src/Core/Visitor.h +137 -29
  139. data/vendor/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
  140. data/vendor/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
  141. data/vendor/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
  142. data/vendor/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
  143. data/vendor/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  144. data/vendor/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +207 -236
  145. data/vendor/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1482 -495
  146. data/vendor/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  147. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
  148. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
  149. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  150. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  151. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  152. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
  153. data/vendor/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
  154. data/vendor/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  155. data/vendor/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
  156. data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  157. data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  158. data/vendor/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
  159. data/vendor/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
  160. data/vendor/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  161. data/vendor/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
  162. data/vendor/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  163. data/vendor/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  164. data/vendor/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  165. data/vendor/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  166. data/vendor/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  167. data/vendor/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  168. data/vendor/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
  169. data/vendor/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  170. data/vendor/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
  171. data/vendor/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
  172. data/vendor/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  173. data/vendor/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
  174. data/vendor/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
  175. data/vendor/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
  176. data/vendor/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
  177. data/vendor/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  178. data/vendor/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  179. data/vendor/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  180. data/vendor/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  181. data/vendor/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  182. data/vendor/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  183. data/vendor/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  184. data/vendor/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  185. data/vendor/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
  186. data/vendor/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
  187. data/vendor/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
  188. data/vendor/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
  189. data/vendor/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
  190. data/vendor/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
  191. data/vendor/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
  192. data/vendor/eigen/Eigen/src/Core/functors/UnaryFunctors.h +355 -16
  193. data/vendor/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1075 -586
  194. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +49 -24
  195. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +41 -35
  196. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +6 -6
  197. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +4 -2
  198. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
  199. data/vendor/eigen/Eigen/src/Core/products/Parallelizer.h +22 -5
  200. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +53 -30
  201. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +16 -8
  202. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
  203. data/vendor/eigen/Eigen/src/Core/products/SelfadjointProduct.h +4 -4
  204. data/vendor/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
  205. data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +33 -27
  206. data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +14 -12
  207. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +36 -34
  208. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +8 -4
  209. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
  210. data/vendor/eigen/Eigen/src/Core/util/BlasUtil.h +304 -119
  211. data/vendor/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  212. data/vendor/eigen/Eigen/src/Core/util/Constants.h +25 -9
  213. data/vendor/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +26 -3
  214. data/vendor/eigen/Eigen/src/Core/util/ForwardDeclarations.h +29 -9
  215. data/vendor/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  216. data/vendor/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
  217. data/vendor/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
  218. data/vendor/eigen/Eigen/src/Core/util/Macros.h +709 -246
  219. data/vendor/eigen/Eigen/src/Core/util/Memory.h +222 -52
  220. data/vendor/eigen/Eigen/src/Core/util/Meta.h +355 -77
  221. data/vendor/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +5 -1
  222. data/vendor/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  223. data/vendor/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
  224. data/vendor/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  225. data/vendor/eigen/Eigen/src/Core/util/XprHelper.h +65 -30
  226. data/vendor/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
  227. data/vendor/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +7 -4
  228. data/vendor/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
  229. data/vendor/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
  230. data/vendor/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
  231. data/vendor/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
  232. data/vendor/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
  233. data/vendor/eigen/Eigen/src/Eigenvalues/RealSchur.h +21 -9
  234. data/vendor/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +77 -43
  235. data/vendor/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
  236. data/vendor/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
  237. data/vendor/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
  238. data/vendor/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
  239. data/vendor/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
  240. data/vendor/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
  241. data/vendor/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
  242. data/vendor/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
  243. data/vendor/eigen/Eigen/src/Geometry/Quaternion.h +70 -14
  244. data/vendor/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
  245. data/vendor/eigen/Eigen/src/Geometry/Scaling.h +23 -5
  246. data/vendor/eigen/Eigen/src/Geometry/Transform.h +88 -67
  247. data/vendor/eigen/Eigen/src/Geometry/Translation.h +6 -12
  248. data/vendor/eigen/Eigen/src/Geometry/Umeyama.h +1 -1
  249. data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  250. data/vendor/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
  251. data/vendor/eigen/Eigen/src/Householder/Householder.h +8 -4
  252. data/vendor/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
  253. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
  254. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
  255. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
  256. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
  257. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
  258. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
  259. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
  260. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
  261. data/vendor/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
  262. data/vendor/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  263. data/vendor/eigen/Eigen/src/LU/Determinant.h +35 -19
  264. data/vendor/eigen/Eigen/src/LU/FullPivLU.h +29 -43
  265. data/vendor/eigen/Eigen/src/LU/InverseImpl.h +25 -8
  266. data/vendor/eigen/Eigen/src/LU/PartialPivLU.h +71 -58
  267. data/vendor/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
  268. data/vendor/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
  269. data/vendor/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
  270. data/vendor/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
  271. data/vendor/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
  272. data/vendor/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +9 -7
  273. data/vendor/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
  274. data/vendor/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
  275. data/vendor/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
  276. data/vendor/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
  277. data/vendor/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
  278. data/vendor/eigen/Eigen/src/SVD/BDCSVD.h +183 -63
  279. data/vendor/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
  280. data/vendor/eigen/Eigen/src/SVD/SVDBase.h +83 -22
  281. data/vendor/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
  282. data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +17 -9
  283. data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +12 -37
  284. data/vendor/eigen/Eigen/src/SparseCore/AmbiVector.h +3 -2
  285. data/vendor/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
  286. data/vendor/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
  287. data/vendor/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
  288. data/vendor/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
  289. data/vendor/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
  290. data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
  291. data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +4 -2
  292. data/vendor/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
  293. data/vendor/eigen/Eigen/src/SparseCore/SparseMatrix.h +126 -11
  294. data/vendor/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
  295. data/vendor/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
  296. data/vendor/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
  297. data/vendor/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +5 -2
  298. data/vendor/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
  299. data/vendor/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
  300. data/vendor/eigen/Eigen/src/SparseCore/SparseView.h +1 -0
  301. data/vendor/eigen/Eigen/src/SparseLU/SparseLU.h +162 -12
  302. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
  303. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
  304. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
  305. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
  306. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
  307. data/vendor/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
  308. data/vendor/eigen/Eigen/src/StlSupport/StdDeque.h +2 -12
  309. data/vendor/eigen/Eigen/src/StlSupport/StdList.h +2 -2
  310. data/vendor/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
  311. data/vendor/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
  312. data/vendor/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
  313. data/vendor/eigen/Eigen/src/misc/lapacke.h +5 -4
  314. data/vendor/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +28 -2
  315. data/vendor/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
  316. data/vendor/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
  317. data/vendor/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
  318. data/vendor/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  319. data/vendor/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
  320. data/vendor/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
  321. data/vendor/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
  322. data/vendor/eigen/README.md +2 -0
  323. data/vendor/eigen/bench/btl/README +1 -1
  324. data/vendor/eigen/bench/tensors/README +6 -7
  325. data/vendor/eigen/ci/README.md +56 -0
  326. data/vendor/eigen/demos/mix_eigen_and_c/README +1 -1
  327. data/vendor/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md +213 -158
  328. data/vendor/eigen/unsupported/README.txt +1 -1
  329. data/vendor/tomotopy/README.kr.rst +78 -0
  330. data/vendor/tomotopy/README.rst +75 -0
  331. data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +2 -2
  332. data/vendor/tomotopy/src/Labeling/Phraser.hpp +4 -4
  333. data/vendor/tomotopy/src/TopicModel/CTModel.hpp +7 -3
  334. data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +7 -3
  335. data/vendor/tomotopy/src/TopicModel/DTModel.hpp +6 -3
  336. data/vendor/tomotopy/src/TopicModel/GDMRModel.hpp +2 -2
  337. data/vendor/tomotopy/src/TopicModel/HDP.h +1 -0
  338. data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +57 -6
  339. data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +6 -3
  340. data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +3 -2
  341. data/vendor/tomotopy/src/TopicModel/LDA.h +3 -3
  342. data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +5 -5
  343. data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +50 -19
  344. data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +6 -2
  345. data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +3 -2
  346. data/vendor/tomotopy/src/TopicModel/PAModel.hpp +1 -1
  347. data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +6 -2
  348. data/vendor/tomotopy/src/TopicModel/PT.h +3 -1
  349. data/vendor/tomotopy/src/TopicModel/PTModel.hpp +36 -3
  350. data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +6 -3
  351. data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +55 -26
  352. data/vendor/tomotopy/src/Utils/AliasMethod.hpp +5 -4
  353. data/vendor/tomotopy/src/Utils/Dictionary.h +2 -2
  354. data/vendor/tomotopy/src/Utils/EigenAddonOps.hpp +36 -1
  355. data/vendor/tomotopy/src/Utils/MultiNormalDistribution.hpp +1 -1
  356. data/vendor/tomotopy/src/Utils/TruncMultiNormal.hpp +1 -1
  357. data/vendor/tomotopy/src/Utils/exception.h +6 -0
  358. data/vendor/tomotopy/src/Utils/math.h +2 -2
  359. data/vendor/tomotopy/src/Utils/sample.hpp +14 -12
  360. data/vendor/tomotopy/src/Utils/serializer.hpp +30 -5
  361. data/vendor/tomotopy/src/Utils/sse_gamma.h +0 -3
  362. metadata +64 -18
  363. data/vendor/eigen/Eigen/CMakeLists.txt +0 -19
  364. data/vendor/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -674
  365. data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  366. data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  367. data/vendor/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  368. data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  369. data/vendor/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
@@ -1,52 +1,51 @@
1
- Minpack Copyright Notice (1999) University of Chicago. All rights reserved
2
-
3
- Redistribution and use in source and binary forms, with or
4
- without modification, are permitted provided that the
5
- following conditions are met:
6
-
7
- 1. Redistributions of source code must retain the above
8
- copyright notice, this list of conditions and the following
9
- disclaimer.
10
-
11
- 2. Redistributions in binary form must reproduce the above
12
- copyright notice, this list of conditions and the following
13
- disclaimer in the documentation and/or other materials
14
- provided with the distribution.
15
-
16
- 3. The end-user documentation included with the
17
- redistribution, if any, must include the following
18
- acknowledgment:
19
-
20
- "This product includes software developed by the
21
- University of Chicago, as Operator of Argonne National
22
- Laboratory.
23
-
24
- Alternately, this acknowledgment may appear in the software
25
- itself, if and wherever such third-party acknowledgments
26
- normally appear.
27
-
28
- 4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
29
- WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
30
- UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
31
- THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
32
- IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
33
- OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
34
- OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
35
- OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
36
- USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
37
- THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
38
- DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
39
- UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
40
- BE CORRECTED.
41
-
42
- 5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
43
- HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
44
- ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
45
- INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
46
- ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
47
- PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
48
- SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
49
- (INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
50
- EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
51
- POSSIBILITY OF SUCH LOSS OR DAMAGES.
52
-
1
+ Minpack Copyright Notice (1999) University of Chicago. All rights reserved
2
+
3
+ Redistribution and use in source and binary forms, with or
4
+ without modification, are permitted provided that the
5
+ following conditions are met:
6
+
7
+ 1. Redistributions of source code must retain the above
8
+ copyright notice, this list of conditions and the following
9
+ disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above
12
+ copyright notice, this list of conditions and the following
13
+ disclaimer in the documentation and/or other materials
14
+ provided with the distribution.
15
+
16
+ 3. The end-user documentation included with the
17
+ redistribution, if any, must include the following
18
+ acknowledgment:
19
+
20
+ "This product includes software developed by the
21
+ University of Chicago, as Operator of Argonne National
22
+ Laboratory.
23
+
24
+ Alternately, this acknowledgment may appear in the software
25
+ itself, if and wherever such third-party acknowledgments
26
+ normally appear.
27
+
28
+ 4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
29
+ WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
30
+ UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
31
+ THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
32
+ IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
33
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
34
+ OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
35
+ OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
36
+ USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
37
+ THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
38
+ DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
39
+ UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
40
+ BE CORRECTED.
41
+
42
+ 5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
43
+ HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
44
+ ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
45
+ INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
46
+ ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
47
+ PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
48
+ SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
49
+ (INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
50
+ EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
51
+ POSSIBILITY OF SUCH LOSS OR DAMAGES.
@@ -43,4 +43,3 @@
43
43
  #include "src/Core/util/ReenableStupidWarnings.h"
44
44
 
45
45
  #endif // EIGEN_CHOLESKY_MODULE_H
46
- /* vim: set filetype=cpp et sw=2 ts=2 ai: */
@@ -11,251 +11,55 @@
11
11
  #ifndef EIGEN_CORE_H
12
12
  #define EIGEN_CORE_H
13
13
 
14
- // first thing Eigen does: stop the compiler from committing suicide
14
+ // first thing Eigen does: stop the compiler from reporting useless warnings.
15
15
  #include "src/Core/util/DisableStupidWarnings.h"
16
16
 
17
- #if defined(__CUDACC__) && !defined(EIGEN_NO_CUDA)
18
- #define EIGEN_CUDACC __CUDACC__
19
- #endif
20
-
21
- #if defined(__CUDA_ARCH__) && !defined(EIGEN_NO_CUDA)
22
- #define EIGEN_CUDA_ARCH __CUDA_ARCH__
23
- #endif
24
-
25
- #if defined(__CUDACC_VER_MAJOR__) && (__CUDACC_VER_MAJOR__ >= 9)
26
- #define EIGEN_CUDACC_VER ((__CUDACC_VER_MAJOR__ * 10000) + (__CUDACC_VER_MINOR__ * 100))
27
- #elif defined(__CUDACC_VER__)
28
- #define EIGEN_CUDACC_VER __CUDACC_VER__
29
- #else
30
- #define EIGEN_CUDACC_VER 0
31
- #endif
32
-
33
- // Handle NVCC/CUDA/SYCL
34
- #if defined(__CUDACC__) || defined(__SYCL_DEVICE_ONLY__)
35
- // Do not try asserts on CUDA and SYCL!
36
- #ifndef EIGEN_NO_DEBUG
37
- #define EIGEN_NO_DEBUG
38
- #endif
39
-
40
- #ifdef EIGEN_INTERNAL_DEBUGGING
41
- #undef EIGEN_INTERNAL_DEBUGGING
42
- #endif
43
-
44
- #ifdef EIGEN_EXCEPTIONS
45
- #undef EIGEN_EXCEPTIONS
46
- #endif
47
-
48
- // All functions callable from CUDA code must be qualified with __device__
49
- #ifdef __CUDACC__
50
- // Do not try to vectorize on CUDA and SYCL!
51
- #ifndef EIGEN_DONT_VECTORIZE
52
- #define EIGEN_DONT_VECTORIZE
53
- #endif
54
-
55
- #define EIGEN_DEVICE_FUNC __host__ __device__
56
- // We need cuda_runtime.h to ensure that that EIGEN_USING_STD_MATH macro
57
- // works properly on the device side
58
- #include <cuda_runtime.h>
59
- #else
60
- #define EIGEN_DEVICE_FUNC
61
- #endif
17
+ // then include this file where all our macros are defined. It's really important to do it first because
18
+ // it's where we do all the compiler/OS/arch detections and define most defaults.
19
+ #include "src/Core/util/Macros.h"
62
20
 
63
- #else
64
- #define EIGEN_DEVICE_FUNC
21
+ // This detects SSE/AVX/NEON/etc. and configure alignment settings
22
+ #include "src/Core/util/ConfigureVectorization.h"
65
23
 
24
+ // We need cuda_runtime.h/hip_runtime.h to ensure that
25
+ // the EIGEN_USING_STD macro works properly on the device side
26
+ #if defined(EIGEN_CUDACC)
27
+ #include <cuda_runtime.h>
28
+ #elif defined(EIGEN_HIPCC)
29
+ #include <hip/hip_runtime.h>
66
30
  #endif
67
31
 
68
- // When compiling CUDA device code with NVCC, pull in math functions from the
69
- // global namespace. In host mode, and when device doee with clang, use the
70
- // std versions.
71
- #if defined(__CUDA_ARCH__) && defined(__NVCC__)
72
- #define EIGEN_USING_STD_MATH(FUNC) using ::FUNC;
73
- #else
74
- #define EIGEN_USING_STD_MATH(FUNC) using std::FUNC;
75
- #endif
76
-
77
- #if (defined(_CPPUNWIND) || defined(__EXCEPTIONS)) && !defined(__CUDA_ARCH__) && !defined(EIGEN_EXCEPTIONS) && !defined(EIGEN_USE_SYCL)
78
- #define EIGEN_EXCEPTIONS
79
- #endif
80
32
 
81
33
  #ifdef EIGEN_EXCEPTIONS
82
34
  #include <new>
83
35
  #endif
84
36
 
85
- // then include this file where all our macros are defined. It's really important to do it first because
86
- // it's where we do all the alignment settings (platform detection and honoring the user's will if he
87
- // defined e.g. EIGEN_DONT_ALIGN) so it needs to be done before we do anything with vectorization.
88
- #include "src/Core/util/Macros.h"
89
-
90
37
  // Disable the ipa-cp-clone optimization flag with MinGW 6.x or newer (enabled by default with -O3)
91
38
  // See http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556 for details.
92
- #if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6)
39
+ #if EIGEN_COMP_MINGW && EIGEN_GNUC_AT_LEAST(4,6) && EIGEN_GNUC_AT_MOST(5,5)
93
40
  #pragma GCC optimize ("-fno-ipa-cp-clone")
94
41
  #endif
95
42
 
43
+ // Prevent ICC from specializing std::complex operators that silently fail
44
+ // on device. This allows us to use our own device-compatible specializations
45
+ // instead.
46
+ #if defined(EIGEN_COMP_ICC) && defined(EIGEN_GPU_COMPILE_PHASE) \
47
+ && !defined(_OVERRIDE_COMPLEX_SPECIALIZATION_)
48
+ #define _OVERRIDE_COMPLEX_SPECIALIZATION_ 1
49
+ #endif
96
50
  #include <complex>
97
51
 
98
52
  // this include file manages BLAS and MKL related macros
99
53
  // and inclusion of their respective header files
100
54
  #include "src/Core/util/MKL_support.h"
101
55
 
102
- // if alignment is disabled, then disable vectorization. Note: EIGEN_MAX_ALIGN_BYTES is the proper check, it takes into
103
- // account both the user's will (EIGEN_MAX_ALIGN_BYTES,EIGEN_DONT_ALIGN) and our own platform checks
104
- #if EIGEN_MAX_ALIGN_BYTES==0
105
- #ifndef EIGEN_DONT_VECTORIZE
106
- #define EIGEN_DONT_VECTORIZE
107
- #endif
108
- #endif
109
-
110
- #if EIGEN_COMP_MSVC
111
- #include <malloc.h> // for _aligned_malloc -- need it regardless of whether vectorization is enabled
112
- #if (EIGEN_COMP_MSVC >= 1500) // 2008 or later
113
- // Remember that usage of defined() in a #define is undefined by the standard.
114
- // a user reported that in 64-bit mode, MSVC doesn't care to define _M_IX86_FP.
115
- #if (defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) || EIGEN_ARCH_x86_64
116
- #define EIGEN_SSE2_ON_MSVC_2008_OR_LATER
117
- #endif
118
- #endif
119
- #else
120
- // Remember that usage of defined() in a #define is undefined by the standard
121
- #if (defined __SSE2__) && ( (!EIGEN_COMP_GNUC) || EIGEN_COMP_ICC || EIGEN_GNUC_AT_LEAST(4,2) )
122
- #define EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC
123
- #endif
124
- #endif
125
-
126
- #ifndef EIGEN_DONT_VECTORIZE
127
-
128
- #if defined (EIGEN_SSE2_ON_NON_MSVC_BUT_NOT_OLD_GCC) || defined(EIGEN_SSE2_ON_MSVC_2008_OR_LATER)
129
-
130
- // Defines symbols for compile-time detection of which instructions are
131
- // used.
132
- // EIGEN_VECTORIZE_YY is defined if and only if the instruction set YY is used
133
- #define EIGEN_VECTORIZE
134
- #define EIGEN_VECTORIZE_SSE
135
- #define EIGEN_VECTORIZE_SSE2
136
-
137
- // Detect sse3/ssse3/sse4:
138
- // gcc and icc defines __SSE3__, ...
139
- // there is no way to know about this on msvc. You can define EIGEN_VECTORIZE_SSE* if you
140
- // want to force the use of those instructions with msvc.
141
- #ifdef __SSE3__
142
- #define EIGEN_VECTORIZE_SSE3
143
- #endif
144
- #ifdef __SSSE3__
145
- #define EIGEN_VECTORIZE_SSSE3
146
- #endif
147
- #ifdef __SSE4_1__
148
- #define EIGEN_VECTORIZE_SSE4_1
149
- #endif
150
- #ifdef __SSE4_2__
151
- #define EIGEN_VECTORIZE_SSE4_2
152
- #endif
153
- #ifdef __AVX__
154
- #define EIGEN_VECTORIZE_AVX
155
- #define EIGEN_VECTORIZE_SSE3
156
- #define EIGEN_VECTORIZE_SSSE3
157
- #define EIGEN_VECTORIZE_SSE4_1
158
- #define EIGEN_VECTORIZE_SSE4_2
159
- #endif
160
- #ifdef __AVX2__
161
- #define EIGEN_VECTORIZE_AVX2
162
- #endif
163
- #ifdef __FMA__
164
- #define EIGEN_VECTORIZE_FMA
165
- #endif
166
- #if defined(__AVX512F__) && defined(EIGEN_ENABLE_AVX512)
167
- #define EIGEN_VECTORIZE_AVX512
168
- #define EIGEN_VECTORIZE_AVX2
169
- #define EIGEN_VECTORIZE_AVX
170
- #define EIGEN_VECTORIZE_FMA
171
- #ifdef __AVX512DQ__
172
- #define EIGEN_VECTORIZE_AVX512DQ
173
- #endif
174
- #ifdef __AVX512ER__
175
- #define EIGEN_VECTORIZE_AVX512ER
176
- #endif
177
- #endif
178
-
179
- // include files
180
-
181
- // This extern "C" works around a MINGW-w64 compilation issue
182
- // https://sourceforge.net/tracker/index.php?func=detail&aid=3018394&group_id=202880&atid=983354
183
- // In essence, intrin.h is included by windows.h and also declares intrinsics (just as emmintrin.h etc. below do).
184
- // However, intrin.h uses an extern "C" declaration, and g++ thus complains of duplicate declarations
185
- // with conflicting linkage. The linkage for intrinsics doesn't matter, but at that stage the compiler doesn't know;
186
- // so, to avoid compile errors when windows.h is included after Eigen/Core, ensure intrinsics are extern "C" here too.
187
- // notice that since these are C headers, the extern "C" is theoretically needed anyways.
188
- extern "C" {
189
- // In theory we should only include immintrin.h and not the other *mmintrin.h header files directly.
190
- // Doing so triggers some issues with ICC. However old gcc versions seems to not have this file, thus:
191
- #if EIGEN_COMP_ICC >= 1110
192
- #include <immintrin.h>
193
- #else
194
- #include <mmintrin.h>
195
- #include <emmintrin.h>
196
- #include <xmmintrin.h>
197
- #ifdef EIGEN_VECTORIZE_SSE3
198
- #include <pmmintrin.h>
199
- #endif
200
- #ifdef EIGEN_VECTORIZE_SSSE3
201
- #include <tmmintrin.h>
202
- #endif
203
- #ifdef EIGEN_VECTORIZE_SSE4_1
204
- #include <smmintrin.h>
205
- #endif
206
- #ifdef EIGEN_VECTORIZE_SSE4_2
207
- #include <nmmintrin.h>
208
- #endif
209
- #if defined(EIGEN_VECTORIZE_AVX) || defined(EIGEN_VECTORIZE_AVX512)
210
- #include <immintrin.h>
211
- #endif
212
- #endif
213
- } // end extern "C"
214
- #elif defined __VSX__
215
- #define EIGEN_VECTORIZE
216
- #define EIGEN_VECTORIZE_VSX
217
- #include <altivec.h>
218
- // We need to #undef all these ugly tokens defined in <altivec.h>
219
- // => use __vector instead of vector
220
- #undef bool
221
- #undef vector
222
- #undef pixel
223
- #elif defined __ALTIVEC__
224
- #define EIGEN_VECTORIZE
225
- #define EIGEN_VECTORIZE_ALTIVEC
226
- #include <altivec.h>
227
- // We need to #undef all these ugly tokens defined in <altivec.h>
228
- // => use __vector instead of vector
229
- #undef bool
230
- #undef vector
231
- #undef pixel
232
- #elif (defined __ARM_NEON) || (defined __ARM_NEON__)
233
- #define EIGEN_VECTORIZE
234
- #define EIGEN_VECTORIZE_NEON
235
- #include <arm_neon.h>
236
- #elif (defined __s390x__ && defined __VEC__)
237
- #define EIGEN_VECTORIZE
238
- #define EIGEN_VECTORIZE_ZVECTOR
239
- #include <vecintrin.h>
240
- #endif
241
- #endif
242
56
 
243
- #if defined(__F16C__) && !defined(EIGEN_COMP_CLANG)
244
- // We can use the optimized fp16 to float and float to fp16 conversion routines
245
- #define EIGEN_HAS_FP16_C
57
+ #if defined(EIGEN_HAS_CUDA_FP16) || defined(EIGEN_HAS_HIP_FP16)
58
+ #define EIGEN_HAS_GPU_FP16
246
59
  #endif
247
60
 
248
- #if defined __CUDACC__
249
- #define EIGEN_VECTORIZE_CUDA
250
- #include <vector_types.h>
251
- #if EIGEN_CUDACC_VER >= 70500
252
- #define EIGEN_HAS_CUDA_FP16
253
- #endif
254
- #endif
255
-
256
- #if defined EIGEN_HAS_CUDA_FP16
257
- #include <host_defines.h>
258
- #include <cuda_fp16.h>
61
+ #if defined(EIGEN_HAS_CUDA_BF16) || defined(EIGEN_HAS_HIP_BF16)
62
+ #define EIGEN_HAS_GPU_BF16
259
63
  #endif
260
64
 
261
65
  #if (defined _OPENMP) && (!defined EIGEN_DONT_PARALLELIZE)
@@ -279,7 +83,10 @@
279
83
  #include <cmath>
280
84
  #include <cassert>
281
85
  #include <functional>
282
- #include <iosfwd>
86
+ #include <sstream>
87
+ #ifndef EIGEN_NO_IO
88
+ #include <iosfwd>
89
+ #endif
283
90
  #include <cstring>
284
91
  #include <string>
285
92
  #include <limits>
@@ -287,6 +94,10 @@
287
94
  // for min/max:
288
95
  #include <algorithm>
289
96
 
97
+ #if EIGEN_HAS_CXX11
98
+ #include <array>
99
+ #endif
100
+
290
101
  // for std::is_nothrow_move_assignable
291
102
  #ifdef EIGEN_INCLUDE_TYPE_TRAITS
292
103
  #include <type_traits>
@@ -302,38 +113,25 @@
302
113
  #include <intrin.h>
303
114
  #endif
304
115
 
305
- /** \brief Namespace containing all symbols from the %Eigen library. */
306
- namespace Eigen {
307
-
308
- inline static const char *SimdInstructionSetsInUse(void) {
309
- #if defined(EIGEN_VECTORIZE_AVX512)
310
- return "AVX512, FMA, AVX2, AVX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
311
- #elif defined(EIGEN_VECTORIZE_AVX)
312
- return "AVX SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
313
- #elif defined(EIGEN_VECTORIZE_SSE4_2)
314
- return "SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2";
315
- #elif defined(EIGEN_VECTORIZE_SSE4_1)
316
- return "SSE, SSE2, SSE3, SSSE3, SSE4.1";
317
- #elif defined(EIGEN_VECTORIZE_SSSE3)
318
- return "SSE, SSE2, SSE3, SSSE3";
319
- #elif defined(EIGEN_VECTORIZE_SSE3)
320
- return "SSE, SSE2, SSE3";
321
- #elif defined(EIGEN_VECTORIZE_SSE2)
322
- return "SSE, SSE2";
323
- #elif defined(EIGEN_VECTORIZE_ALTIVEC)
324
- return "AltiVec";
325
- #elif defined(EIGEN_VECTORIZE_VSX)
326
- return "VSX";
327
- #elif defined(EIGEN_VECTORIZE_NEON)
328
- return "ARM NEON";
329
- #elif defined(EIGEN_VECTORIZE_ZVECTOR)
330
- return "S390X ZVECTOR";
331
- #else
332
- return "None";
116
+ #if defined(EIGEN_USE_SYCL)
117
+ #undef min
118
+ #undef max
119
+ #undef isnan
120
+ #undef isinf
121
+ #undef isfinite
122
+ #include <CL/sycl.hpp>
123
+ #include <map>
124
+ #include <memory>
125
+ #include <utility>
126
+ #include <thread>
127
+ #ifndef EIGEN_SYCL_LOCAL_THREAD_DIM0
128
+ #define EIGEN_SYCL_LOCAL_THREAD_DIM0 16
129
+ #endif
130
+ #ifndef EIGEN_SYCL_LOCAL_THREAD_DIM1
131
+ #define EIGEN_SYCL_LOCAL_THREAD_DIM1 16
132
+ #endif
333
133
  #endif
334
- }
335
134
 
336
- } // end namespace Eigen
337
135
 
338
136
  #if defined EIGEN2_SUPPORT_STAGE40_FULL_EIGEN3_STRICTNESS || defined EIGEN2_SUPPORT_STAGE30_FULL_EIGEN3_API || defined EIGEN2_SUPPORT_STAGE20_RESOLVE_API_CONFLICTS || defined EIGEN2_SUPPORT_STAGE10_FULL_EIGEN2_API || defined EIGEN2_SUPPORT
339
137
  // This will generate an error message:
@@ -342,7 +140,7 @@ inline static const char *SimdInstructionSetsInUse(void) {
342
140
 
343
141
  namespace Eigen {
344
142
 
345
- // we use size_t frequently and we'll never remember to prepend it with std:: everytime just to
143
+ // we use size_t frequently and we'll never remember to prepend it with std:: every time just to
346
144
  // ensure QNX/QCC support
347
145
  using std::size_t;
348
146
  // gcc 4.6.0 wants std:: for ptrdiff_t
@@ -366,58 +164,90 @@ using std::ptrdiff_t;
366
164
  #include "src/Core/util/StaticAssert.h"
367
165
  #include "src/Core/util/XprHelper.h"
368
166
  #include "src/Core/util/Memory.h"
167
+ #include "src/Core/util/IntegralConstant.h"
168
+ #include "src/Core/util/SymbolicIndex.h"
369
169
 
370
170
  #include "src/Core/NumTraits.h"
371
171
  #include "src/Core/MathFunctions.h"
372
172
  #include "src/Core/GenericPacketMath.h"
373
173
  #include "src/Core/MathFunctionsImpl.h"
374
174
  #include "src/Core/arch/Default/ConjHelper.h"
175
+ // Generic half float support
176
+ #include "src/Core/arch/Default/Half.h"
177
+ #include "src/Core/arch/Default/BFloat16.h"
178
+ #include "src/Core/arch/Default/TypeCasting.h"
179
+ #include "src/Core/arch/Default/GenericPacketMathFunctionsFwd.h"
375
180
 
376
181
  #if defined EIGEN_VECTORIZE_AVX512
377
182
  #include "src/Core/arch/SSE/PacketMath.h"
183
+ #include "src/Core/arch/SSE/TypeCasting.h"
184
+ #include "src/Core/arch/SSE/Complex.h"
378
185
  #include "src/Core/arch/AVX/PacketMath.h"
186
+ #include "src/Core/arch/AVX/TypeCasting.h"
187
+ #include "src/Core/arch/AVX/Complex.h"
379
188
  #include "src/Core/arch/AVX512/PacketMath.h"
189
+ #include "src/Core/arch/AVX512/TypeCasting.h"
190
+ #include "src/Core/arch/AVX512/Complex.h"
191
+ #include "src/Core/arch/SSE/MathFunctions.h"
192
+ #include "src/Core/arch/AVX/MathFunctions.h"
380
193
  #include "src/Core/arch/AVX512/MathFunctions.h"
381
194
  #elif defined EIGEN_VECTORIZE_AVX
382
195
  // Use AVX for floats and doubles, SSE for integers
383
196
  #include "src/Core/arch/SSE/PacketMath.h"
197
+ #include "src/Core/arch/SSE/TypeCasting.h"
384
198
  #include "src/Core/arch/SSE/Complex.h"
385
- #include "src/Core/arch/SSE/MathFunctions.h"
386
199
  #include "src/Core/arch/AVX/PacketMath.h"
387
- #include "src/Core/arch/AVX/MathFunctions.h"
388
- #include "src/Core/arch/AVX/Complex.h"
389
200
  #include "src/Core/arch/AVX/TypeCasting.h"
390
- #include "src/Core/arch/SSE/TypeCasting.h"
201
+ #include "src/Core/arch/AVX/Complex.h"
202
+ #include "src/Core/arch/SSE/MathFunctions.h"
203
+ #include "src/Core/arch/AVX/MathFunctions.h"
391
204
  #elif defined EIGEN_VECTORIZE_SSE
392
205
  #include "src/Core/arch/SSE/PacketMath.h"
206
+ #include "src/Core/arch/SSE/TypeCasting.h"
393
207
  #include "src/Core/arch/SSE/MathFunctions.h"
394
208
  #include "src/Core/arch/SSE/Complex.h"
395
- #include "src/Core/arch/SSE/TypeCasting.h"
396
209
  #elif defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
397
210
  #include "src/Core/arch/AltiVec/PacketMath.h"
398
211
  #include "src/Core/arch/AltiVec/MathFunctions.h"
399
212
  #include "src/Core/arch/AltiVec/Complex.h"
400
213
  #elif defined EIGEN_VECTORIZE_NEON
401
214
  #include "src/Core/arch/NEON/PacketMath.h"
215
+ #include "src/Core/arch/NEON/TypeCasting.h"
402
216
  #include "src/Core/arch/NEON/MathFunctions.h"
403
217
  #include "src/Core/arch/NEON/Complex.h"
218
+ #elif defined EIGEN_VECTORIZE_SVE
219
+ #include "src/Core/arch/SVE/PacketMath.h"
220
+ #include "src/Core/arch/SVE/TypeCasting.h"
221
+ #include "src/Core/arch/SVE/MathFunctions.h"
404
222
  #elif defined EIGEN_VECTORIZE_ZVECTOR
405
223
  #include "src/Core/arch/ZVector/PacketMath.h"
406
224
  #include "src/Core/arch/ZVector/MathFunctions.h"
407
225
  #include "src/Core/arch/ZVector/Complex.h"
226
+ #elif defined EIGEN_VECTORIZE_MSA
227
+ #include "src/Core/arch/MSA/PacketMath.h"
228
+ #include "src/Core/arch/MSA/MathFunctions.h"
229
+ #include "src/Core/arch/MSA/Complex.h"
408
230
  #endif
409
231
 
410
- // Half float support
411
- #include "src/Core/arch/CUDA/Half.h"
412
- #include "src/Core/arch/CUDA/PacketMathHalf.h"
413
- #include "src/Core/arch/CUDA/TypeCasting.h"
232
+ #if defined EIGEN_VECTORIZE_GPU
233
+ #include "src/Core/arch/GPU/PacketMath.h"
234
+ #include "src/Core/arch/GPU/MathFunctions.h"
235
+ #include "src/Core/arch/GPU/TypeCasting.h"
236
+ #endif
414
237
 
415
- #if defined EIGEN_VECTORIZE_CUDA
416
- #include "src/Core/arch/CUDA/PacketMath.h"
417
- #include "src/Core/arch/CUDA/MathFunctions.h"
238
+ #if defined(EIGEN_USE_SYCL)
239
+ #include "src/Core/arch/SYCL/SyclMemoryModel.h"
240
+ #include "src/Core/arch/SYCL/InteropHeaders.h"
241
+ #if !defined(EIGEN_DONT_VECTORIZE_SYCL)
242
+ #include "src/Core/arch/SYCL/PacketMath.h"
243
+ #include "src/Core/arch/SYCL/MathFunctions.h"
244
+ #include "src/Core/arch/SYCL/TypeCasting.h"
245
+ #endif
418
246
  #endif
419
247
 
420
248
  #include "src/Core/arch/Default/Settings.h"
249
+ // This file provides generic implementations valid for scalar as well
250
+ #include "src/Core/arch/Default/GenericPacketMathFunctions.h"
421
251
 
422
252
  #include "src/Core/functors/TernaryFunctors.h"
423
253
  #include "src/Core/functors/BinaryFunctors.h"
@@ -428,9 +258,16 @@ using std::ptrdiff_t;
428
258
 
429
259
  // Specialized functors to enable the processing of complex numbers
430
260
  // on CUDA devices
261
+ #ifdef EIGEN_CUDACC
431
262
  #include "src/Core/arch/CUDA/Complex.h"
263
+ #endif
432
264
 
433
- #include "src/Core/IO.h"
265
+ #include "src/Core/util/IndexedViewHelper.h"
266
+ #include "src/Core/util/ReshapedHelper.h"
267
+ #include "src/Core/ArithmeticSequence.h"
268
+ #ifndef EIGEN_NO_IO
269
+ #include "src/Core/IO.h"
270
+ #endif
434
271
  #include "src/Core/DenseCoeffsBase.h"
435
272
  #include "src/Core/DenseBase.h"
436
273
  #include "src/Core/MatrixBase.h"
@@ -471,6 +308,8 @@ using std::ptrdiff_t;
471
308
  #include "src/Core/Ref.h"
472
309
  #include "src/Core/Block.h"
473
310
  #include "src/Core/VectorBlock.h"
311
+ #include "src/Core/IndexedView.h"
312
+ #include "src/Core/Reshaped.h"
474
313
  #include "src/Core/Transpose.h"
475
314
  #include "src/Core/DiagonalMatrix.h"
476
315
  #include "src/Core/Diagonal.h"
@@ -507,13 +346,21 @@ using std::ptrdiff_t;
507
346
  #include "src/Core/CoreIterators.h"
508
347
  #include "src/Core/ConditionEstimator.h"
509
348
 
349
+ #if defined(EIGEN_VECTORIZE_ALTIVEC) || defined(EIGEN_VECTORIZE_VSX)
350
+ #include "src/Core/arch/AltiVec/MatrixProduct.h"
351
+ #elif defined EIGEN_VECTORIZE_NEON
352
+ #include "src/Core/arch/NEON/GeneralBlockPanelKernel.h"
353
+ #endif
354
+
510
355
  #include "src/Core/BooleanRedux.h"
511
356
  #include "src/Core/Select.h"
512
357
  #include "src/Core/VectorwiseOp.h"
358
+ #include "src/Core/PartialReduxEvaluator.h"
513
359
  #include "src/Core/Random.h"
514
360
  #include "src/Core/Replicate.h"
515
361
  #include "src/Core/Reverse.h"
516
362
  #include "src/Core/ArrayWrapper.h"
363
+ #include "src/Core/StlIterators.h"
517
364
 
518
365
  #ifdef EIGEN_USE_BLAS
519
366
  #include "src/Core/products/GeneralMatrixMatrix_BLAS.h"
@@ -10,14 +10,14 @@
10
10
 
11
11
  #include "Core"
12
12
 
13
- #include "src/Core/util/DisableStupidWarnings.h"
14
-
15
13
  #include "Cholesky"
16
14
  #include "Jacobi"
17
15
  #include "Householder"
18
16
  #include "LU"
19
17
  #include "Geometry"
20
18
 
19
+ #include "src/Core/util/DisableStupidWarnings.h"
20
+
21
21
  /** \defgroup Eigenvalues_Module Eigenvalues module
22
22
  *
23
23
  *
@@ -58,4 +58,3 @@
58
58
  #include "src/Core/util/ReenableStupidWarnings.h"
59
59
 
60
60
  #endif // EIGEN_EIGENVALUES_MODULE_H
61
- /* vim: set filetype=cpp et sw=2 ts=2 ai: */
@@ -10,12 +10,12 @@
10
10
 
11
11
  #include "Core"
12
12
 
13
- #include "src/Core/util/DisableStupidWarnings.h"
14
-
15
13
  #include "SVD"
16
14
  #include "LU"
17
15
  #include <limits>
18
16
 
17
+ #include "src/Core/util/DisableStupidWarnings.h"
18
+
19
19
  /** \defgroup Geometry_Module Geometry module
20
20
  *
21
21
  * This module provides support for:
@@ -49,14 +49,11 @@
49
49
  #include "src/Geometry/AlignedBox.h"
50
50
  #include "src/Geometry/Umeyama.h"
51
51
 
52
- // Use the SSE optimized version whenever possible. At the moment the
53
- // SSE version doesn't compile when AVX is enabled
54
- #if defined EIGEN_VECTORIZE_SSE && !defined EIGEN_VECTORIZE_AVX
55
- #include "src/Geometry/arch/Geometry_SSE.h"
52
+ // Use the SSE optimized version whenever possible.
53
+ #if (defined EIGEN_VECTORIZE_SSE) || (defined EIGEN_VECTORIZE_NEON)
54
+ #include "src/Geometry/arch/Geometry_SIMD.h"
56
55
  #endif
57
56
 
58
57
  #include "src/Core/util/ReenableStupidWarnings.h"
59
58
 
60
59
  #endif // EIGEN_GEOMETRY_MODULE_H
61
- /* vim: set filetype=cpp et sw=2 ts=2 ai: */
62
-