ruby-eigen 0.0.9 → 0.0.10.pre1

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 (293) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +22 -0
  3. data/README.md +21 -0
  4. data/ext/eigen/eigen3/COPYING.BSD +26 -0
  5. data/ext/eigen/eigen3/COPYING.MPL2 +373 -0
  6. data/ext/eigen/eigen3/COPYING.README +18 -0
  7. data/ext/eigen/eigen3/Eigen/Array +11 -0
  8. data/ext/eigen/eigen3/Eigen/Cholesky +32 -0
  9. data/ext/eigen/eigen3/Eigen/CholmodSupport +45 -0
  10. data/ext/eigen/eigen3/Eigen/Core +376 -0
  11. data/ext/eigen/eigen3/Eigen/Dense +7 -0
  12. data/ext/eigen/eigen3/Eigen/Eigen +2 -0
  13. data/ext/eigen/eigen3/Eigen/Eigen2Support +95 -0
  14. data/ext/eigen/eigen3/Eigen/Eigenvalues +48 -0
  15. data/ext/eigen/eigen3/Eigen/Geometry +63 -0
  16. data/ext/eigen/eigen3/Eigen/Householder +23 -0
  17. data/ext/eigen/eigen3/Eigen/IterativeLinearSolvers +40 -0
  18. data/ext/eigen/eigen3/Eigen/Jacobi +26 -0
  19. data/ext/eigen/eigen3/Eigen/LU +41 -0
  20. data/ext/eigen/eigen3/Eigen/LeastSquares +32 -0
  21. data/ext/eigen/eigen3/Eigen/MetisSupport +28 -0
  22. data/ext/eigen/eigen3/Eigen/PaStiXSupport +46 -0
  23. data/ext/eigen/eigen3/Eigen/PardisoSupport +30 -0
  24. data/ext/eigen/eigen3/Eigen/QR +45 -0
  25. data/ext/eigen/eigen3/Eigen/QtAlignedMalloc +34 -0
  26. data/ext/eigen/eigen3/Eigen/SPQRSupport +29 -0
  27. data/ext/eigen/eigen3/Eigen/SVD +37 -0
  28. data/ext/eigen/eigen3/Eigen/Sparse +27 -0
  29. data/ext/eigen/eigen3/Eigen/SparseCore +64 -0
  30. data/ext/eigen/eigen3/Eigen/SparseLU +49 -0
  31. data/ext/eigen/eigen3/Eigen/SparseQR +33 -0
  32. data/ext/eigen/eigen3/Eigen/StdDeque +27 -0
  33. data/ext/eigen/eigen3/Eigen/StdList +26 -0
  34. data/ext/eigen/eigen3/Eigen/StdVector +27 -0
  35. data/ext/eigen/eigen3/Eigen/SuperLUSupport +59 -0
  36. data/ext/eigen/eigen3/Eigen/UmfPackSupport +36 -0
  37. data/ext/eigen/eigen3/Eigen/src/Cholesky/LDLT.h +611 -0
  38. data/ext/eigen/eigen3/Eigen/src/Cholesky/LLT.h +498 -0
  39. data/ext/eigen/eigen3/Eigen/src/Cholesky/LLT_MKL.h +102 -0
  40. data/ext/eigen/eigen3/Eigen/src/CholmodSupport/CholmodSupport.h +607 -0
  41. data/ext/eigen/eigen3/Eigen/src/Core/Array.h +323 -0
  42. data/ext/eigen/eigen3/Eigen/src/Core/ArrayBase.h +226 -0
  43. data/ext/eigen/eigen3/Eigen/src/Core/ArrayWrapper.h +264 -0
  44. data/ext/eigen/eigen3/Eigen/src/Core/Assign.h +590 -0
  45. data/ext/eigen/eigen3/Eigen/src/Core/Assign_MKL.h +224 -0
  46. data/ext/eigen/eigen3/Eigen/src/Core/BandMatrix.h +334 -0
  47. data/ext/eigen/eigen3/Eigen/src/Core/Block.h +406 -0
  48. data/ext/eigen/eigen3/Eigen/src/Core/BooleanRedux.h +154 -0
  49. data/ext/eigen/eigen3/Eigen/src/Core/CommaInitializer.h +154 -0
  50. data/ext/eigen/eigen3/Eigen/src/Core/CoreIterators.h +61 -0
  51. data/ext/eigen/eigen3/Eigen/src/Core/CwiseBinaryOp.h +230 -0
  52. data/ext/eigen/eigen3/Eigen/src/Core/CwiseNullaryOp.h +864 -0
  53. data/ext/eigen/eigen3/Eigen/src/Core/CwiseUnaryOp.h +126 -0
  54. data/ext/eigen/eigen3/Eigen/src/Core/CwiseUnaryView.h +139 -0
  55. data/ext/eigen/eigen3/Eigen/src/Core/DenseBase.h +521 -0
  56. data/ext/eigen/eigen3/Eigen/src/Core/DenseCoeffsBase.h +754 -0
  57. data/ext/eigen/eigen3/Eigen/src/Core/DenseStorage.h +434 -0
  58. data/ext/eigen/eigen3/Eigen/src/Core/Diagonal.h +237 -0
  59. data/ext/eigen/eigen3/Eigen/src/Core/DiagonalMatrix.h +313 -0
  60. data/ext/eigen/eigen3/Eigen/src/Core/DiagonalProduct.h +131 -0
  61. data/ext/eigen/eigen3/Eigen/src/Core/Dot.h +263 -0
  62. data/ext/eigen/eigen3/Eigen/src/Core/EigenBase.h +131 -0
  63. data/ext/eigen/eigen3/Eigen/src/Core/Flagged.h +140 -0
  64. data/ext/eigen/eigen3/Eigen/src/Core/ForceAlignedAccess.h +146 -0
  65. data/ext/eigen/eigen3/Eigen/src/Core/Functors.h +1026 -0
  66. data/ext/eigen/eigen3/Eigen/src/Core/Fuzzy.h +150 -0
  67. data/ext/eigen/eigen3/Eigen/src/Core/GeneralProduct.h +635 -0
  68. data/ext/eigen/eigen3/Eigen/src/Core/GenericPacketMath.h +350 -0
  69. data/ext/eigen/eigen3/Eigen/src/Core/GlobalFunctions.h +92 -0
  70. data/ext/eigen/eigen3/Eigen/src/Core/IO.h +250 -0
  71. data/ext/eigen/eigen3/Eigen/src/Core/Map.h +192 -0
  72. data/ext/eigen/eigen3/Eigen/src/Core/MapBase.h +247 -0
  73. data/ext/eigen/eigen3/Eigen/src/Core/MathFunctions.h +768 -0
  74. data/ext/eigen/eigen3/Eigen/src/Core/Matrix.h +420 -0
  75. data/ext/eigen/eigen3/Eigen/src/Core/MatrixBase.h +563 -0
  76. data/ext/eigen/eigen3/Eigen/src/Core/NestByValue.h +111 -0
  77. data/ext/eigen/eigen3/Eigen/src/Core/NoAlias.h +134 -0
  78. data/ext/eigen/eigen3/Eigen/src/Core/NumTraits.h +150 -0
  79. data/ext/eigen/eigen3/Eigen/src/Core/PermutationMatrix.h +721 -0
  80. data/ext/eigen/eigen3/Eigen/src/Core/PlainObjectBase.h +822 -0
  81. data/ext/eigen/eigen3/Eigen/src/Core/ProductBase.h +290 -0
  82. data/ext/eigen/eigen3/Eigen/src/Core/Random.h +152 -0
  83. data/ext/eigen/eigen3/Eigen/src/Core/Redux.h +409 -0
  84. data/ext/eigen/eigen3/Eigen/src/Core/Ref.h +278 -0
  85. data/ext/eigen/eigen3/Eigen/src/Core/Replicate.h +177 -0
  86. data/ext/eigen/eigen3/Eigen/src/Core/ReturnByValue.h +99 -0
  87. data/ext/eigen/eigen3/Eigen/src/Core/Reverse.h +224 -0
  88. data/ext/eigen/eigen3/Eigen/src/Core/Select.h +162 -0
  89. data/ext/eigen/eigen3/Eigen/src/Core/SelfAdjointView.h +314 -0
  90. data/ext/eigen/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +191 -0
  91. data/ext/eigen/eigen3/Eigen/src/Core/SolveTriangular.h +260 -0
  92. data/ext/eigen/eigen3/Eigen/src/Core/StableNorm.h +203 -0
  93. data/ext/eigen/eigen3/Eigen/src/Core/Stride.h +108 -0
  94. data/ext/eigen/eigen3/Eigen/src/Core/Swap.h +126 -0
  95. data/ext/eigen/eigen3/Eigen/src/Core/Transpose.h +419 -0
  96. data/ext/eigen/eigen3/Eigen/src/Core/Transpositions.h +436 -0
  97. data/ext/eigen/eigen3/Eigen/src/Core/TriangularMatrix.h +839 -0
  98. data/ext/eigen/eigen3/Eigen/src/Core/VectorBlock.h +95 -0
  99. data/ext/eigen/eigen3/Eigen/src/Core/VectorwiseOp.h +642 -0
  100. data/ext/eigen/eigen3/Eigen/src/Core/Visitor.h +237 -0
  101. data/ext/eigen/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +217 -0
  102. data/ext/eigen/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +501 -0
  103. data/ext/eigen/eigen3/Eigen/src/Core/arch/Default/Settings.h +49 -0
  104. data/ext/eigen/eigen3/Eigen/src/Core/arch/NEON/Complex.h +253 -0
  105. data/ext/eigen/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +420 -0
  106. data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/Complex.h +442 -0
  107. data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +475 -0
  108. data/ext/eigen/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +649 -0
  109. data/ext/eigen/eigen3/Eigen/src/Core/products/CoeffBasedProduct.h +476 -0
  110. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1341 -0
  111. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +427 -0
  112. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +278 -0
  113. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h +146 -0
  114. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h +118 -0
  115. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +566 -0
  116. data/ext/eigen/eigen3/Eigen/src/Core/products/GeneralMatrixVector_MKL.h +131 -0
  117. data/ext/eigen/eigen3/Eigen/src/Core/products/Parallelizer.h +162 -0
  118. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +436 -0
  119. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h +295 -0
  120. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +281 -0
  121. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h +114 -0
  122. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +123 -0
  123. data/ext/eigen/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +93 -0
  124. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +427 -0
  125. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h +309 -0
  126. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +348 -0
  127. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularMatrixVector_MKL.h +247 -0
  128. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +332 -0
  129. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h +155 -0
  130. data/ext/eigen/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +139 -0
  131. data/ext/eigen/eigen3/Eigen/src/Core/util/BlasUtil.h +264 -0
  132. data/ext/eigen/eigen3/Eigen/src/Core/util/Constants.h +451 -0
  133. data/ext/eigen/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +40 -0
  134. data/ext/eigen/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +302 -0
  135. data/ext/eigen/eigen3/Eigen/src/Core/util/MKL_support.h +158 -0
  136. data/ext/eigen/eigen3/Eigen/src/Core/util/Macros.h +451 -0
  137. data/ext/eigen/eigen3/Eigen/src/Core/util/Memory.h +977 -0
  138. data/ext/eigen/eigen3/Eigen/src/Core/util/Meta.h +243 -0
  139. data/ext/eigen/eigen3/Eigen/src/Core/util/NonMPL2.h +3 -0
  140. data/ext/eigen/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h +14 -0
  141. data/ext/eigen/eigen3/Eigen/src/Core/util/StaticAssert.h +208 -0
  142. data/ext/eigen/eigen3/Eigen/src/Core/util/XprHelper.h +469 -0
  143. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Block.h +126 -0
  144. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Cwise.h +192 -0
  145. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/CwiseOperators.h +298 -0
  146. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/AlignedBox.h +159 -0
  147. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/All.h +115 -0
  148. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/AngleAxis.h +214 -0
  149. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Hyperplane.h +254 -0
  150. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h +141 -0
  151. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Quaternion.h +495 -0
  152. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Rotation2D.h +145 -0
  153. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/RotationBase.h +123 -0
  154. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Scaling.h +167 -0
  155. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Transform.h +786 -0
  156. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Geometry/Translation.h +184 -0
  157. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/LU.h +120 -0
  158. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Lazy.h +71 -0
  159. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/LeastSquares.h +169 -0
  160. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Macros.h +20 -0
  161. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/MathFunctions.h +57 -0
  162. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Memory.h +45 -0
  163. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Meta.h +75 -0
  164. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/Minor.h +117 -0
  165. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/QR.h +67 -0
  166. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/SVD.h +637 -0
  167. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/TriangularSolver.h +42 -0
  168. data/ext/eigen/eigen3/Eigen/src/Eigen2Support/VectorBlock.h +94 -0
  169. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +341 -0
  170. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +456 -0
  171. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/ComplexSchur_MKL.h +94 -0
  172. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +607 -0
  173. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +350 -0
  174. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +227 -0
  175. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +373 -0
  176. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +160 -0
  177. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealQZ.h +624 -0
  178. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealSchur.h +525 -0
  179. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/RealSchur_MKL.h +83 -0
  180. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +801 -0
  181. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h +92 -0
  182. data/ext/eigen/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +557 -0
  183. data/ext/eigen/eigen3/Eigen/src/Geometry/AlignedBox.h +392 -0
  184. data/ext/eigen/eigen3/Eigen/src/Geometry/AngleAxis.h +233 -0
  185. data/ext/eigen/eigen3/Eigen/src/Geometry/EulerAngles.h +104 -0
  186. data/ext/eigen/eigen3/Eigen/src/Geometry/Homogeneous.h +307 -0
  187. data/ext/eigen/eigen3/Eigen/src/Geometry/Hyperplane.h +280 -0
  188. data/ext/eigen/eigen3/Eigen/src/Geometry/OrthoMethods.h +218 -0
  189. data/ext/eigen/eigen3/Eigen/src/Geometry/ParametrizedLine.h +195 -0
  190. data/ext/eigen/eigen3/Eigen/src/Geometry/Quaternion.h +776 -0
  191. data/ext/eigen/eigen3/Eigen/src/Geometry/Rotation2D.h +160 -0
  192. data/ext/eigen/eigen3/Eigen/src/Geometry/RotationBase.h +206 -0
  193. data/ext/eigen/eigen3/Eigen/src/Geometry/Scaling.h +166 -0
  194. data/ext/eigen/eigen3/Eigen/src/Geometry/Transform.h +1455 -0
  195. data/ext/eigen/eigen3/Eigen/src/Geometry/Translation.h +206 -0
  196. data/ext/eigen/eigen3/Eigen/src/Geometry/Umeyama.h +177 -0
  197. data/ext/eigen/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h +115 -0
  198. data/ext/eigen/eigen3/Eigen/src/Householder/BlockHouseholder.h +68 -0
  199. data/ext/eigen/eigen3/Eigen/src/Householder/Householder.h +171 -0
  200. data/ext/eigen/eigen3/Eigen/src/Householder/HouseholderSequence.h +441 -0
  201. data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -0
  202. data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +263 -0
  203. data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +256 -0
  204. data/ext/eigen/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +282 -0
  205. data/ext/eigen/eigen3/Eigen/src/Jacobi/Jacobi.h +433 -0
  206. data/ext/eigen/eigen3/Eigen/src/LU/Determinant.h +101 -0
  207. data/ext/eigen/eigen3/Eigen/src/LU/FullPivLU.h +751 -0
  208. data/ext/eigen/eigen3/Eigen/src/LU/Inverse.h +400 -0
  209. data/ext/eigen/eigen3/Eigen/src/LU/PartialPivLU.h +509 -0
  210. data/ext/eigen/eigen3/Eigen/src/LU/PartialPivLU_MKL.h +85 -0
  211. data/ext/eigen/eigen3/Eigen/src/LU/arch/Inverse_SSE.h +329 -0
  212. data/ext/eigen/eigen3/Eigen/src/MetisSupport/MetisSupport.h +137 -0
  213. data/ext/eigen/eigen3/Eigen/src/OrderingMethods/Amd.h +444 -0
  214. data/ext/eigen/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h +1850 -0
  215. data/ext/eigen/eigen3/Eigen/src/PaStiXSupport/PaStiXSupport.h +721 -0
  216. data/ext/eigen/eigen3/Eigen/src/PardisoSupport/PardisoSupport.h +592 -0
  217. data/ext/eigen/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +580 -0
  218. data/ext/eigen/eigen3/Eigen/src/QR/ColPivHouseholderQR_MKL.h +99 -0
  219. data/ext/eigen/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +622 -0
  220. data/ext/eigen/eigen3/Eigen/src/QR/HouseholderQR.h +388 -0
  221. data/ext/eigen/eigen3/Eigen/src/QR/HouseholderQR_MKL.h +71 -0
  222. data/ext/eigen/eigen3/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +338 -0
  223. data/ext/eigen/eigen3/Eigen/src/SVD/JacobiSVD.h +976 -0
  224. data/ext/eigen/eigen3/Eigen/src/SVD/JacobiSVD_MKL.h +92 -0
  225. data/ext/eigen/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +148 -0
  226. data/ext/eigen/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +671 -0
  227. data/ext/eigen/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +199 -0
  228. data/ext/eigen/eigen3/Eigen/src/SparseCore/AmbiVector.h +373 -0
  229. data/ext/eigen/eigen3/Eigen/src/SparseCore/CompressedStorage.h +233 -0
  230. data/ext/eigen/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +245 -0
  231. data/ext/eigen/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +181 -0
  232. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseBlock.h +537 -0
  233. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseColEtree.h +206 -0
  234. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +325 -0
  235. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +163 -0
  236. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +311 -0
  237. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +196 -0
  238. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseDot.h +101 -0
  239. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +26 -0
  240. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseMatrix.h +1262 -0
  241. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +461 -0
  242. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparsePermutation.h +148 -0
  243. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseProduct.h +188 -0
  244. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseRedux.h +45 -0
  245. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +507 -0
  246. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +150 -0
  247. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseTranspose.h +63 -0
  248. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +179 -0
  249. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseUtil.h +172 -0
  250. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseVector.h +448 -0
  251. data/ext/eigen/eigen3/Eigen/src/SparseCore/SparseView.h +99 -0
  252. data/ext/eigen/eigen3/Eigen/src/SparseCore/TriangularSolver.h +334 -0
  253. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU.h +806 -0
  254. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +66 -0
  255. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +227 -0
  256. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +111 -0
  257. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +298 -0
  258. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +80 -0
  259. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +180 -0
  260. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +177 -0
  261. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +106 -0
  262. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +279 -0
  263. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +127 -0
  264. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +130 -0
  265. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +223 -0
  266. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +258 -0
  267. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +137 -0
  268. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +135 -0
  269. data/ext/eigen/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +83 -0
  270. data/ext/eigen/eigen3/Eigen/src/SparseQR/SparseQR.h +714 -0
  271. data/ext/eigen/eigen3/Eigen/src/StlSupport/StdDeque.h +134 -0
  272. data/ext/eigen/eigen3/Eigen/src/StlSupport/StdList.h +114 -0
  273. data/ext/eigen/eigen3/Eigen/src/StlSupport/StdVector.h +126 -0
  274. data/ext/eigen/eigen3/Eigen/src/StlSupport/details.h +84 -0
  275. data/ext/eigen/eigen3/Eigen/src/SuperLUSupport/SuperLUSupport.h +1026 -0
  276. data/ext/eigen/eigen3/Eigen/src/UmfPackSupport/UmfPackSupport.h +474 -0
  277. data/ext/eigen/eigen3/Eigen/src/misc/Image.h +84 -0
  278. data/ext/eigen/eigen3/Eigen/src/misc/Kernel.h +81 -0
  279. data/ext/eigen/eigen3/Eigen/src/misc/Solve.h +76 -0
  280. data/ext/eigen/eigen3/Eigen/src/misc/SparseSolve.h +128 -0
  281. data/ext/eigen/eigen3/Eigen/src/misc/blas.h +658 -0
  282. data/ext/eigen/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h +253 -0
  283. data/ext/eigen/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +187 -0
  284. data/ext/eigen/eigen3/Eigen/src/plugins/BlockMethods.h +935 -0
  285. data/ext/eigen/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +46 -0
  286. data/ext/eigen/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +172 -0
  287. data/ext/eigen/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +143 -0
  288. data/ext/eigen/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +52 -0
  289. data/ext/eigen/eigen3/signature_of_eigen3_matrix_library +1 -0
  290. data/ext/eigen/eigen_wrap.cxx +19420 -10396
  291. data/ext/eigen/extconf.rb +37 -2
  292. data/lib/eigen.rb +146 -3
  293. metadata +294 -7
@@ -0,0 +1,126 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2008-2009 Gael Guennebaud <gael.guennebaud@inria.fr>
5
+ // Copyright (C) 2006-2008 Benoit Jacob <jacob.benoit.1@gmail.com>
6
+ //
7
+ // This Source Code Form is subject to the terms of the Mozilla
8
+ // Public License v. 2.0. If a copy of the MPL was not distributed
9
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
+
11
+ #ifndef EIGEN_BLOCK2_H
12
+ #define EIGEN_BLOCK2_H
13
+
14
+ namespace Eigen {
15
+
16
+ /** \returns a dynamic-size expression of a corner of *this.
17
+ *
18
+ * \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
19
+ * \a Eigen::BottomLeft, \a Eigen::BottomRight.
20
+ * \param cRows the number of rows in the corner
21
+ * \param cCols the number of columns in the corner
22
+ *
23
+ * Example: \include MatrixBase_corner_enum_int_int.cpp
24
+ * Output: \verbinclude MatrixBase_corner_enum_int_int.out
25
+ *
26
+ * \note Even though the returned expression has dynamic size, in the case
27
+ * when it is applied to a fixed-size matrix, it inherits a fixed maximal size,
28
+ * which means that evaluating it does not cause a dynamic memory allocation.
29
+ *
30
+ * \sa class Block, block(Index,Index,Index,Index)
31
+ */
32
+ template<typename Derived>
33
+ inline Block<Derived> DenseBase<Derived>
34
+ ::corner(CornerType type, Index cRows, Index cCols)
35
+ {
36
+ switch(type)
37
+ {
38
+ default:
39
+ eigen_assert(false && "Bad corner type.");
40
+ case TopLeft:
41
+ return Block<Derived>(derived(), 0, 0, cRows, cCols);
42
+ case TopRight:
43
+ return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
44
+ case BottomLeft:
45
+ return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
46
+ case BottomRight:
47
+ return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
48
+ }
49
+ }
50
+
51
+ /** This is the const version of corner(CornerType, Index, Index).*/
52
+ template<typename Derived>
53
+ inline const Block<Derived>
54
+ DenseBase<Derived>::corner(CornerType type, Index cRows, Index cCols) const
55
+ {
56
+ switch(type)
57
+ {
58
+ default:
59
+ eigen_assert(false && "Bad corner type.");
60
+ case TopLeft:
61
+ return Block<Derived>(derived(), 0, 0, cRows, cCols);
62
+ case TopRight:
63
+ return Block<Derived>(derived(), 0, cols() - cCols, cRows, cCols);
64
+ case BottomLeft:
65
+ return Block<Derived>(derived(), rows() - cRows, 0, cRows, cCols);
66
+ case BottomRight:
67
+ return Block<Derived>(derived(), rows() - cRows, cols() - cCols, cRows, cCols);
68
+ }
69
+ }
70
+
71
+ /** \returns a fixed-size expression of a corner of *this.
72
+ *
73
+ * \param type the type of corner. Can be \a Eigen::TopLeft, \a Eigen::TopRight,
74
+ * \a Eigen::BottomLeft, \a Eigen::BottomRight.
75
+ *
76
+ * The template parameters CRows and CCols arethe number of rows and columns in the corner.
77
+ *
78
+ * Example: \include MatrixBase_template_int_int_corner_enum.cpp
79
+ * Output: \verbinclude MatrixBase_template_int_int_corner_enum.out
80
+ *
81
+ * \sa class Block, block(Index,Index,Index,Index)
82
+ */
83
+ template<typename Derived>
84
+ template<int CRows, int CCols>
85
+ inline Block<Derived, CRows, CCols>
86
+ DenseBase<Derived>::corner(CornerType type)
87
+ {
88
+ switch(type)
89
+ {
90
+ default:
91
+ eigen_assert(false && "Bad corner type.");
92
+ case TopLeft:
93
+ return Block<Derived, CRows, CCols>(derived(), 0, 0);
94
+ case TopRight:
95
+ return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
96
+ case BottomLeft:
97
+ return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
98
+ case BottomRight:
99
+ return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
100
+ }
101
+ }
102
+
103
+ /** This is the const version of corner<int, int>(CornerType).*/
104
+ template<typename Derived>
105
+ template<int CRows, int CCols>
106
+ inline const Block<Derived, CRows, CCols>
107
+ DenseBase<Derived>::corner(CornerType type) const
108
+ {
109
+ switch(type)
110
+ {
111
+ default:
112
+ eigen_assert(false && "Bad corner type.");
113
+ case TopLeft:
114
+ return Block<Derived, CRows, CCols>(derived(), 0, 0);
115
+ case TopRight:
116
+ return Block<Derived, CRows, CCols>(derived(), 0, cols() - CCols);
117
+ case BottomLeft:
118
+ return Block<Derived, CRows, CCols>(derived(), rows() - CRows, 0);
119
+ case BottomRight:
120
+ return Block<Derived, CRows, CCols>(derived(), rows() - CRows, cols() - CCols);
121
+ }
122
+ }
123
+
124
+ } // end namespace Eigen
125
+
126
+ #endif // EIGEN_BLOCK2_H
@@ -0,0 +1,192 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
5
+ // Copyright (C) 2008 Benoit Jacob <jacob.benoit.1@gmail.com>
6
+ //
7
+ // This Source Code Form is subject to the terms of the Mozilla
8
+ // Public License v. 2.0. If a copy of the MPL was not distributed
9
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
+
11
+ #ifndef EIGEN_CWISE_H
12
+ #define EIGEN_CWISE_H
13
+
14
+ namespace Eigen {
15
+
16
+ /** \internal
17
+ * convenient macro to defined the return type of a cwise binary operation */
18
+ #define EIGEN_CWISE_BINOP_RETURN_TYPE(OP) \
19
+ CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, OtherDerived>
20
+
21
+ /** \internal
22
+ * convenient macro to defined the return type of a cwise unary operation */
23
+ #define EIGEN_CWISE_UNOP_RETURN_TYPE(OP) \
24
+ CwiseUnaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType>
25
+
26
+ /** \internal
27
+ * convenient macro to defined the return type of a cwise comparison to a scalar */
28
+ #define EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(OP) \
29
+ CwiseBinaryOp<OP<typename internal::traits<ExpressionType>::Scalar>, ExpressionType, \
30
+ typename ExpressionType::ConstantReturnType >
31
+
32
+ /** \class Cwise
33
+ *
34
+ * \brief Pseudo expression providing additional coefficient-wise operations
35
+ *
36
+ * \param ExpressionType the type of the object on which to do coefficient-wise operations
37
+ *
38
+ * This class represents an expression with additional coefficient-wise features.
39
+ * It is the return type of MatrixBase::cwise()
40
+ * and most of the time this is the only way it is used.
41
+ *
42
+ * Example: \include MatrixBase_cwise_const.cpp
43
+ * Output: \verbinclude MatrixBase_cwise_const.out
44
+ *
45
+ * This class can be extended with the help of the plugin mechanism described on the page
46
+ * \ref TopicCustomizingEigen by defining the preprocessor symbol \c EIGEN_CWISE_PLUGIN.
47
+ *
48
+ * \sa MatrixBase::cwise() const, MatrixBase::cwise()
49
+ */
50
+ template<typename ExpressionType> class Cwise
51
+ {
52
+ public:
53
+
54
+ typedef typename internal::traits<ExpressionType>::Scalar Scalar;
55
+ typedef typename internal::conditional<internal::must_nest_by_value<ExpressionType>::ret,
56
+ ExpressionType, const ExpressionType&>::type ExpressionTypeNested;
57
+ typedef CwiseUnaryOp<internal::scalar_add_op<Scalar>, ExpressionType> ScalarAddReturnType;
58
+
59
+ inline Cwise(const ExpressionType& matrix) : m_matrix(matrix) {}
60
+
61
+ /** \internal */
62
+ inline const ExpressionType& _expression() const { return m_matrix; }
63
+
64
+ template<typename OtherDerived>
65
+ const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
66
+ operator*(const MatrixBase<OtherDerived> &other) const;
67
+
68
+ template<typename OtherDerived>
69
+ const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
70
+ operator/(const MatrixBase<OtherDerived> &other) const;
71
+
72
+ /** \deprecated ArrayBase::min() */
73
+ template<typename OtherDerived>
74
+ const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)
75
+ (min)(const MatrixBase<OtherDerived> &other) const
76
+ { return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_min_op)(_expression(), other.derived()); }
77
+
78
+ /** \deprecated ArrayBase::max() */
79
+ template<typename OtherDerived>
80
+ const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)
81
+ (max)(const MatrixBase<OtherDerived> &other) const
82
+ { return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_max_op)(_expression(), other.derived()); }
83
+
84
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op) abs() const;
85
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op) abs2() const;
86
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op) square() const;
87
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op) cube() const;
88
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op) inverse() const;
89
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op) sqrt() const;
90
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op) exp() const;
91
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op) log() const;
92
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op) cos() const;
93
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op) sin() const;
94
+ const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op) pow(const Scalar& exponent) const;
95
+
96
+ const ScalarAddReturnType
97
+ operator+(const Scalar& scalar) const;
98
+
99
+ /** \relates Cwise */
100
+ friend const ScalarAddReturnType
101
+ operator+(const Scalar& scalar, const Cwise& mat)
102
+ { return mat + scalar; }
103
+
104
+ ExpressionType& operator+=(const Scalar& scalar);
105
+
106
+ const ScalarAddReturnType
107
+ operator-(const Scalar& scalar) const;
108
+
109
+ ExpressionType& operator-=(const Scalar& scalar);
110
+
111
+ template<typename OtherDerived>
112
+ inline ExpressionType& operator*=(const MatrixBase<OtherDerived> &other);
113
+
114
+ template<typename OtherDerived>
115
+ inline ExpressionType& operator/=(const MatrixBase<OtherDerived> &other);
116
+
117
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
118
+ operator<(const MatrixBase<OtherDerived>& other) const;
119
+
120
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
121
+ operator<=(const MatrixBase<OtherDerived>& other) const;
122
+
123
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
124
+ operator>(const MatrixBase<OtherDerived>& other) const;
125
+
126
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
127
+ operator>=(const MatrixBase<OtherDerived>& other) const;
128
+
129
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
130
+ operator==(const MatrixBase<OtherDerived>& other) const;
131
+
132
+ template<typename OtherDerived> const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
133
+ operator!=(const MatrixBase<OtherDerived>& other) const;
134
+
135
+ // comparisons to a scalar value
136
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
137
+ operator<(Scalar s) const;
138
+
139
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
140
+ operator<=(Scalar s) const;
141
+
142
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
143
+ operator>(Scalar s) const;
144
+
145
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
146
+ operator>=(Scalar s) const;
147
+
148
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
149
+ operator==(Scalar s) const;
150
+
151
+ const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
152
+ operator!=(Scalar s) const;
153
+
154
+ // allow to extend Cwise outside Eigen
155
+ #ifdef EIGEN_CWISE_PLUGIN
156
+ #include EIGEN_CWISE_PLUGIN
157
+ #endif
158
+
159
+ protected:
160
+ ExpressionTypeNested m_matrix;
161
+ };
162
+
163
+
164
+ /** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
165
+ *
166
+ * Example: \include MatrixBase_cwise_const.cpp
167
+ * Output: \verbinclude MatrixBase_cwise_const.out
168
+ *
169
+ * \sa class Cwise, cwise()
170
+ */
171
+ template<typename Derived>
172
+ inline const Cwise<Derived> MatrixBase<Derived>::cwise() const
173
+ {
174
+ return derived();
175
+ }
176
+
177
+ /** \returns a Cwise wrapper of *this providing additional coefficient-wise operations
178
+ *
179
+ * Example: \include MatrixBase_cwise.cpp
180
+ * Output: \verbinclude MatrixBase_cwise.out
181
+ *
182
+ * \sa class Cwise, cwise() const
183
+ */
184
+ template<typename Derived>
185
+ inline Cwise<Derived> MatrixBase<Derived>::cwise()
186
+ {
187
+ return derived();
188
+ }
189
+
190
+ } // end namespace Eigen
191
+
192
+ #endif // EIGEN_CWISE_H
@@ -0,0 +1,298 @@
1
+ // This file is part of Eigen, a lightweight C++ template library
2
+ // for linear algebra.
3
+ //
4
+ // Copyright (C) 2008 Gael Guennebaud <gael.guennebaud@inria.fr>
5
+ //
6
+ // This Source Code Form is subject to the terms of the Mozilla
7
+ // Public License v. 2.0. If a copy of the MPL was not distributed
8
+ // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
+
10
+ #ifndef EIGEN_ARRAY_CWISE_OPERATORS_H
11
+ #define EIGEN_ARRAY_CWISE_OPERATORS_H
12
+
13
+ namespace Eigen {
14
+
15
+ /***************************************************************************
16
+ * The following functions were defined in Core
17
+ ***************************************************************************/
18
+
19
+
20
+ /** \deprecated ArrayBase::abs() */
21
+ template<typename ExpressionType>
22
+ EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs_op)
23
+ Cwise<ExpressionType>::abs() const
24
+ {
25
+ return _expression();
26
+ }
27
+
28
+ /** \deprecated ArrayBase::abs2() */
29
+ template<typename ExpressionType>
30
+ EIGEN_STRONG_INLINE const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_abs2_op)
31
+ Cwise<ExpressionType>::abs2() const
32
+ {
33
+ return _expression();
34
+ }
35
+
36
+ /** \deprecated ArrayBase::exp() */
37
+ template<typename ExpressionType>
38
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_exp_op)
39
+ Cwise<ExpressionType>::exp() const
40
+ {
41
+ return _expression();
42
+ }
43
+
44
+ /** \deprecated ArrayBase::log() */
45
+ template<typename ExpressionType>
46
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_log_op)
47
+ Cwise<ExpressionType>::log() const
48
+ {
49
+ return _expression();
50
+ }
51
+
52
+ /** \deprecated ArrayBase::operator*() */
53
+ template<typename ExpressionType>
54
+ template<typename OtherDerived>
55
+ EIGEN_STRONG_INLINE const EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)
56
+ Cwise<ExpressionType>::operator*(const MatrixBase<OtherDerived> &other) const
57
+ {
58
+ return EIGEN_CWISE_PRODUCT_RETURN_TYPE(ExpressionType,OtherDerived)(_expression(), other.derived());
59
+ }
60
+
61
+ /** \deprecated ArrayBase::operator/() */
62
+ template<typename ExpressionType>
63
+ template<typename OtherDerived>
64
+ EIGEN_STRONG_INLINE const EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)
65
+ Cwise<ExpressionType>::operator/(const MatrixBase<OtherDerived> &other) const
66
+ {
67
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(internal::scalar_quotient_op)(_expression(), other.derived());
68
+ }
69
+
70
+ /** \deprecated ArrayBase::operator*=() */
71
+ template<typename ExpressionType>
72
+ template<typename OtherDerived>
73
+ inline ExpressionType& Cwise<ExpressionType>::operator*=(const MatrixBase<OtherDerived> &other)
74
+ {
75
+ return m_matrix.const_cast_derived() = *this * other;
76
+ }
77
+
78
+ /** \deprecated ArrayBase::operator/=() */
79
+ template<typename ExpressionType>
80
+ template<typename OtherDerived>
81
+ inline ExpressionType& Cwise<ExpressionType>::operator/=(const MatrixBase<OtherDerived> &other)
82
+ {
83
+ return m_matrix.const_cast_derived() = *this / other;
84
+ }
85
+
86
+ /***************************************************************************
87
+ * The following functions were defined in Array
88
+ ***************************************************************************/
89
+
90
+ // -- unary operators --
91
+
92
+ /** \deprecated ArrayBase::sqrt() */
93
+ template<typename ExpressionType>
94
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sqrt_op)
95
+ Cwise<ExpressionType>::sqrt() const
96
+ {
97
+ return _expression();
98
+ }
99
+
100
+ /** \deprecated ArrayBase::cos() */
101
+ template<typename ExpressionType>
102
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cos_op)
103
+ Cwise<ExpressionType>::cos() const
104
+ {
105
+ return _expression();
106
+ }
107
+
108
+
109
+ /** \deprecated ArrayBase::sin() */
110
+ template<typename ExpressionType>
111
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_sin_op)
112
+ Cwise<ExpressionType>::sin() const
113
+ {
114
+ return _expression();
115
+ }
116
+
117
+
118
+ /** \deprecated ArrayBase::log() */
119
+ template<typename ExpressionType>
120
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)
121
+ Cwise<ExpressionType>::pow(const Scalar& exponent) const
122
+ {
123
+ return EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_pow_op)(_expression(), internal::scalar_pow_op<Scalar>(exponent));
124
+ }
125
+
126
+
127
+ /** \deprecated ArrayBase::inverse() */
128
+ template<typename ExpressionType>
129
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_inverse_op)
130
+ Cwise<ExpressionType>::inverse() const
131
+ {
132
+ return _expression();
133
+ }
134
+
135
+ /** \deprecated ArrayBase::square() */
136
+ template<typename ExpressionType>
137
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_square_op)
138
+ Cwise<ExpressionType>::square() const
139
+ {
140
+ return _expression();
141
+ }
142
+
143
+ /** \deprecated ArrayBase::cube() */
144
+ template<typename ExpressionType>
145
+ inline const EIGEN_CWISE_UNOP_RETURN_TYPE(internal::scalar_cube_op)
146
+ Cwise<ExpressionType>::cube() const
147
+ {
148
+ return _expression();
149
+ }
150
+
151
+
152
+ // -- binary operators --
153
+
154
+ /** \deprecated ArrayBase::operator<() */
155
+ template<typename ExpressionType>
156
+ template<typename OtherDerived>
157
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)
158
+ Cwise<ExpressionType>::operator<(const MatrixBase<OtherDerived> &other) const
159
+ {
160
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less)(_expression(), other.derived());
161
+ }
162
+
163
+ /** \deprecated ArrayBase::<=() */
164
+ template<typename ExpressionType>
165
+ template<typename OtherDerived>
166
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)
167
+ Cwise<ExpressionType>::operator<=(const MatrixBase<OtherDerived> &other) const
168
+ {
169
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::less_equal)(_expression(), other.derived());
170
+ }
171
+
172
+ /** \deprecated ArrayBase::operator>() */
173
+ template<typename ExpressionType>
174
+ template<typename OtherDerived>
175
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)
176
+ Cwise<ExpressionType>::operator>(const MatrixBase<OtherDerived> &other) const
177
+ {
178
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater)(_expression(), other.derived());
179
+ }
180
+
181
+ /** \deprecated ArrayBase::operator>=() */
182
+ template<typename ExpressionType>
183
+ template<typename OtherDerived>
184
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)
185
+ Cwise<ExpressionType>::operator>=(const MatrixBase<OtherDerived> &other) const
186
+ {
187
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::greater_equal)(_expression(), other.derived());
188
+ }
189
+
190
+ /** \deprecated ArrayBase::operator==() */
191
+ template<typename ExpressionType>
192
+ template<typename OtherDerived>
193
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)
194
+ Cwise<ExpressionType>::operator==(const MatrixBase<OtherDerived> &other) const
195
+ {
196
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::equal_to)(_expression(), other.derived());
197
+ }
198
+
199
+ /** \deprecated ArrayBase::operator!=() */
200
+ template<typename ExpressionType>
201
+ template<typename OtherDerived>
202
+ inline const EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)
203
+ Cwise<ExpressionType>::operator!=(const MatrixBase<OtherDerived> &other) const
204
+ {
205
+ return EIGEN_CWISE_BINOP_RETURN_TYPE(std::not_equal_to)(_expression(), other.derived());
206
+ }
207
+
208
+ // comparisons to scalar value
209
+
210
+ /** \deprecated ArrayBase::operator<(Scalar) */
211
+ template<typename ExpressionType>
212
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)
213
+ Cwise<ExpressionType>::operator<(Scalar s) const
214
+ {
215
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less)(_expression(),
216
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
217
+ }
218
+
219
+ /** \deprecated ArrayBase::operator<=(Scalar) */
220
+ template<typename ExpressionType>
221
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)
222
+ Cwise<ExpressionType>::operator<=(Scalar s) const
223
+ {
224
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::less_equal)(_expression(),
225
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
226
+ }
227
+
228
+ /** \deprecated ArrayBase::operator>(Scalar) */
229
+ template<typename ExpressionType>
230
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)
231
+ Cwise<ExpressionType>::operator>(Scalar s) const
232
+ {
233
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater)(_expression(),
234
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
235
+ }
236
+
237
+ /** \deprecated ArrayBase::operator>=(Scalar) */
238
+ template<typename ExpressionType>
239
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)
240
+ Cwise<ExpressionType>::operator>=(Scalar s) const
241
+ {
242
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::greater_equal)(_expression(),
243
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
244
+ }
245
+
246
+ /** \deprecated ArrayBase::operator==(Scalar) */
247
+ template<typename ExpressionType>
248
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)
249
+ Cwise<ExpressionType>::operator==(Scalar s) const
250
+ {
251
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::equal_to)(_expression(),
252
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
253
+ }
254
+
255
+ /** \deprecated ArrayBase::operator!=(Scalar) */
256
+ template<typename ExpressionType>
257
+ inline const EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)
258
+ Cwise<ExpressionType>::operator!=(Scalar s) const
259
+ {
260
+ return EIGEN_CWISE_COMP_TO_SCALAR_RETURN_TYPE(std::not_equal_to)(_expression(),
261
+ typename ExpressionType::ConstantReturnType(_expression().rows(), _expression().cols(), s));
262
+ }
263
+
264
+ // scalar addition
265
+
266
+ /** \deprecated ArrayBase::operator+(Scalar) */
267
+ template<typename ExpressionType>
268
+ inline const typename Cwise<ExpressionType>::ScalarAddReturnType
269
+ Cwise<ExpressionType>::operator+(const Scalar& scalar) const
270
+ {
271
+ return typename Cwise<ExpressionType>::ScalarAddReturnType(m_matrix, internal::scalar_add_op<Scalar>(scalar));
272
+ }
273
+
274
+ /** \deprecated ArrayBase::operator+=(Scalar) */
275
+ template<typename ExpressionType>
276
+ inline ExpressionType& Cwise<ExpressionType>::operator+=(const Scalar& scalar)
277
+ {
278
+ return m_matrix.const_cast_derived() = *this + scalar;
279
+ }
280
+
281
+ /** \deprecated ArrayBase::operator-(Scalar) */
282
+ template<typename ExpressionType>
283
+ inline const typename Cwise<ExpressionType>::ScalarAddReturnType
284
+ Cwise<ExpressionType>::operator-(const Scalar& scalar) const
285
+ {
286
+ return *this + (-scalar);
287
+ }
288
+
289
+ /** \deprecated ArrayBase::operator-=(Scalar) */
290
+ template<typename ExpressionType>
291
+ inline ExpressionType& Cwise<ExpressionType>::operator-=(const Scalar& scalar)
292
+ {
293
+ return m_matrix.const_cast_derived() = *this - scalar;
294
+ }
295
+
296
+ } // end namespace Eigen
297
+
298
+ #endif // EIGEN_ARRAY_CWISE_OPERATORS_H