ruby-eigen 0.0.9 → 0.0.10.pre1

Sign up to get free protection for your applications and to get access to all the features.
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,451 @@
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) 2007-2009 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_CONSTANTS_H
12
+ #define EIGEN_CONSTANTS_H
13
+
14
+ namespace Eigen {
15
+
16
+ /** This value means that a positive quantity (e.g., a size) is not known at compile-time, and that instead the value is
17
+ * stored in some runtime variable.
18
+ *
19
+ * Changing the value of Dynamic breaks the ABI, as Dynamic is often used as a template parameter for Matrix.
20
+ */
21
+ const int Dynamic = -1;
22
+
23
+ /** This value means that a signed quantity (e.g., a signed index) is not known at compile-time, and that instead its value
24
+ * has to be specified at runtime.
25
+ */
26
+ const int DynamicIndex = 0xffffff;
27
+
28
+ /** This value means +Infinity; it is currently used only as the p parameter to MatrixBase::lpNorm<int>().
29
+ * The value Infinity there means the L-infinity norm.
30
+ */
31
+ const int Infinity = -1;
32
+
33
+ /** \defgroup flags Flags
34
+ * \ingroup Core_Module
35
+ *
36
+ * These are the possible bits which can be OR'ed to constitute the flags of a matrix or
37
+ * expression.
38
+ *
39
+ * It is important to note that these flags are a purely compile-time notion. They are a compile-time property of
40
+ * an expression type, implemented as enum's. They are not stored in memory at runtime, and they do not incur any
41
+ * runtime overhead.
42
+ *
43
+ * \sa MatrixBase::Flags
44
+ */
45
+
46
+ /** \ingroup flags
47
+ *
48
+ * for a matrix, this means that the storage order is row-major.
49
+ * If this bit is not set, the storage order is column-major.
50
+ * For an expression, this determines the storage order of
51
+ * the matrix created by evaluation of that expression.
52
+ * \sa \ref TopicStorageOrders */
53
+ const unsigned int RowMajorBit = 0x1;
54
+
55
+ /** \ingroup flags
56
+ *
57
+ * means the expression should be evaluated by the calling expression */
58
+ const unsigned int EvalBeforeNestingBit = 0x2;
59
+
60
+ /** \ingroup flags
61
+ *
62
+ * means the expression should be evaluated before any assignment */
63
+ const unsigned int EvalBeforeAssigningBit = 0x4;
64
+
65
+ /** \ingroup flags
66
+ *
67
+ * Short version: means the expression might be vectorized
68
+ *
69
+ * Long version: means that the coefficients can be handled by packets
70
+ * and start at a memory location whose alignment meets the requirements
71
+ * of the present CPU architecture for optimized packet access. In the fixed-size
72
+ * case, there is the additional condition that it be possible to access all the
73
+ * coefficients by packets (this implies the requirement that the size be a multiple of 16 bytes,
74
+ * and that any nontrivial strides don't break the alignment). In the dynamic-size case,
75
+ * there is no such condition on the total size and strides, so it might not be possible to access
76
+ * all coeffs by packets.
77
+ *
78
+ * \note This bit can be set regardless of whether vectorization is actually enabled.
79
+ * To check for actual vectorizability, see \a ActualPacketAccessBit.
80
+ */
81
+ const unsigned int PacketAccessBit = 0x8;
82
+
83
+ #ifdef EIGEN_VECTORIZE
84
+ /** \ingroup flags
85
+ *
86
+ * If vectorization is enabled (EIGEN_VECTORIZE is defined) this constant
87
+ * is set to the value \a PacketAccessBit.
88
+ *
89
+ * If vectorization is not enabled (EIGEN_VECTORIZE is not defined) this constant
90
+ * is set to the value 0.
91
+ */
92
+ const unsigned int ActualPacketAccessBit = PacketAccessBit;
93
+ #else
94
+ const unsigned int ActualPacketAccessBit = 0x0;
95
+ #endif
96
+
97
+ /** \ingroup flags
98
+ *
99
+ * Short version: means the expression can be seen as 1D vector.
100
+ *
101
+ * Long version: means that one can access the coefficients
102
+ * of this expression by coeff(int), and coeffRef(int) in the case of a lvalue expression. These
103
+ * index-based access methods are guaranteed
104
+ * to not have to do any runtime computation of a (row, col)-pair from the index, so that it
105
+ * is guaranteed that whenever it is available, index-based access is at least as fast as
106
+ * (row,col)-based access. Expressions for which that isn't possible don't have the LinearAccessBit.
107
+ *
108
+ * If both PacketAccessBit and LinearAccessBit are set, then the
109
+ * packets of this expression can be accessed by packet(int), and writePacket(int) in the case of a
110
+ * lvalue expression.
111
+ *
112
+ * Typically, all vector expressions have the LinearAccessBit, but there is one exception:
113
+ * Product expressions don't have it, because it would be troublesome for vectorization, even when the
114
+ * Product is a vector expression. Thus, vector Product expressions allow index-based coefficient access but
115
+ * not index-based packet access, so they don't have the LinearAccessBit.
116
+ */
117
+ const unsigned int LinearAccessBit = 0x10;
118
+
119
+ /** \ingroup flags
120
+ *
121
+ * Means the expression has a coeffRef() method, i.e. is writable as its individual coefficients are directly addressable.
122
+ * This rules out read-only expressions.
123
+ *
124
+ * Note that DirectAccessBit and LvalueBit are mutually orthogonal, as there are examples of expression having one but note
125
+ * the other:
126
+ * \li writable expressions that don't have a very simple memory layout as a strided array, have LvalueBit but not DirectAccessBit
127
+ * \li Map-to-const expressions, for example Map<const Matrix>, have DirectAccessBit but not LvalueBit
128
+ *
129
+ * Expressions having LvalueBit also have their coeff() method returning a const reference instead of returning a new value.
130
+ */
131
+ const unsigned int LvalueBit = 0x20;
132
+
133
+ /** \ingroup flags
134
+ *
135
+ * Means that the underlying array of coefficients can be directly accessed as a plain strided array. The memory layout
136
+ * of the array of coefficients must be exactly the natural one suggested by rows(), cols(),
137
+ * outerStride(), innerStride(), and the RowMajorBit. This rules out expressions such as Diagonal, whose coefficients,
138
+ * though referencable, do not have such a regular memory layout.
139
+ *
140
+ * See the comment on LvalueBit for an explanation of how LvalueBit and DirectAccessBit are mutually orthogonal.
141
+ */
142
+ const unsigned int DirectAccessBit = 0x40;
143
+
144
+ /** \ingroup flags
145
+ *
146
+ * means the first coefficient packet is guaranteed to be aligned */
147
+ const unsigned int AlignedBit = 0x80;
148
+
149
+ const unsigned int NestByRefBit = 0x100;
150
+
151
+ // list of flags that are inherited by default
152
+ const unsigned int HereditaryBits = RowMajorBit
153
+ | EvalBeforeNestingBit
154
+ | EvalBeforeAssigningBit;
155
+
156
+ /** \defgroup enums Enumerations
157
+ * \ingroup Core_Module
158
+ *
159
+ * Various enumerations used in %Eigen. Many of these are used as template parameters.
160
+ */
161
+
162
+ /** \ingroup enums
163
+ * Enum containing possible values for the \p Mode parameter of
164
+ * MatrixBase::selfadjointView() and MatrixBase::triangularView(). */
165
+ enum {
166
+ /** View matrix as a lower triangular matrix. */
167
+ Lower=0x1,
168
+ /** View matrix as an upper triangular matrix. */
169
+ Upper=0x2,
170
+ /** %Matrix has ones on the diagonal; to be used in combination with #Lower or #Upper. */
171
+ UnitDiag=0x4,
172
+ /** %Matrix has zeros on the diagonal; to be used in combination with #Lower or #Upper. */
173
+ ZeroDiag=0x8,
174
+ /** View matrix as a lower triangular matrix with ones on the diagonal. */
175
+ UnitLower=UnitDiag|Lower,
176
+ /** View matrix as an upper triangular matrix with ones on the diagonal. */
177
+ UnitUpper=UnitDiag|Upper,
178
+ /** View matrix as a lower triangular matrix with zeros on the diagonal. */
179
+ StrictlyLower=ZeroDiag|Lower,
180
+ /** View matrix as an upper triangular matrix with zeros on the diagonal. */
181
+ StrictlyUpper=ZeroDiag|Upper,
182
+ /** Used in BandMatrix and SelfAdjointView to indicate that the matrix is self-adjoint. */
183
+ SelfAdjoint=0x10,
184
+ /** Used to support symmetric, non-selfadjoint, complex matrices. */
185
+ Symmetric=0x20
186
+ };
187
+
188
+ /** \ingroup enums
189
+ * Enum for indicating whether an object is aligned or not. */
190
+ enum {
191
+ /** Object is not correctly aligned for vectorization. */
192
+ Unaligned=0,
193
+ /** Object is aligned for vectorization. */
194
+ Aligned=1
195
+ };
196
+
197
+ /** \ingroup enums
198
+ * Enum used by DenseBase::corner() in Eigen2 compatibility mode. */
199
+ // FIXME after the corner() API change, this was not needed anymore, except by AlignedBox
200
+ // TODO: find out what to do with that. Adapt the AlignedBox API ?
201
+ enum CornerType { TopLeft, TopRight, BottomLeft, BottomRight };
202
+
203
+ /** \ingroup enums
204
+ * Enum containing possible values for the \p Direction parameter of
205
+ * Reverse, PartialReduxExpr and VectorwiseOp. */
206
+ enum DirectionType {
207
+ /** For Reverse, all columns are reversed;
208
+ * for PartialReduxExpr and VectorwiseOp, act on columns. */
209
+ Vertical,
210
+ /** For Reverse, all rows are reversed;
211
+ * for PartialReduxExpr and VectorwiseOp, act on rows. */
212
+ Horizontal,
213
+ /** For Reverse, both rows and columns are reversed;
214
+ * not used for PartialReduxExpr and VectorwiseOp. */
215
+ BothDirections
216
+ };
217
+
218
+ /** \internal \ingroup enums
219
+ * Enum to specify how to traverse the entries of a matrix. */
220
+ enum {
221
+ /** \internal Default traversal, no vectorization, no index-based access */
222
+ DefaultTraversal,
223
+ /** \internal No vectorization, use index-based access to have only one for loop instead of 2 nested loops */
224
+ LinearTraversal,
225
+ /** \internal Equivalent to a slice vectorization for fixed-size matrices having good alignment
226
+ * and good size */
227
+ InnerVectorizedTraversal,
228
+ /** \internal Vectorization path using a single loop plus scalar loops for the
229
+ * unaligned boundaries */
230
+ LinearVectorizedTraversal,
231
+ /** \internal Generic vectorization path using one vectorized loop per row/column with some
232
+ * scalar loops to handle the unaligned boundaries */
233
+ SliceVectorizedTraversal,
234
+ /** \internal Special case to properly handle incompatible scalar types or other defecting cases*/
235
+ InvalidTraversal,
236
+ /** \internal Evaluate all entries at once */
237
+ AllAtOnceTraversal
238
+ };
239
+
240
+ /** \internal \ingroup enums
241
+ * Enum to specify whether to unroll loops when traversing over the entries of a matrix. */
242
+ enum {
243
+ /** \internal Do not unroll loops. */
244
+ NoUnrolling,
245
+ /** \internal Unroll only the inner loop, but not the outer loop. */
246
+ InnerUnrolling,
247
+ /** \internal Unroll both the inner and the outer loop. If there is only one loop,
248
+ * because linear traversal is used, then unroll that loop. */
249
+ CompleteUnrolling
250
+ };
251
+
252
+ /** \internal \ingroup enums
253
+ * Enum to specify whether to use the default (built-in) implementation or the specialization. */
254
+ enum {
255
+ Specialized,
256
+ BuiltIn
257
+ };
258
+
259
+ /** \ingroup enums
260
+ * Enum containing possible values for the \p _Options template parameter of
261
+ * Matrix, Array and BandMatrix. */
262
+ enum {
263
+ /** Storage order is column major (see \ref TopicStorageOrders). */
264
+ ColMajor = 0,
265
+ /** Storage order is row major (see \ref TopicStorageOrders). */
266
+ RowMajor = 0x1, // it is only a coincidence that this is equal to RowMajorBit -- don't rely on that
267
+ /** Align the matrix itself if it is vectorizable fixed-size */
268
+ AutoAlign = 0,
269
+ /** Don't require alignment for the matrix itself (the array of coefficients, if dynamically allocated, may still be requested to be aligned) */ // FIXME --- clarify the situation
270
+ DontAlign = 0x2
271
+ };
272
+
273
+ /** \ingroup enums
274
+ * Enum for specifying whether to apply or solve on the left or right. */
275
+ enum {
276
+ /** Apply transformation on the left. */
277
+ OnTheLeft = 1,
278
+ /** Apply transformation on the right. */
279
+ OnTheRight = 2
280
+ };
281
+
282
+ /* the following used to be written as:
283
+ *
284
+ * struct NoChange_t {};
285
+ * namespace {
286
+ * EIGEN_UNUSED NoChange_t NoChange;
287
+ * }
288
+ *
289
+ * on the ground that it feels dangerous to disambiguate overloaded functions on enum/integer types.
290
+ * However, this leads to "variable declared but never referenced" warnings on Intel Composer XE,
291
+ * and we do not know how to get rid of them (bug 450).
292
+ */
293
+
294
+ enum NoChange_t { NoChange };
295
+ enum Sequential_t { Sequential };
296
+ enum Default_t { Default };
297
+
298
+ /** \internal \ingroup enums
299
+ * Used in AmbiVector. */
300
+ enum {
301
+ IsDense = 0,
302
+ IsSparse
303
+ };
304
+
305
+ /** \ingroup enums
306
+ * Used as template parameter in DenseCoeffBase and MapBase to indicate
307
+ * which accessors should be provided. */
308
+ enum AccessorLevels {
309
+ /** Read-only access via a member function. */
310
+ ReadOnlyAccessors,
311
+ /** Read/write access via member functions. */
312
+ WriteAccessors,
313
+ /** Direct read-only access to the coefficients. */
314
+ DirectAccessors,
315
+ /** Direct read/write access to the coefficients. */
316
+ DirectWriteAccessors
317
+ };
318
+
319
+ /** \ingroup enums
320
+ * Enum with options to give to various decompositions. */
321
+ enum DecompositionOptions {
322
+ /** \internal Not used (meant for LDLT?). */
323
+ Pivoting = 0x01,
324
+ /** \internal Not used (meant for LDLT?). */
325
+ NoPivoting = 0x02,
326
+ /** Used in JacobiSVD to indicate that the square matrix U is to be computed. */
327
+ ComputeFullU = 0x04,
328
+ /** Used in JacobiSVD to indicate that the thin matrix U is to be computed. */
329
+ ComputeThinU = 0x08,
330
+ /** Used in JacobiSVD to indicate that the square matrix V is to be computed. */
331
+ ComputeFullV = 0x10,
332
+ /** Used in JacobiSVD to indicate that the thin matrix V is to be computed. */
333
+ ComputeThinV = 0x20,
334
+ /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
335
+ * that only the eigenvalues are to be computed and not the eigenvectors. */
336
+ EigenvaluesOnly = 0x40,
337
+ /** Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify
338
+ * that both the eigenvalues and the eigenvectors are to be computed. */
339
+ ComputeEigenvectors = 0x80,
340
+ /** \internal */
341
+ EigVecMask = EigenvaluesOnly | ComputeEigenvectors,
342
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
343
+ * solve the generalized eigenproblem \f$ Ax = \lambda B x \f$. */
344
+ Ax_lBx = 0x100,
345
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
346
+ * solve the generalized eigenproblem \f$ ABx = \lambda x \f$. */
347
+ ABx_lx = 0x200,
348
+ /** Used in GeneralizedSelfAdjointEigenSolver to indicate that it should
349
+ * solve the generalized eigenproblem \f$ BAx = \lambda x \f$. */
350
+ BAx_lx = 0x400,
351
+ /** \internal */
352
+ GenEigMask = Ax_lBx | ABx_lx | BAx_lx
353
+ };
354
+
355
+ /** \ingroup enums
356
+ * Possible values for the \p QRPreconditioner template parameter of JacobiSVD. */
357
+ enum QRPreconditioners {
358
+ /** Do not specify what is to be done if the SVD of a non-square matrix is asked for. */
359
+ NoQRPreconditioner,
360
+ /** Use a QR decomposition without pivoting as the first step. */
361
+ HouseholderQRPreconditioner,
362
+ /** Use a QR decomposition with column pivoting as the first step. */
363
+ ColPivHouseholderQRPreconditioner,
364
+ /** Use a QR decomposition with full pivoting as the first step. */
365
+ FullPivHouseholderQRPreconditioner
366
+ };
367
+
368
+ #ifdef Success
369
+ #error The preprocessor symbol 'Success' is defined, possibly by the X11 header file X.h
370
+ #endif
371
+
372
+ /** \ingroup enums
373
+ * Enum for reporting the status of a computation. */
374
+ enum ComputationInfo {
375
+ /** Computation was successful. */
376
+ Success = 0,
377
+ /** The provided data did not satisfy the prerequisites. */
378
+ NumericalIssue = 1,
379
+ /** Iterative procedure did not converge. */
380
+ NoConvergence = 2,
381
+ /** The inputs are invalid, or the algorithm has been improperly called.
382
+ * When assertions are enabled, such errors trigger an assert. */
383
+ InvalidInput = 3
384
+ };
385
+
386
+ /** \ingroup enums
387
+ * Enum used to specify how a particular transformation is stored in a matrix.
388
+ * \sa Transform, Hyperplane::transform(). */
389
+ enum TransformTraits {
390
+ /** Transformation is an isometry. */
391
+ Isometry = 0x1,
392
+ /** Transformation is an affine transformation stored as a (Dim+1)^2 matrix whose last row is
393
+ * assumed to be [0 ... 0 1]. */
394
+ Affine = 0x2,
395
+ /** Transformation is an affine transformation stored as a (Dim) x (Dim+1) matrix. */
396
+ AffineCompact = 0x10 | Affine,
397
+ /** Transformation is a general projective transformation stored as a (Dim+1)^2 matrix. */
398
+ Projective = 0x20
399
+ };
400
+
401
+ /** \internal \ingroup enums
402
+ * Enum used to choose between implementation depending on the computer architecture. */
403
+ namespace Architecture
404
+ {
405
+ enum Type {
406
+ Generic = 0x0,
407
+ SSE = 0x1,
408
+ AltiVec = 0x2,
409
+ #if defined EIGEN_VECTORIZE_SSE
410
+ Target = SSE
411
+ #elif defined EIGEN_VECTORIZE_ALTIVEC
412
+ Target = AltiVec
413
+ #else
414
+ Target = Generic
415
+ #endif
416
+ };
417
+ }
418
+
419
+ /** \internal \ingroup enums
420
+ * Enum used as template parameter in GeneralProduct. */
421
+ enum { CoeffBasedProductMode, LazyCoeffBasedProductMode, OuterProduct, InnerProduct, GemvProduct, GemmProduct };
422
+
423
+ /** \internal \ingroup enums
424
+ * Enum used in experimental parallel implementation. */
425
+ enum Action {GetAction, SetAction};
426
+
427
+ /** The type used to identify a dense storage. */
428
+ struct Dense {};
429
+
430
+ /** The type used to identify a matrix expression */
431
+ struct MatrixXpr {};
432
+
433
+ /** The type used to identify an array expression */
434
+ struct ArrayXpr {};
435
+
436
+ namespace internal {
437
+ /** \internal
438
+ * Constants for comparison functors
439
+ */
440
+ enum ComparisonName {
441
+ cmp_EQ = 0,
442
+ cmp_LT = 1,
443
+ cmp_LE = 2,
444
+ cmp_UNORD = 3,
445
+ cmp_NEQ = 4
446
+ };
447
+ }
448
+
449
+ } // end namespace Eigen
450
+
451
+ #endif // EIGEN_CONSTANTS_H
@@ -0,0 +1,40 @@
1
+ #ifndef EIGEN_WARNINGS_DISABLED
2
+ #define EIGEN_WARNINGS_DISABLED
3
+
4
+ #ifdef _MSC_VER
5
+ // 4100 - unreferenced formal parameter (occurred e.g. in aligned_allocator::destroy(pointer p))
6
+ // 4101 - unreferenced local variable
7
+ // 4127 - conditional expression is constant
8
+ // 4181 - qualifier applied to reference type ignored
9
+ // 4211 - nonstandard extension used : redefined extern to static
10
+ // 4244 - 'argument' : conversion from 'type1' to 'type2', possible loss of data
11
+ // 4273 - QtAlignedMalloc, inconsistent DLL linkage
12
+ // 4324 - structure was padded due to declspec(align())
13
+ // 4512 - assignment operator could not be generated
14
+ // 4522 - 'class' : multiple assignment operators specified
15
+ // 4700 - uninitialized local variable 'xyz' used
16
+ // 4717 - 'function' : recursive on all control paths, function will cause runtime stack overflow
17
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
18
+ #pragma warning( push )
19
+ #endif
20
+ #pragma warning( disable : 4100 4101 4127 4181 4211 4244 4273 4324 4512 4522 4700 4717 )
21
+ #elif defined __INTEL_COMPILER
22
+ // 2196 - routine is both "inline" and "noinline" ("noinline" assumed)
23
+ // ICC 12 generates this warning even without any inline keyword, when defining class methods 'inline' i.e. inside of class body
24
+ // typedef that may be a reference type.
25
+ // 279 - controlling expression is constant
26
+ // ICC 12 generates this warning on assert(constant_expression_depending_on_template_params) and frankly this is a legitimate use case.
27
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
28
+ #pragma warning push
29
+ #endif
30
+ #pragma warning disable 2196 279
31
+ #elif defined __clang__
32
+ // -Wconstant-logical-operand - warning: use of logical && with constant operand; switch to bitwise & or remove constant
33
+ // this is really a stupid warning as it warns on compile-time expressions involving enums
34
+ #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS
35
+ #pragma clang diagnostic push
36
+ #endif
37
+ #pragma clang diagnostic ignored "-Wconstant-logical-operand"
38
+ #endif
39
+
40
+ #endif // not EIGEN_WARNINGS_DISABLED