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,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