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
@@ -14,15 +14,15 @@
14
14
  namespace Eigen {
15
15
 
16
16
  namespace internal {
17
-
17
+
18
18
  // The index type defined by EIGEN_DEFAULT_DENSE_INDEX_TYPE must be a signed type.
19
19
  // This dummy function simply aims at checking that at compile time.
20
20
  static inline void check_DenseIndex_is_signed() {
21
- EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE);
21
+ EIGEN_STATIC_ASSERT(NumTraits<DenseIndex>::IsSigned,THE_INDEX_TYPE_MUST_BE_A_SIGNED_TYPE)
22
22
  }
23
23
 
24
24
  } // end namespace internal
25
-
25
+
26
26
  /** \class DenseBase
27
27
  * \ingroup Core_Module
28
28
  *
@@ -40,7 +40,7 @@ static inline void check_DenseIndex_is_signed() {
40
40
  */
41
41
  template<typename Derived> class DenseBase
42
42
  #ifndef EIGEN_PARSED_BY_DOXYGEN
43
- : public DenseCoeffsBase<Derived>
43
+ : public DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value>
44
44
  #else
45
45
  : public DenseCoeffsBase<Derived,DirectWriteAccessors>
46
46
  #endif // not EIGEN_PARSED_BY_DOXYGEN
@@ -64,14 +64,14 @@ template<typename Derived> class DenseBase
64
64
 
65
65
  /** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc. */
66
66
  typedef typename internal::traits<Derived>::Scalar Scalar;
67
-
67
+
68
68
  /** The numeric type of the expression' coefficients, e.g. float, double, int or std::complex<float>, etc.
69
69
  *
70
70
  * It is an alias for the Scalar type */
71
71
  typedef Scalar value_type;
72
-
72
+
73
73
  typedef typename NumTraits<Scalar>::Real RealScalar;
74
- typedef DenseCoeffsBase<Derived> Base;
74
+ typedef DenseCoeffsBase<Derived, internal::accessors_level<Derived>::value> Base;
75
75
 
76
76
  using Base::derived;
77
77
  using Base::const_cast_derived;
@@ -150,13 +150,18 @@ template<typename Derived> class DenseBase
150
150
  * \sa SizeAtCompileTime, MaxRowsAtCompileTime, MaxColsAtCompileTime
151
151
  */
152
152
 
153
- IsVectorAtCompileTime = internal::traits<Derived>::MaxRowsAtCompileTime == 1
154
- || internal::traits<Derived>::MaxColsAtCompileTime == 1,
153
+ IsVectorAtCompileTime = internal::traits<Derived>::RowsAtCompileTime == 1
154
+ || internal::traits<Derived>::ColsAtCompileTime == 1,
155
155
  /**< This is set to true if either the number of rows or the number of
156
156
  * columns is known at compile-time to be equal to 1. Indeed, in that case,
157
157
  * we are dealing with a column-vector (if there is only one column) or with
158
158
  * a row-vector (if there is only one row). */
159
159
 
160
+ NumDimensions = int(MaxSizeAtCompileTime) == 1 ? 0 : bool(IsVectorAtCompileTime) ? 1 : 2,
161
+ /**< This value is equal to Tensor::NumDimensions, i.e. 0 for scalars, 1 for vectors,
162
+ * and 2 for matrices.
163
+ */
164
+
160
165
  Flags = internal::traits<Derived>::Flags,
161
166
  /**< This stores expression \ref flags flags which may or may not be inherited by new expressions
162
167
  * constructed from this one. See the \ref flags "list of flags".
@@ -170,11 +175,11 @@ template<typename Derived> class DenseBase
170
175
  InnerStrideAtCompileTime = internal::inner_stride_at_compile_time<Derived>::ret,
171
176
  OuterStrideAtCompileTime = internal::outer_stride_at_compile_time<Derived>::ret
172
177
  };
173
-
178
+
174
179
  typedef typename internal::find_best_packet<Scalar,SizeAtCompileTime>::type PacketScalar;
175
180
 
176
181
  enum { IsPlainObjectBase = 0 };
177
-
182
+
178
183
  /** The plain matrix type corresponding to this expression.
179
184
  * \sa PlainObject */
180
185
  typedef Matrix<typename internal::traits<Derived>::Scalar,
@@ -184,7 +189,7 @@ template<typename Derived> class DenseBase
184
189
  internal::traits<Derived>::MaxRowsAtCompileTime,
185
190
  internal::traits<Derived>::MaxColsAtCompileTime
186
191
  > PlainMatrix;
187
-
192
+
188
193
  /** The plain array type corresponding to this expression.
189
194
  * \sa PlainObject */
190
195
  typedef Array<typename internal::traits<Derived>::Scalar,
@@ -206,7 +211,7 @@ template<typename Derived> class DenseBase
206
211
 
207
212
  /** \returns the number of nonzero coefficients which is in practice the number
208
213
  * of stored coefficients. */
209
- EIGEN_DEVICE_FUNC
214
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
210
215
  inline Index nonZeros() const { return size(); }
211
216
 
212
217
  /** \returns the outer size.
@@ -214,7 +219,7 @@ template<typename Derived> class DenseBase
214
219
  * \note For a vector, this returns just 1. For a matrix (non-vector), this is the major dimension
215
220
  * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of columns for a
216
221
  * column-major matrix, and the number of rows for a row-major matrix. */
217
- EIGEN_DEVICE_FUNC
222
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
218
223
  Index outerSize() const
219
224
  {
220
225
  return IsVectorAtCompileTime ? 1
@@ -224,9 +229,9 @@ template<typename Derived> class DenseBase
224
229
  /** \returns the inner size.
225
230
  *
226
231
  * \note For a vector, this is just the size. For a matrix (non-vector), this is the minor dimension
227
- * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
232
+ * with respect to the \ref TopicStorageOrders "storage order", i.e., the number of rows for a
228
233
  * column-major matrix, and the number of columns for a row-major matrix. */
229
- EIGEN_DEVICE_FUNC
234
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
230
235
  Index innerSize() const
231
236
  {
232
237
  return IsVectorAtCompileTime ? this->size()
@@ -261,9 +266,9 @@ template<typename Derived> class DenseBase
261
266
  /** \internal Represents a matrix with all coefficients equal to one another*/
262
267
  typedef CwiseNullaryOp<internal::scalar_constant_op<Scalar>,PlainObject> ConstantReturnType;
263
268
  /** \internal \deprecated Represents a vector with linearly spaced coefficients that allows sequential access only. */
264
- typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> SequentialLinSpacedReturnType;
269
+ EIGEN_DEPRECATED typedef CwiseNullaryOp<internal::linspaced_op<Scalar>,PlainObject> SequentialLinSpacedReturnType;
265
270
  /** \internal Represents a vector with linearly spaced coefficients that allows random access. */
266
- typedef CwiseNullaryOp<internal::linspaced_op<Scalar,PacketScalar>,PlainObject> RandomAccessLinSpacedReturnType;
271
+ typedef CwiseNullaryOp<internal::linspaced_op<Scalar>,PlainObject> RandomAccessLinSpacedReturnType;
267
272
  /** \internal the return type of MatrixBase::eigenvalues() */
268
273
  typedef Matrix<typename NumTraits<typename internal::traits<Derived>::Scalar>::Real, internal::traits<Derived>::ColsAtCompileTime, 1> EigenvaluesReturnType;
269
274
 
@@ -297,17 +302,17 @@ template<typename Derived> class DenseBase
297
302
  Derived& operator=(const ReturnByValue<OtherDerived>& func);
298
303
 
299
304
  /** \internal
300
- * Copies \a other into *this without evaluating other. \returns a reference to *this.
301
- * \deprecated */
305
+ * Copies \a other into *this without evaluating other. \returns a reference to *this. */
302
306
  template<typename OtherDerived>
303
- EIGEN_DEVICE_FUNC
307
+ /** \deprecated */
308
+ EIGEN_DEPRECATED EIGEN_DEVICE_FUNC
304
309
  Derived& lazyAssign(const DenseBase<OtherDerived>& other);
305
310
 
306
311
  EIGEN_DEVICE_FUNC
307
312
  CommaInitializer<Derived> operator<< (const Scalar& s);
308
313
 
309
- /** \deprecated it now returns \c *this */
310
314
  template<unsigned int Added,unsigned int Removed>
315
+ /** \deprecated it now returns \c *this */
311
316
  EIGEN_DEPRECATED
312
317
  const Derived& flagged() const
313
318
  { return derived(); }
@@ -332,12 +337,13 @@ template<typename Derived> class DenseBase
332
337
  EIGEN_DEVICE_FUNC static const ConstantReturnType
333
338
  Constant(const Scalar& value);
334
339
 
335
- EIGEN_DEVICE_FUNC static const SequentialLinSpacedReturnType
340
+ EIGEN_DEPRECATED EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
336
341
  LinSpaced(Sequential_t, Index size, const Scalar& low, const Scalar& high);
342
+ EIGEN_DEPRECATED EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
343
+ LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
344
+
337
345
  EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
338
346
  LinSpaced(Index size, const Scalar& low, const Scalar& high);
339
- EIGEN_DEVICE_FUNC static const SequentialLinSpacedReturnType
340
- LinSpaced(Sequential_t, const Scalar& low, const Scalar& high);
341
347
  EIGEN_DEVICE_FUNC static const RandomAccessLinSpacedReturnType
342
348
  LinSpaced(const Scalar& low, const Scalar& high);
343
349
 
@@ -369,7 +375,7 @@ template<typename Derived> class DenseBase
369
375
  template<typename OtherDerived> EIGEN_DEVICE_FUNC
370
376
  bool isApprox(const DenseBase<OtherDerived>& other,
371
377
  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
372
- EIGEN_DEVICE_FUNC
378
+ EIGEN_DEVICE_FUNC
373
379
  bool isMuchSmallerThan(const RealScalar& other,
374
380
  const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
375
381
  template<typename OtherDerived> EIGEN_DEVICE_FUNC
@@ -380,7 +386,7 @@ template<typename Derived> class DenseBase
380
386
  EIGEN_DEVICE_FUNC bool isConstant(const Scalar& value, const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
381
387
  EIGEN_DEVICE_FUNC bool isZero(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
382
388
  EIGEN_DEVICE_FUNC bool isOnes(const RealScalar& prec = NumTraits<Scalar>::dummy_precision()) const;
383
-
389
+
384
390
  inline bool hasNaN() const;
385
391
  inline bool allFinite() const;
386
392
 
@@ -394,8 +400,8 @@ template<typename Derived> class DenseBase
394
400
  *
395
401
  * Notice that in the case of a plain matrix or vector (not an expression) this function just returns
396
402
  * a const reference, in order to avoid a useless copy.
397
- *
398
- * \warning Be carefull with eval() and the auto C++ keyword, as detailed in this \link TopicPitfalls_auto_keyword page \endlink.
403
+ *
404
+ * \warning Be careful with eval() and the auto C++ keyword, as detailed in this \link TopicPitfalls_auto_keyword page \endlink.
399
405
  */
400
406
  EIGEN_DEVICE_FUNC
401
407
  EIGEN_STRONG_INLINE EvalReturnType eval() const
@@ -405,12 +411,12 @@ template<typename Derived> class DenseBase
405
411
  // size types on MSVC.
406
412
  return typename internal::eval<Derived>::type(derived());
407
413
  }
408
-
414
+
409
415
  /** swaps *this with the expression \a other.
410
416
  *
411
417
  */
412
418
  template<typename OtherDerived>
413
- EIGEN_DEVICE_FUNC
419
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
414
420
  void swap(const DenseBase<OtherDerived>& other)
415
421
  {
416
422
  EIGEN_STATIC_ASSERT(!OtherDerived::IsPlainObjectBase,THIS_EXPRESSION_IS_NOT_A_LVALUE__IT_IS_READ_ONLY);
@@ -422,7 +428,7 @@ template<typename Derived> class DenseBase
422
428
  *
423
429
  */
424
430
  template<typename OtherDerived>
425
- EIGEN_DEVICE_FUNC
431
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
426
432
  void swap(PlainObjectBase<OtherDerived>& other)
427
433
  {
428
434
  eigen_assert(rows()==other.rows() && cols()==other.cols());
@@ -443,18 +449,58 @@ template<typename Derived> class DenseBase
443
449
 
444
450
  EIGEN_DEVICE_FUNC Scalar prod() const;
445
451
 
452
+ template<int NaNPropagation>
446
453
  EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar minCoeff() const;
454
+ template<int NaNPropagation>
447
455
  EIGEN_DEVICE_FUNC typename internal::traits<Derived>::Scalar maxCoeff() const;
448
456
 
449
- template<typename IndexType> EIGEN_DEVICE_FUNC
457
+
458
+ // By default, the fastest version with undefined NaN propagation semantics is
459
+ // used.
460
+ // TODO(rmlarsen): Replace with default template argument when we move to
461
+ // c++11 or beyond.
462
+ EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar minCoeff() const {
463
+ return minCoeff<PropagateFast>();
464
+ }
465
+ EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar maxCoeff() const {
466
+ return maxCoeff<PropagateFast>();
467
+ }
468
+
469
+ template<int NaNPropagation, typename IndexType>
470
+ EIGEN_DEVICE_FUNC
450
471
  typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const;
451
- template<typename IndexType> EIGEN_DEVICE_FUNC
472
+ template<int NaNPropagation, typename IndexType>
473
+ EIGEN_DEVICE_FUNC
452
474
  typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const;
453
- template<typename IndexType> EIGEN_DEVICE_FUNC
475
+ template<int NaNPropagation, typename IndexType>
476
+ EIGEN_DEVICE_FUNC
454
477
  typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const;
455
- template<typename IndexType> EIGEN_DEVICE_FUNC
478
+ template<int NaNPropagation, typename IndexType>
479
+ EIGEN_DEVICE_FUNC
456
480
  typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const;
457
481
 
482
+ // TODO(rmlarsen): Replace these methods with a default template argument.
483
+ template<typename IndexType>
484
+ EIGEN_DEVICE_FUNC inline
485
+ typename internal::traits<Derived>::Scalar minCoeff(IndexType* row, IndexType* col) const {
486
+ return minCoeff<PropagateFast>(row, col);
487
+ }
488
+ template<typename IndexType>
489
+ EIGEN_DEVICE_FUNC inline
490
+ typename internal::traits<Derived>::Scalar maxCoeff(IndexType* row, IndexType* col) const {
491
+ return maxCoeff<PropagateFast>(row, col);
492
+ }
493
+ template<typename IndexType>
494
+ EIGEN_DEVICE_FUNC inline
495
+ typename internal::traits<Derived>::Scalar minCoeff(IndexType* index) const {
496
+ return minCoeff<PropagateFast>(index);
497
+ }
498
+ template<typename IndexType>
499
+ EIGEN_DEVICE_FUNC inline
500
+ typename internal::traits<Derived>::Scalar maxCoeff(IndexType* index) const {
501
+ return maxCoeff<PropagateFast>(index);
502
+ }
503
+
458
504
  template<typename BinaryOp>
459
505
  EIGEN_DEVICE_FUNC
460
506
  Scalar redux(const BinaryOp& func) const;
@@ -493,7 +539,7 @@ template<typename Derived> class DenseBase
493
539
  typedef VectorwiseOp<Derived, Vertical> ColwiseReturnType;
494
540
  typedef const VectorwiseOp<const Derived, Vertical> ConstColwiseReturnType;
495
541
 
496
- /** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
542
+ /** \returns a VectorwiseOp wrapper of *this for broadcasting and partial reductions
497
543
  *
498
544
  * Example: \include MatrixBase_rowwise.cpp
499
545
  * Output: \verbinclude MatrixBase_rowwise.out
@@ -506,7 +552,7 @@ template<typename Derived> class DenseBase
506
552
  }
507
553
  EIGEN_DEVICE_FUNC RowwiseReturnType rowwise();
508
554
 
509
- /** \returns a VectorwiseOp wrapper of *this providing additional partial reduction operations
555
+ /** \returns a VectorwiseOp wrapper of *this broadcasting and partial reductions
510
556
  *
511
557
  * Example: \include MatrixBase_colwise.cpp
512
558
  * Output: \verbinclude MatrixBase_colwise.out
@@ -524,16 +570,16 @@ template<typename Derived> class DenseBase
524
570
  static const RandomReturnType Random();
525
571
 
526
572
  template<typename ThenDerived,typename ElseDerived>
527
- const Select<Derived,ThenDerived,ElseDerived>
573
+ inline EIGEN_DEVICE_FUNC const Select<Derived,ThenDerived,ElseDerived>
528
574
  select(const DenseBase<ThenDerived>& thenMatrix,
529
575
  const DenseBase<ElseDerived>& elseMatrix) const;
530
576
 
531
577
  template<typename ThenDerived>
532
- inline const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
578
+ inline EIGEN_DEVICE_FUNC const Select<Derived,ThenDerived, typename ThenDerived::ConstantReturnType>
533
579
  select(const DenseBase<ThenDerived>& thenMatrix, const typename ThenDerived::Scalar& elseScalar) const;
534
580
 
535
581
  template<typename ElseDerived>
536
- inline const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
582
+ inline EIGEN_DEVICE_FUNC const Select<Derived, typename ElseDerived::ConstantReturnType, ElseDerived >
537
583
  select(const typename ElseDerived::Scalar& thenScalar, const DenseBase<ElseDerived>& elseMatrix) const;
538
584
 
539
585
  template<int p> RealScalar lpNorm() const;
@@ -567,16 +613,59 @@ template<typename Derived> class DenseBase
567
613
  }
568
614
  EIGEN_DEVICE_FUNC void reverseInPlace();
569
615
 
616
+ #ifdef EIGEN_PARSED_BY_DOXYGEN
617
+ /** STL-like <a href="https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator">RandomAccessIterator</a>
618
+ * iterator type as returned by the begin() and end() methods.
619
+ */
620
+ typedef random_access_iterator_type iterator;
621
+ /** This is the const version of iterator (aka read-only) */
622
+ typedef random_access_iterator_type const_iterator;
623
+ #else
624
+ typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
625
+ internal::pointer_based_stl_iterator<Derived>,
626
+ internal::generic_randaccess_stl_iterator<Derived>
627
+ >::type iterator_type;
628
+
629
+ typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
630
+ internal::pointer_based_stl_iterator<const Derived>,
631
+ internal::generic_randaccess_stl_iterator<const Derived>
632
+ >::type const_iterator_type;
633
+
634
+ // Stl-style iterators are supported only for vectors.
635
+
636
+ typedef typename internal::conditional< IsVectorAtCompileTime,
637
+ iterator_type,
638
+ void
639
+ >::type iterator;
640
+
641
+ typedef typename internal::conditional< IsVectorAtCompileTime,
642
+ const_iterator_type,
643
+ void
644
+ >::type const_iterator;
645
+ #endif
646
+
647
+ inline iterator begin();
648
+ inline const_iterator begin() const;
649
+ inline const_iterator cbegin() const;
650
+ inline iterator end();
651
+ inline const_iterator end() const;
652
+ inline const_iterator cend() const;
653
+
570
654
  #define EIGEN_CURRENT_STORAGE_BASE_CLASS Eigen::DenseBase
571
655
  #define EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
572
656
  #define EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF(COND)
657
+ #define EIGEN_DOC_UNARY_ADDONS(X,Y)
658
+ # include "../plugins/CommonCwiseUnaryOps.h"
573
659
  # include "../plugins/BlockMethods.h"
660
+ # include "../plugins/IndexedViewMethods.h"
661
+ # include "../plugins/ReshapedMethods.h"
574
662
  # ifdef EIGEN_DENSEBASE_PLUGIN
575
663
  # include EIGEN_DENSEBASE_PLUGIN
576
664
  # endif
577
665
  #undef EIGEN_CURRENT_STORAGE_BASE_CLASS
578
666
  #undef EIGEN_DOC_BLOCK_ADDONS_NOT_INNER_PANEL
579
667
  #undef EIGEN_DOC_BLOCK_ADDONS_INNER_PANEL_IF
668
+ #undef EIGEN_DOC_UNARY_ADDONS
580
669
 
581
670
  // disable the use of evalTo for dense objects with a nice compilation error
582
671
  template<typename Dest>
@@ -587,11 +676,12 @@ template<typename Derived> class DenseBase
587
676
  }
588
677
 
589
678
  protected:
679
+ EIGEN_DEFAULT_COPY_CONSTRUCTOR(DenseBase)
590
680
  /** Default constructor. Do nothing. */
591
681
  EIGEN_DEVICE_FUNC DenseBase()
592
682
  {
593
683
  /* Just checks for self-consistency of the flags.
594
- * Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
684
+ * Only do it when debugging Eigen, as this borders on paranoia and could slow compilation down
595
685
  */
596
686
  #ifdef EIGEN_INTERNAL_DEBUGGING
597
687
  EIGEN_STATIC_ASSERT((EIGEN_IMPLIES(MaxRowsAtCompileTime==1 && MaxColsAtCompileTime!=1, int(IsRowMajor))
@@ -22,11 +22,12 @@ template<typename T> struct add_const_on_value_type_if_arithmetic
22
22
  /** \brief Base class providing read-only coefficient access to matrices and arrays.
23
23
  * \ingroup Core_Module
24
24
  * \tparam Derived Type of the derived class
25
- * \tparam #ReadOnlyAccessors Constant indicating read-only access
25
+ *
26
+ * \note #ReadOnlyAccessors Constant indicating read-only access
26
27
  *
27
28
  * This class defines the \c operator() \c const function and friends, which can be used to read specific
28
29
  * entries of a matrix or array.
29
- *
30
+ *
30
31
  * \sa DenseCoeffsBase<Derived, WriteAccessors>, DenseCoeffsBase<Derived, DirectAccessors>,
31
32
  * \ref TopicClassHierarchy
32
33
  */
@@ -288,12 +289,13 @@ class DenseCoeffsBase<Derived,ReadOnlyAccessors> : public EigenBase<Derived>
288
289
  /** \brief Base class providing read/write coefficient access to matrices and arrays.
289
290
  * \ingroup Core_Module
290
291
  * \tparam Derived Type of the derived class
291
- * \tparam #WriteAccessors Constant indicating read/write access
292
+ *
293
+ * \note #WriteAccessors Constant indicating read/write access
292
294
  *
293
295
  * This class defines the non-const \c operator() function and friends, which can be used to write specific
294
296
  * entries of a matrix or array. This class inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which
295
297
  * defines the const variant for reading specific entries.
296
- *
298
+ *
297
299
  * \sa DenseCoeffsBase<Derived, DirectAccessors>, \ref TopicClassHierarchy
298
300
  */
299
301
  template<typename Derived>
@@ -466,7 +468,8 @@ class DenseCoeffsBase<Derived, WriteAccessors> : public DenseCoeffsBase<Derived,
466
468
  /** \brief Base class providing direct read-only coefficient access to matrices and arrays.
467
469
  * \ingroup Core_Module
468
470
  * \tparam Derived Type of the derived class
469
- * \tparam #DirectAccessors Constant indicating direct access
471
+ *
472
+ * \note #DirectAccessors Constant indicating direct access
470
473
  *
471
474
  * This class defines functions to work with strides which can be used to access entries directly. This class
472
475
  * inherits DenseCoeffsBase<Derived, ReadOnlyAccessors> which defines functions to access entries read-only using
@@ -492,7 +495,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
492
495
  *
493
496
  * \sa outerStride(), rowStride(), colStride()
494
497
  */
495
- EIGEN_DEVICE_FUNC
498
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
496
499
  inline Index innerStride() const
497
500
  {
498
501
  return derived().innerStride();
@@ -503,14 +506,14 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
503
506
  *
504
507
  * \sa innerStride(), rowStride(), colStride()
505
508
  */
506
- EIGEN_DEVICE_FUNC
509
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
507
510
  inline Index outerStride() const
508
511
  {
509
512
  return derived().outerStride();
510
513
  }
511
514
 
512
515
  // FIXME shall we remove it ?
513
- inline Index stride() const
516
+ EIGEN_CONSTEXPR inline Index stride() const
514
517
  {
515
518
  return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
516
519
  }
@@ -519,7 +522,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
519
522
  *
520
523
  * \sa innerStride(), outerStride(), colStride()
521
524
  */
522
- EIGEN_DEVICE_FUNC
525
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
523
526
  inline Index rowStride() const
524
527
  {
525
528
  return Derived::IsRowMajor ? outerStride() : innerStride();
@@ -529,7 +532,7 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
529
532
  *
530
533
  * \sa innerStride(), outerStride(), rowStride()
531
534
  */
532
- EIGEN_DEVICE_FUNC
535
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
533
536
  inline Index colStride() const
534
537
  {
535
538
  return Derived::IsRowMajor ? innerStride() : outerStride();
@@ -539,7 +542,8 @@ class DenseCoeffsBase<Derived, DirectAccessors> : public DenseCoeffsBase<Derived
539
542
  /** \brief Base class providing direct read/write coefficient access to matrices and arrays.
540
543
  * \ingroup Core_Module
541
544
  * \tparam Derived Type of the derived class
542
- * \tparam #DirectWriteAccessors Constant indicating direct access
545
+ *
546
+ * \note #DirectWriteAccessors Constant indicating direct access
543
547
  *
544
548
  * This class defines functions to work with strides which can be used to access entries directly. This class
545
549
  * inherits DenseCoeffsBase<Derived, WriteAccessors> which defines functions to access entries read/write using
@@ -566,8 +570,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
566
570
  *
567
571
  * \sa outerStride(), rowStride(), colStride()
568
572
  */
569
- EIGEN_DEVICE_FUNC
570
- inline Index innerStride() const
573
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
574
+ inline Index innerStride() const EIGEN_NOEXCEPT
571
575
  {
572
576
  return derived().innerStride();
573
577
  }
@@ -577,14 +581,14 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
577
581
  *
578
582
  * \sa innerStride(), rowStride(), colStride()
579
583
  */
580
- EIGEN_DEVICE_FUNC
581
- inline Index outerStride() const
584
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
585
+ inline Index outerStride() const EIGEN_NOEXCEPT
582
586
  {
583
587
  return derived().outerStride();
584
588
  }
585
589
 
586
590
  // FIXME shall we remove it ?
587
- inline Index stride() const
591
+ EIGEN_CONSTEXPR inline Index stride() const EIGEN_NOEXCEPT
588
592
  {
589
593
  return Derived::IsVectorAtCompileTime ? innerStride() : outerStride();
590
594
  }
@@ -593,8 +597,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
593
597
  *
594
598
  * \sa innerStride(), outerStride(), colStride()
595
599
  */
596
- EIGEN_DEVICE_FUNC
597
- inline Index rowStride() const
600
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
601
+ inline Index rowStride() const EIGEN_NOEXCEPT
598
602
  {
599
603
  return Derived::IsRowMajor ? outerStride() : innerStride();
600
604
  }
@@ -603,8 +607,8 @@ class DenseCoeffsBase<Derived, DirectWriteAccessors>
603
607
  *
604
608
  * \sa innerStride(), outerStride(), rowStride()
605
609
  */
606
- EIGEN_DEVICE_FUNC
607
- inline Index colStride() const
610
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
611
+ inline Index colStride() const EIGEN_NOEXCEPT
608
612
  {
609
613
  return Derived::IsRowMajor ? innerStride() : outerStride();
610
614
  }
@@ -615,7 +619,7 @@ namespace internal {
615
619
  template<int Alignment, typename Derived, bool JustReturnZero>
616
620
  struct first_aligned_impl
617
621
  {
618
- static inline Index run(const Derived&)
622
+ static EIGEN_CONSTEXPR inline Index run(const Derived&) EIGEN_NOEXCEPT
619
623
  { return 0; }
620
624
  };
621
625