tomoto 0.2.3 → 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 (347) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/README.md +8 -10
  4. data/ext/tomoto/extconf.rb +6 -2
  5. data/ext/tomoto/{ext.cpp → tomoto.cpp} +1 -1
  6. data/lib/tomoto/version.rb +1 -1
  7. data/lib/tomoto.rb +5 -1
  8. data/vendor/EigenRand/EigenRand/Core.h +10 -10
  9. data/vendor/EigenRand/EigenRand/Dists/Basic.h +208 -9
  10. data/vendor/EigenRand/EigenRand/Dists/Discrete.h +52 -31
  11. data/vendor/EigenRand/EigenRand/Dists/GammaPoisson.h +9 -8
  12. data/vendor/EigenRand/EigenRand/Dists/NormalExp.h +28 -21
  13. data/vendor/EigenRand/EigenRand/EigenRand +11 -6
  14. data/vendor/EigenRand/EigenRand/Macro.h +13 -7
  15. data/vendor/EigenRand/EigenRand/MorePacketMath.h +348 -740
  16. data/vendor/EigenRand/EigenRand/MvDists/Multinomial.h +5 -3
  17. data/vendor/EigenRand/EigenRand/MvDists/MvNormal.h +9 -3
  18. data/vendor/EigenRand/EigenRand/PacketFilter.h +11 -253
  19. data/vendor/EigenRand/EigenRand/PacketRandomEngine.h +21 -47
  20. data/vendor/EigenRand/EigenRand/RandUtils.h +50 -344
  21. data/vendor/EigenRand/EigenRand/arch/AVX/MorePacketMath.h +619 -0
  22. data/vendor/EigenRand/EigenRand/arch/AVX/PacketFilter.h +149 -0
  23. data/vendor/EigenRand/EigenRand/arch/AVX/RandUtils.h +228 -0
  24. data/vendor/EigenRand/EigenRand/arch/NEON/MorePacketMath.h +473 -0
  25. data/vendor/EigenRand/EigenRand/arch/NEON/PacketFilter.h +142 -0
  26. data/vendor/EigenRand/EigenRand/arch/NEON/RandUtils.h +126 -0
  27. data/vendor/EigenRand/EigenRand/arch/SSE/MorePacketMath.h +501 -0
  28. data/vendor/EigenRand/EigenRand/arch/SSE/PacketFilter.h +133 -0
  29. data/vendor/EigenRand/EigenRand/arch/SSE/RandUtils.h +120 -0
  30. data/vendor/EigenRand/EigenRand/doc.h +24 -12
  31. data/vendor/EigenRand/README.md +57 -4
  32. data/vendor/eigen/COPYING.APACHE +203 -0
  33. data/vendor/eigen/COPYING.BSD +1 -1
  34. data/vendor/eigen/COPYING.MINPACK +51 -52
  35. data/vendor/eigen/Eigen/Cholesky +0 -1
  36. data/vendor/eigen/Eigen/Core +112 -265
  37. data/vendor/eigen/Eigen/Eigenvalues +2 -3
  38. data/vendor/eigen/Eigen/Geometry +5 -8
  39. data/vendor/eigen/Eigen/Householder +0 -1
  40. data/vendor/eigen/Eigen/Jacobi +0 -1
  41. data/vendor/eigen/Eigen/KLUSupport +41 -0
  42. data/vendor/eigen/Eigen/LU +2 -5
  43. data/vendor/eigen/Eigen/OrderingMethods +0 -3
  44. data/vendor/eigen/Eigen/PaStiXSupport +1 -0
  45. data/vendor/eigen/Eigen/PardisoSupport +0 -0
  46. data/vendor/eigen/Eigen/QR +2 -3
  47. data/vendor/eigen/Eigen/QtAlignedMalloc +0 -1
  48. data/vendor/eigen/Eigen/SVD +0 -1
  49. data/vendor/eigen/Eigen/Sparse +0 -2
  50. data/vendor/eigen/Eigen/SparseCholesky +0 -8
  51. data/vendor/eigen/Eigen/SparseLU +4 -0
  52. data/vendor/eigen/Eigen/SparseQR +0 -1
  53. data/vendor/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
  54. data/vendor/eigen/Eigen/src/Cholesky/LLT.h +39 -23
  55. data/vendor/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
  56. data/vendor/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
  57. data/vendor/eigen/Eigen/src/Core/Array.h +99 -11
  58. data/vendor/eigen/Eigen/src/Core/ArrayBase.h +3 -3
  59. data/vendor/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
  60. data/vendor/eigen/Eigen/src/Core/Assign.h +1 -1
  61. data/vendor/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
  62. data/vendor/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
  63. data/vendor/eigen/Eigen/src/Core/BandMatrix.h +16 -16
  64. data/vendor/eigen/Eigen/src/Core/Block.h +56 -60
  65. data/vendor/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
  66. data/vendor/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
  67. data/vendor/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
  68. data/vendor/eigen/Eigen/src/Core/CoreIterators.h +5 -0
  69. data/vendor/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
  70. data/vendor/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
  71. data/vendor/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
  72. data/vendor/eigen/Eigen/src/Core/CwiseUnaryView.h +14 -10
  73. data/vendor/eigen/Eigen/src/Core/DenseBase.h +132 -42
  74. data/vendor/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
  75. data/vendor/eigen/Eigen/src/Core/DenseStorage.h +153 -71
  76. data/vendor/eigen/Eigen/src/Core/Diagonal.h +21 -23
  77. data/vendor/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
  78. data/vendor/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
  79. data/vendor/eigen/Eigen/src/Core/Dot.h +10 -10
  80. data/vendor/eigen/Eigen/src/Core/EigenBase.h +10 -9
  81. data/vendor/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
  82. data/vendor/eigen/Eigen/src/Core/Fuzzy.h +3 -3
  83. data/vendor/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
  84. data/vendor/eigen/Eigen/src/Core/GenericPacketMath.h +599 -152
  85. data/vendor/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
  86. data/vendor/eigen/Eigen/src/Core/IO.h +40 -7
  87. data/vendor/eigen/Eigen/src/Core/IndexedView.h +237 -0
  88. data/vendor/eigen/Eigen/src/Core/Inverse.h +9 -10
  89. data/vendor/eigen/Eigen/src/Core/Map.h +7 -7
  90. data/vendor/eigen/Eigen/src/Core/MapBase.h +10 -3
  91. data/vendor/eigen/Eigen/src/Core/MathFunctions.h +767 -125
  92. data/vendor/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
  93. data/vendor/eigen/Eigen/src/Core/Matrix.h +131 -25
  94. data/vendor/eigen/Eigen/src/Core/MatrixBase.h +21 -3
  95. data/vendor/eigen/Eigen/src/Core/NestByValue.h +25 -50
  96. data/vendor/eigen/Eigen/src/Core/NoAlias.h +4 -3
  97. data/vendor/eigen/Eigen/src/Core/NumTraits.h +107 -20
  98. data/vendor/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  99. data/vendor/eigen/Eigen/src/Core/PermutationMatrix.h +3 -31
  100. data/vendor/eigen/Eigen/src/Core/PlainObjectBase.h +152 -59
  101. data/vendor/eigen/Eigen/src/Core/Product.h +30 -25
  102. data/vendor/eigen/Eigen/src/Core/ProductEvaluators.h +192 -125
  103. data/vendor/eigen/Eigen/src/Core/Random.h +37 -1
  104. data/vendor/eigen/Eigen/src/Core/Redux.h +180 -170
  105. data/vendor/eigen/Eigen/src/Core/Ref.h +121 -23
  106. data/vendor/eigen/Eigen/src/Core/Replicate.h +8 -8
  107. data/vendor/eigen/Eigen/src/Core/Reshaped.h +454 -0
  108. data/vendor/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
  109. data/vendor/eigen/Eigen/src/Core/Reverse.h +18 -12
  110. data/vendor/eigen/Eigen/src/Core/Select.h +8 -6
  111. data/vendor/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
  112. data/vendor/eigen/Eigen/src/Core/Solve.h +14 -14
  113. data/vendor/eigen/Eigen/src/Core/SolveTriangular.h +16 -16
  114. data/vendor/eigen/Eigen/src/Core/SolverBase.h +41 -3
  115. data/vendor/eigen/Eigen/src/Core/StableNorm.h +100 -70
  116. data/vendor/eigen/Eigen/src/Core/StlIterators.h +463 -0
  117. data/vendor/eigen/Eigen/src/Core/Stride.h +9 -4
  118. data/vendor/eigen/Eigen/src/Core/Swap.h +5 -4
  119. data/vendor/eigen/Eigen/src/Core/Transpose.h +88 -27
  120. data/vendor/eigen/Eigen/src/Core/Transpositions.h +26 -47
  121. data/vendor/eigen/Eigen/src/Core/TriangularMatrix.h +93 -75
  122. data/vendor/eigen/Eigen/src/Core/VectorBlock.h +5 -5
  123. data/vendor/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
  124. data/vendor/eigen/Eigen/src/Core/Visitor.h +137 -29
  125. data/vendor/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
  126. data/vendor/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
  127. data/vendor/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
  128. data/vendor/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
  129. data/vendor/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  130. data/vendor/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +207 -236
  131. data/vendor/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1482 -495
  132. data/vendor/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  133. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
  134. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
  135. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  136. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  137. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  138. data/vendor/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
  139. data/vendor/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
  140. data/vendor/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  141. data/vendor/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
  142. data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  143. data/vendor/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  144. data/vendor/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
  145. data/vendor/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
  146. data/vendor/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  147. data/vendor/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
  148. data/vendor/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  149. data/vendor/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  150. data/vendor/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  151. data/vendor/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  152. data/vendor/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  153. data/vendor/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  154. data/vendor/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
  155. data/vendor/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  156. data/vendor/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
  157. data/vendor/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
  158. data/vendor/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  159. data/vendor/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
  160. data/vendor/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
  161. data/vendor/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
  162. data/vendor/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
  163. data/vendor/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  164. data/vendor/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  165. data/vendor/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  166. data/vendor/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  167. data/vendor/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  168. data/vendor/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  169. data/vendor/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  170. data/vendor/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  171. data/vendor/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
  172. data/vendor/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
  173. data/vendor/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
  174. data/vendor/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
  175. data/vendor/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
  176. data/vendor/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
  177. data/vendor/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
  178. data/vendor/eigen/Eigen/src/Core/functors/UnaryFunctors.h +355 -16
  179. data/vendor/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1075 -586
  180. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +49 -24
  181. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +41 -35
  182. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +6 -6
  183. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +4 -2
  184. data/vendor/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
  185. data/vendor/eigen/Eigen/src/Core/products/Parallelizer.h +22 -5
  186. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +53 -30
  187. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +16 -8
  188. data/vendor/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
  189. data/vendor/eigen/Eigen/src/Core/products/SelfadjointProduct.h +4 -4
  190. data/vendor/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
  191. data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +33 -27
  192. data/vendor/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +14 -12
  193. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +36 -34
  194. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +8 -4
  195. data/vendor/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
  196. data/vendor/eigen/Eigen/src/Core/util/BlasUtil.h +304 -119
  197. data/vendor/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  198. data/vendor/eigen/Eigen/src/Core/util/Constants.h +25 -9
  199. data/vendor/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +26 -3
  200. data/vendor/eigen/Eigen/src/Core/util/ForwardDeclarations.h +29 -9
  201. data/vendor/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  202. data/vendor/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
  203. data/vendor/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
  204. data/vendor/eigen/Eigen/src/Core/util/Macros.h +709 -246
  205. data/vendor/eigen/Eigen/src/Core/util/Memory.h +222 -52
  206. data/vendor/eigen/Eigen/src/Core/util/Meta.h +355 -77
  207. data/vendor/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +5 -1
  208. data/vendor/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  209. data/vendor/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
  210. data/vendor/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  211. data/vendor/eigen/Eigen/src/Core/util/XprHelper.h +65 -30
  212. data/vendor/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
  213. data/vendor/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +7 -4
  214. data/vendor/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
  215. data/vendor/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
  216. data/vendor/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
  217. data/vendor/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
  218. data/vendor/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
  219. data/vendor/eigen/Eigen/src/Eigenvalues/RealSchur.h +21 -9
  220. data/vendor/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +77 -43
  221. data/vendor/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
  222. data/vendor/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
  223. data/vendor/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
  224. data/vendor/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
  225. data/vendor/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
  226. data/vendor/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
  227. data/vendor/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
  228. data/vendor/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
  229. data/vendor/eigen/Eigen/src/Geometry/Quaternion.h +70 -14
  230. data/vendor/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
  231. data/vendor/eigen/Eigen/src/Geometry/Scaling.h +23 -5
  232. data/vendor/eigen/Eigen/src/Geometry/Transform.h +88 -67
  233. data/vendor/eigen/Eigen/src/Geometry/Translation.h +6 -12
  234. data/vendor/eigen/Eigen/src/Geometry/Umeyama.h +1 -1
  235. data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  236. data/vendor/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
  237. data/vendor/eigen/Eigen/src/Householder/Householder.h +8 -4
  238. data/vendor/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
  239. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
  240. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
  241. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
  242. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
  243. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
  244. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
  245. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
  246. data/vendor/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
  247. data/vendor/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
  248. data/vendor/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  249. data/vendor/eigen/Eigen/src/LU/Determinant.h +35 -19
  250. data/vendor/eigen/Eigen/src/LU/FullPivLU.h +29 -43
  251. data/vendor/eigen/Eigen/src/LU/InverseImpl.h +25 -8
  252. data/vendor/eigen/Eigen/src/LU/PartialPivLU.h +71 -58
  253. data/vendor/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
  254. data/vendor/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
  255. data/vendor/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
  256. data/vendor/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
  257. data/vendor/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
  258. data/vendor/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +9 -7
  259. data/vendor/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
  260. data/vendor/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
  261. data/vendor/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
  262. data/vendor/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
  263. data/vendor/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
  264. data/vendor/eigen/Eigen/src/SVD/BDCSVD.h +183 -63
  265. data/vendor/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
  266. data/vendor/eigen/Eigen/src/SVD/SVDBase.h +83 -22
  267. data/vendor/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
  268. data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +17 -9
  269. data/vendor/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +12 -37
  270. data/vendor/eigen/Eigen/src/SparseCore/AmbiVector.h +3 -2
  271. data/vendor/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
  272. data/vendor/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
  273. data/vendor/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
  274. data/vendor/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
  275. data/vendor/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
  276. data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
  277. data/vendor/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +4 -2
  278. data/vendor/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
  279. data/vendor/eigen/Eigen/src/SparseCore/SparseMatrix.h +126 -11
  280. data/vendor/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
  281. data/vendor/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
  282. data/vendor/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
  283. data/vendor/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +5 -2
  284. data/vendor/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
  285. data/vendor/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
  286. data/vendor/eigen/Eigen/src/SparseCore/SparseView.h +1 -0
  287. data/vendor/eigen/Eigen/src/SparseLU/SparseLU.h +162 -12
  288. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
  289. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
  290. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
  291. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
  292. data/vendor/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
  293. data/vendor/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
  294. data/vendor/eigen/Eigen/src/StlSupport/StdDeque.h +2 -12
  295. data/vendor/eigen/Eigen/src/StlSupport/StdList.h +2 -2
  296. data/vendor/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
  297. data/vendor/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
  298. data/vendor/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
  299. data/vendor/eigen/Eigen/src/misc/lapacke.h +5 -4
  300. data/vendor/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +28 -2
  301. data/vendor/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
  302. data/vendor/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
  303. data/vendor/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
  304. data/vendor/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  305. data/vendor/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
  306. data/vendor/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
  307. data/vendor/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
  308. data/vendor/eigen/README.md +2 -0
  309. data/vendor/eigen/bench/btl/README +1 -1
  310. data/vendor/eigen/bench/tensors/README +6 -7
  311. data/vendor/eigen/ci/README.md +56 -0
  312. data/vendor/eigen/demos/mix_eigen_and_c/README +1 -1
  313. data/vendor/eigen/unsupported/Eigen/CXX11/src/Tensor/README.md +213 -158
  314. data/vendor/eigen/unsupported/README.txt +1 -1
  315. data/vendor/tomotopy/README.kr.rst +21 -0
  316. data/vendor/tomotopy/README.rst +20 -0
  317. data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +2 -2
  318. data/vendor/tomotopy/src/Labeling/Phraser.hpp +1 -1
  319. data/vendor/tomotopy/src/TopicModel/CTModel.hpp +2 -1
  320. data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +2 -1
  321. data/vendor/tomotopy/src/TopicModel/DTModel.hpp +1 -1
  322. data/vendor/tomotopy/src/TopicModel/GDMRModel.hpp +2 -2
  323. data/vendor/tomotopy/src/TopicModel/HDP.h +1 -0
  324. data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +53 -2
  325. data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +1 -1
  326. data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +1 -0
  327. data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +2 -2
  328. data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +16 -5
  329. data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +1 -0
  330. data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +1 -0
  331. data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +1 -0
  332. data/vendor/tomotopy/src/TopicModel/PT.h +3 -1
  333. data/vendor/tomotopy/src/TopicModel/PTModel.hpp +31 -1
  334. data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +2 -2
  335. data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +7 -5
  336. data/vendor/tomotopy/src/Utils/EigenAddonOps.hpp +36 -1
  337. data/vendor/tomotopy/src/Utils/exception.h +6 -0
  338. data/vendor/tomotopy/src/Utils/sample.hpp +14 -12
  339. data/vendor/tomotopy/src/Utils/sse_gamma.h +0 -3
  340. metadata +60 -14
  341. data/vendor/eigen/Eigen/CMakeLists.txt +0 -19
  342. data/vendor/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -674
  343. data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  344. data/vendor/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  345. data/vendor/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  346. data/vendor/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  347. data/vendor/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
@@ -11,7 +11,7 @@
11
11
  #ifndef EIGEN_TRANSPOSE_H
12
12
  #define EIGEN_TRANSPOSE_H
13
13
 
14
- namespace Eigen {
14
+ namespace Eigen {
15
15
 
16
16
  namespace internal {
17
17
  template<typename MatrixType>
@@ -61,24 +61,27 @@ template<typename MatrixType> class Transpose
61
61
  typedef typename internal::remove_all<MatrixType>::type NestedExpression;
62
62
 
63
63
  EIGEN_DEVICE_FUNC
64
- explicit inline Transpose(MatrixType& matrix) : m_matrix(matrix) {}
64
+ explicit EIGEN_STRONG_INLINE Transpose(MatrixType& matrix) : m_matrix(matrix) {}
65
65
 
66
66
  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
67
67
 
68
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.cols(); }
69
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.rows(); }
68
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
69
+ Index rows() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
70
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
71
+ Index cols() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
70
72
 
71
73
  /** \returns the nested expression */
72
- EIGEN_DEVICE_FUNC
74
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
73
75
  const typename internal::remove_all<MatrixTypeNested>::type&
74
76
  nestedExpression() const { return m_matrix; }
75
77
 
76
78
  /** \returns the nested expression */
77
- EIGEN_DEVICE_FUNC
79
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
78
80
  typename internal::remove_reference<MatrixTypeNested>::type&
79
81
  nestedExpression() { return m_matrix; }
80
82
 
81
83
  /** \internal */
84
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
82
85
  void resize(Index nrows, Index ncols) {
83
86
  m_matrix.resize(ncols,nrows);
84
87
  }
@@ -122,8 +125,10 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
122
125
  EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
123
126
  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
124
127
 
125
- EIGEN_DEVICE_FUNC inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
126
- EIGEN_DEVICE_FUNC inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
128
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
129
+ Index innerStride() const { return derived().nestedExpression().innerStride(); }
130
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
131
+ Index outerStride() const { return derived().nestedExpression().outerStride(); }
127
132
 
128
133
  typedef typename internal::conditional<
129
134
  internal::is_lvalue<MatrixType>::value,
@@ -131,21 +136,25 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
131
136
  const Scalar
132
137
  >::type ScalarWithConstIfNotLvalue;
133
138
 
134
- EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
135
- EIGEN_DEVICE_FUNC inline const Scalar* data() const { return derived().nestedExpression().data(); }
139
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
140
+ ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
141
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
142
+ const Scalar* data() const { return derived().nestedExpression().data(); }
136
143
 
137
144
  // FIXME: shall we keep the const version of coeffRef?
138
- EIGEN_DEVICE_FUNC
139
- inline const Scalar& coeffRef(Index rowId, Index colId) const
145
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
146
+ const Scalar& coeffRef(Index rowId, Index colId) const
140
147
  {
141
148
  return derived().nestedExpression().coeffRef(colId, rowId);
142
149
  }
143
150
 
144
- EIGEN_DEVICE_FUNC
145
- inline const Scalar& coeffRef(Index index) const
151
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
152
+ const Scalar& coeffRef(Index index) const
146
153
  {
147
154
  return derived().nestedExpression().coeffRef(index);
148
155
  }
156
+ protected:
157
+ EIGEN_DEFAULT_EMPTY_CONSTRUCTOR_AND_DESTRUCTOR(TransposeImpl)
149
158
  };
150
159
 
151
160
  /** \returns an expression of the transpose of *this.
@@ -168,7 +177,8 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
168
177
  *
169
178
  * \sa transposeInPlace(), adjoint() */
170
179
  template<typename Derived>
171
- inline Transpose<Derived>
180
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
181
+ Transpose<Derived>
172
182
  DenseBase<Derived>::transpose()
173
183
  {
174
184
  return TransposeReturnType(derived());
@@ -180,7 +190,8 @@ DenseBase<Derived>::transpose()
180
190
  *
181
191
  * \sa transposeInPlace(), adjoint() */
182
192
  template<typename Derived>
183
- inline typename DenseBase<Derived>::ConstTransposeReturnType
193
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
194
+ typename DenseBase<Derived>::ConstTransposeReturnType
184
195
  DenseBase<Derived>::transpose() const
185
196
  {
186
197
  return ConstTransposeReturnType(derived());
@@ -206,7 +217,7 @@ DenseBase<Derived>::transpose() const
206
217
  *
207
218
  * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
208
219
  template<typename Derived>
209
- inline const typename MatrixBase<Derived>::AdjointReturnType
220
+ EIGEN_DEVICE_FUNC inline const typename MatrixBase<Derived>::AdjointReturnType
210
221
  MatrixBase<Derived>::adjoint() const
211
222
  {
212
223
  return AdjointReturnType(this->transpose());
@@ -228,11 +239,10 @@ struct inplace_transpose_selector;
228
239
  template<typename MatrixType>
229
240
  struct inplace_transpose_selector<MatrixType,true,false> { // square matrix
230
241
  static void run(MatrixType& m) {
231
- m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
242
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
232
243
  }
233
244
  };
234
245
 
235
- // TODO: vectorized path is currently limited to LargestPacketSize x LargestPacketSize cases only.
236
246
  template<typename MatrixType>
237
247
  struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x PacketSize
238
248
  static void run(MatrixType& m) {
@@ -249,16 +259,66 @@ struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x Packet
249
259
  }
250
260
  };
251
261
 
262
+
263
+ template <typename MatrixType, Index Alignment>
264
+ void BlockedInPlaceTranspose(MatrixType& m) {
265
+ typedef typename MatrixType::Scalar Scalar;
266
+ typedef typename internal::packet_traits<typename MatrixType::Scalar>::type Packet;
267
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
268
+ eigen_assert(m.rows() == m.cols());
269
+ int row_start = 0;
270
+ for (; row_start + PacketSize <= m.rows(); row_start += PacketSize) {
271
+ for (int col_start = row_start; col_start + PacketSize <= m.cols(); col_start += PacketSize) {
272
+ PacketBlock<Packet> A;
273
+ if (row_start == col_start) {
274
+ for (Index i=0; i<PacketSize; ++i)
275
+ A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
276
+ internal::ptranspose(A);
277
+ for (Index i=0; i<PacketSize; ++i)
278
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), A.packet[i]);
279
+ } else {
280
+ PacketBlock<Packet> B;
281
+ for (Index i=0; i<PacketSize; ++i) {
282
+ A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
283
+ B.packet[i] = m.template packetByOuterInner<Alignment>(col_start + i, row_start);
284
+ }
285
+ internal::ptranspose(A);
286
+ internal::ptranspose(B);
287
+ for (Index i=0; i<PacketSize; ++i) {
288
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), B.packet[i]);
289
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(col_start + i, row_start), m.colIndexByOuterInner(col_start + i,row_start), A.packet[i]);
290
+ }
291
+ }
292
+ }
293
+ }
294
+ for (Index row = row_start; row < m.rows(); ++row) {
295
+ m.matrix().row(row).head(row).swap(
296
+ m.matrix().col(row).head(row).transpose());
297
+ }
298
+ }
299
+
252
300
  template<typename MatrixType,bool MatchPacketSize>
253
- struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square matrix
301
+ struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square or dynamic matrix
254
302
  static void run(MatrixType& m) {
255
- if (m.rows()==m.cols())
256
- m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
257
- else
303
+ typedef typename MatrixType::Scalar Scalar;
304
+ if (m.rows() == m.cols()) {
305
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
306
+ if (!NumTraits<Scalar>::IsComplex && m.rows() >= PacketSize) {
307
+ if ((m.rows() % PacketSize) == 0)
308
+ BlockedInPlaceTranspose<MatrixType,internal::evaluator<MatrixType>::Alignment>(m);
309
+ else
310
+ BlockedInPlaceTranspose<MatrixType,Unaligned>(m);
311
+ }
312
+ else {
313
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
314
+ }
315
+ } else {
258
316
  m = m.transpose().eval();
317
+ }
259
318
  }
260
319
  };
261
320
 
321
+
262
322
  } // end namespace internal
263
323
 
264
324
  /** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
@@ -276,12 +336,12 @@ struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non squ
276
336
  * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
277
337
  * If you just need the transpose of a matrix, use transpose().
278
338
  *
279
- * \note if the matrix is not square, then \c *this must be a resizable matrix.
339
+ * \note if the matrix is not square, then \c *this must be a resizable matrix.
280
340
  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
281
341
  *
282
342
  * \sa transpose(), adjoint(), adjointInPlace() */
283
343
  template<typename Derived>
284
- inline void DenseBase<Derived>::transposeInPlace()
344
+ EIGEN_DEVICE_FUNC inline void DenseBase<Derived>::transposeInPlace()
285
345
  {
286
346
  eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
287
347
  && "transposeInPlace() called on a non-square non-resizable matrix");
@@ -312,7 +372,7 @@ inline void DenseBase<Derived>::transposeInPlace()
312
372
  *
313
373
  * \sa transpose(), adjoint(), transposeInPlace() */
314
374
  template<typename Derived>
315
- inline void MatrixBase<Derived>::adjointInPlace()
375
+ EIGEN_DEVICE_FUNC inline void MatrixBase<Derived>::adjointInPlace()
316
376
  {
317
377
  derived() = adjoint().eval();
318
378
  }
@@ -391,7 +451,8 @@ struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
391
451
  template<typename Dst, typename Src>
392
452
  void check_for_aliasing(const Dst &dst, const Src &src)
393
453
  {
394
- internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
454
+ if((!Dst::IsVectorAtCompileTime) && dst.rows()>1 && dst.cols()>1)
455
+ internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
395
456
  }
396
457
 
397
458
  } // end namespace internal
@@ -10,20 +10,22 @@
10
10
  #ifndef EIGEN_TRANSPOSITIONS_H
11
11
  #define EIGEN_TRANSPOSITIONS_H
12
12
 
13
- namespace Eigen {
13
+ namespace Eigen {
14
14
 
15
15
  template<typename Derived>
16
16
  class TranspositionsBase
17
17
  {
18
18
  typedef internal::traits<Derived> Traits;
19
-
19
+
20
20
  public:
21
21
 
22
22
  typedef typename Traits::IndicesType IndicesType;
23
23
  typedef typename IndicesType::Scalar StorageIndex;
24
24
  typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
25
25
 
26
+ EIGEN_DEVICE_FUNC
26
27
  Derived& derived() { return *static_cast<Derived*>(this); }
28
+ EIGEN_DEVICE_FUNC
27
29
  const Derived& derived() const { return *static_cast<const Derived*>(this); }
28
30
 
29
31
  /** Copies the \a other transpositions into \c *this */
@@ -33,26 +35,19 @@ class TranspositionsBase
33
35
  indices() = other.indices();
34
36
  return derived();
35
37
  }
36
-
37
- #ifndef EIGEN_PARSED_BY_DOXYGEN
38
- /** This is a special case of the templated operator=. Its purpose is to
39
- * prevent a default operator= from hiding the templated operator=.
40
- */
41
- Derived& operator=(const TranspositionsBase& other)
42
- {
43
- indices() = other.indices();
44
- return derived();
45
- }
46
- #endif
47
38
 
48
39
  /** \returns the number of transpositions */
40
+ EIGEN_DEVICE_FUNC
49
41
  Index size() const { return indices().size(); }
50
42
  /** \returns the number of rows of the equivalent permutation matrix */
43
+ EIGEN_DEVICE_FUNC
51
44
  Index rows() const { return indices().size(); }
52
45
  /** \returns the number of columns of the equivalent permutation matrix */
46
+ EIGEN_DEVICE_FUNC
53
47
  Index cols() const { return indices().size(); }
54
48
 
55
49
  /** Direct access to the underlying index vector */
50
+ EIGEN_DEVICE_FUNC
56
51
  inline const StorageIndex& coeff(Index i) const { return indices().coeff(i); }
57
52
  /** Direct access to the underlying index vector */
58
53
  inline StorageIndex& coeffRef(Index i) { return indices().coeffRef(i); }
@@ -66,8 +61,10 @@ class TranspositionsBase
66
61
  inline StorageIndex& operator[](Index i) { return indices()(i); }
67
62
 
68
63
  /** const version of indices(). */
64
+ EIGEN_DEVICE_FUNC
69
65
  const IndicesType& indices() const { return derived().indices(); }
70
66
  /** \returns a reference to the stored array representing the transpositions. */
67
+ EIGEN_DEVICE_FUNC
71
68
  IndicesType& indices() { return derived().indices(); }
72
69
 
73
70
  /** Resizes to given size. */
@@ -84,7 +81,7 @@ class TranspositionsBase
84
81
  }
85
82
 
86
83
  // FIXME: do we want such methods ?
87
- // might be usefull when the target matrix expression is complex, e.g.:
84
+ // might be useful when the target matrix expression is complex, e.g.:
88
85
  // object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
89
86
  /*
90
87
  template<typename MatrixType>
@@ -171,12 +168,6 @@ class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTim
171
168
  inline Transpositions(const TranspositionsBase<OtherDerived>& other)
172
169
  : m_indices(other.indices()) {}
173
170
 
174
- #ifndef EIGEN_PARSED_BY_DOXYGEN
175
- /** Standard copy constructor. Defined only to prevent a default copy constructor
176
- * from hiding the other templated constructor */
177
- inline Transpositions(const Transpositions& other) : m_indices(other.indices()) {}
178
- #endif
179
-
180
171
  /** Generic constructor from expression of the transposition indices. */
181
172
  template<typename Other>
182
173
  explicit inline Transpositions(const MatrixBase<Other>& indices) : m_indices(indices)
@@ -189,25 +180,16 @@ class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTim
189
180
  return Base::operator=(other);
190
181
  }
191
182
 
192
- #ifndef EIGEN_PARSED_BY_DOXYGEN
193
- /** This is a special case of the templated operator=. Its purpose is to
194
- * prevent a default operator= from hiding the templated operator=.
195
- */
196
- Transpositions& operator=(const Transpositions& other)
197
- {
198
- m_indices = other.m_indices;
199
- return *this;
200
- }
201
- #endif
202
-
203
183
  /** Constructs an uninitialized permutation matrix of given size.
204
184
  */
205
185
  inline Transpositions(Index size) : m_indices(size)
206
186
  {}
207
187
 
208
188
  /** const version of indices(). */
189
+ EIGEN_DEVICE_FUNC
209
190
  const IndicesType& indices() const { return m_indices; }
210
191
  /** \returns a reference to the stored array representing the transpositions. */
192
+ EIGEN_DEVICE_FUNC
211
193
  IndicesType& indices() { return m_indices; }
212
194
 
213
195
  protected:
@@ -265,9 +247,11 @@ class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,P
265
247
  #endif
266
248
 
267
249
  /** const version of indices(). */
250
+ EIGEN_DEVICE_FUNC
268
251
  const IndicesType& indices() const { return m_indices; }
269
-
252
+
270
253
  /** \returns a reference to the stored array representing the transpositions. */
254
+ EIGEN_DEVICE_FUNC
271
255
  IndicesType& indices() { return m_indices; }
272
256
 
273
257
  protected:
@@ -306,21 +290,12 @@ class TranspositionsWrapper
306
290
  return Base::operator=(other);
307
291
  }
308
292
 
309
- #ifndef EIGEN_PARSED_BY_DOXYGEN
310
- /** This is a special case of the templated operator=. Its purpose is to
311
- * prevent a default operator= from hiding the templated operator=.
312
- */
313
- TranspositionsWrapper& operator=(const TranspositionsWrapper& other)
314
- {
315
- m_indices = other.m_indices;
316
- return *this;
317
- }
318
- #endif
319
-
320
293
  /** const version of indices(). */
294
+ EIGEN_DEVICE_FUNC
321
295
  const IndicesType& indices() const { return m_indices; }
322
296
 
323
297
  /** \returns a reference to the stored array representing the transpositions. */
298
+ EIGEN_DEVICE_FUNC
324
299
  IndicesType& indices() { return m_indices; }
325
300
 
326
301
  protected:
@@ -374,9 +349,12 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
374
349
 
375
350
  explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
376
351
 
377
- Index size() const { return m_transpositions.size(); }
378
- Index rows() const { return m_transpositions.size(); }
379
- Index cols() const { return m_transpositions.size(); }
352
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
353
+ Index size() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
354
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
355
+ Index rows() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
356
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
357
+ Index cols() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
380
358
 
381
359
  /** \returns the \a matrix with the inverse transpositions applied to the columns.
382
360
  */
@@ -395,7 +373,8 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
395
373
  {
396
374
  return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
397
375
  }
398
-
376
+
377
+ EIGEN_DEVICE_FUNC
399
378
  const TranspositionType& nestedExpression() const { return m_transpositions; }
400
379
 
401
380
  protected: