@smake/eigen 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/README.md +1 -1
  2. package/eigen/COPYING.APACHE +203 -0
  3. package/eigen/COPYING.BSD +26 -0
  4. package/eigen/COPYING.GPL +674 -0
  5. package/eigen/COPYING.LGPL +502 -0
  6. package/eigen/COPYING.MINPACK +51 -0
  7. package/eigen/COPYING.MPL2 +373 -0
  8. package/eigen/COPYING.README +18 -0
  9. package/eigen/Eigen/Cholesky +0 -1
  10. package/eigen/Eigen/Core +108 -266
  11. package/eigen/Eigen/Eigenvalues +0 -1
  12. package/eigen/Eigen/Geometry +3 -6
  13. package/eigen/Eigen/Householder +0 -1
  14. package/eigen/Eigen/Jacobi +0 -1
  15. package/eigen/Eigen/KLUSupport +41 -0
  16. package/eigen/Eigen/LU +2 -5
  17. package/eigen/Eigen/OrderingMethods +0 -3
  18. package/eigen/Eigen/PaStiXSupport +1 -0
  19. package/eigen/Eigen/PardisoSupport +0 -0
  20. package/eigen/Eigen/QR +0 -1
  21. package/eigen/Eigen/QtAlignedMalloc +0 -1
  22. package/eigen/Eigen/SVD +0 -1
  23. package/eigen/Eigen/Sparse +0 -2
  24. package/eigen/Eigen/SparseCholesky +0 -8
  25. package/eigen/Eigen/SparseLU +4 -0
  26. package/eigen/Eigen/src/Cholesky/LDLT.h +42 -27
  27. package/eigen/Eigen/src/Cholesky/LLT.h +39 -23
  28. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +90 -47
  29. package/eigen/Eigen/src/Core/ArithmeticSequence.h +413 -0
  30. package/eigen/Eigen/src/Core/Array.h +99 -11
  31. package/eigen/Eigen/src/Core/ArrayBase.h +1 -1
  32. package/eigen/Eigen/src/Core/ArrayWrapper.h +21 -21
  33. package/eigen/Eigen/src/Core/Assign.h +1 -1
  34. package/eigen/Eigen/src/Core/AssignEvaluator.h +125 -50
  35. package/eigen/Eigen/src/Core/Assign_MKL.h +10 -10
  36. package/eigen/Eigen/src/Core/BandMatrix.h +16 -16
  37. package/eigen/Eigen/src/Core/Block.h +56 -60
  38. package/eigen/Eigen/src/Core/BooleanRedux.h +29 -31
  39. package/eigen/Eigen/src/Core/CommaInitializer.h +7 -3
  40. package/eigen/Eigen/src/Core/CoreEvaluators.h +325 -272
  41. package/eigen/Eigen/src/Core/CoreIterators.h +5 -0
  42. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +21 -22
  43. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +153 -18
  44. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +6 -6
  45. package/eigen/Eigen/src/Core/CwiseUnaryView.h +12 -10
  46. package/eigen/Eigen/src/Core/DenseBase.h +128 -39
  47. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +25 -21
  48. package/eigen/Eigen/src/Core/DenseStorage.h +150 -68
  49. package/eigen/Eigen/src/Core/Diagonal.h +21 -23
  50. package/eigen/Eigen/src/Core/DiagonalMatrix.h +50 -2
  51. package/eigen/Eigen/src/Core/DiagonalProduct.h +1 -1
  52. package/eigen/Eigen/src/Core/Dot.h +10 -10
  53. package/eigen/Eigen/src/Core/EigenBase.h +10 -9
  54. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +8 -4
  55. package/eigen/Eigen/src/Core/Fuzzy.h +3 -3
  56. package/eigen/Eigen/src/Core/GeneralProduct.h +20 -10
  57. package/eigen/Eigen/src/Core/GenericPacketMath.h +597 -147
  58. package/eigen/Eigen/src/Core/GlobalFunctions.h +40 -33
  59. package/eigen/Eigen/src/Core/IO.h +40 -7
  60. package/eigen/Eigen/src/Core/IndexedView.h +237 -0
  61. package/eigen/Eigen/src/Core/Inverse.h +9 -10
  62. package/eigen/Eigen/src/Core/Map.h +7 -7
  63. package/eigen/Eigen/src/Core/MapBase.h +5 -3
  64. package/eigen/Eigen/src/Core/MathFunctions.h +756 -120
  65. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +118 -19
  66. package/eigen/Eigen/src/Core/Matrix.h +131 -25
  67. package/eigen/Eigen/src/Core/MatrixBase.h +19 -2
  68. package/eigen/Eigen/src/Core/NestByValue.h +25 -50
  69. package/eigen/Eigen/src/Core/NoAlias.h +4 -3
  70. package/eigen/Eigen/src/Core/NumTraits.h +107 -20
  71. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +232 -0
  72. package/eigen/Eigen/src/Core/PermutationMatrix.h +3 -3
  73. package/eigen/Eigen/src/Core/PlainObjectBase.h +145 -54
  74. package/eigen/Eigen/src/Core/Product.h +30 -25
  75. package/eigen/Eigen/src/Core/ProductEvaluators.h +183 -142
  76. package/eigen/Eigen/src/Core/Random.h +37 -1
  77. package/eigen/Eigen/src/Core/Redux.h +180 -170
  78. package/eigen/Eigen/src/Core/Ref.h +118 -21
  79. package/eigen/Eigen/src/Core/Replicate.h +8 -8
  80. package/eigen/Eigen/src/Core/Reshaped.h +454 -0
  81. package/eigen/Eigen/src/Core/ReturnByValue.h +7 -5
  82. package/eigen/Eigen/src/Core/Reverse.h +18 -12
  83. package/eigen/Eigen/src/Core/Select.h +8 -6
  84. package/eigen/Eigen/src/Core/SelfAdjointView.h +33 -20
  85. package/eigen/Eigen/src/Core/Solve.h +14 -14
  86. package/eigen/Eigen/src/Core/SolveTriangular.h +13 -13
  87. package/eigen/Eigen/src/Core/SolverBase.h +41 -3
  88. package/eigen/Eigen/src/Core/StableNorm.h +100 -70
  89. package/eigen/Eigen/src/Core/StlIterators.h +463 -0
  90. package/eigen/Eigen/src/Core/Stride.h +9 -4
  91. package/eigen/Eigen/src/Core/Swap.h +5 -4
  92. package/eigen/Eigen/src/Core/Transpose.h +86 -27
  93. package/eigen/Eigen/src/Core/Transpositions.h +26 -8
  94. package/eigen/Eigen/src/Core/TriangularMatrix.h +88 -72
  95. package/eigen/Eigen/src/Core/VectorBlock.h +5 -5
  96. package/eigen/Eigen/src/Core/VectorwiseOp.h +159 -70
  97. package/eigen/Eigen/src/Core/Visitor.h +137 -29
  98. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +50 -129
  99. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +126 -337
  100. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +1092 -155
  101. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +65 -1
  102. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +422 -0
  103. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +186 -213
  104. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1250 -252
  105. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +89 -0
  106. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +152 -165
  107. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +19 -251
  108. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2937 -0
  109. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +221 -0
  110. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +629 -0
  111. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +2042 -392
  112. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +235 -80
  113. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +700 -0
  114. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +102 -14
  115. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1649 -0
  116. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +110 -0
  117. package/eigen/Eigen/src/Core/arch/Default/Half.h +942 -0
  118. package/eigen/Eigen/src/Core/arch/Default/Settings.h +1 -1
  119. package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +120 -0
  120. package/eigen/Eigen/src/Core/arch/{CUDA → GPU}/MathFunctions.h +16 -4
  121. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1685 -0
  122. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +80 -0
  123. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  124. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +648 -0
  125. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +387 -0
  126. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1233 -0
  127. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +313 -219
  128. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +183 -0
  129. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +54 -70
  130. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4376 -549
  131. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1419 -0
  132. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +59 -179
  133. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +65 -428
  134. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +893 -283
  135. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +65 -0
  136. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +44 -0
  137. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +752 -0
  138. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +49 -0
  139. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +232 -0
  140. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +301 -0
  141. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +670 -0
  142. package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +694 -0
  143. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +85 -0
  144. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +212 -183
  145. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +101 -5
  146. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +510 -395
  147. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +11 -2
  148. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +112 -46
  149. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +31 -30
  150. package/eigen/Eigen/src/Core/functors/StlFunctors.h +32 -2
  151. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +354 -15
  152. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1073 -585
  153. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +29 -7
  154. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +4 -4
  155. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +1 -1
  156. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +382 -483
  157. package/eigen/Eigen/src/Core/products/Parallelizer.h +23 -9
  158. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +23 -6
  159. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +8 -6
  160. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +2 -2
  161. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +5 -4
  162. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +3 -3
  163. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +5 -3
  164. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +13 -10
  165. package/eigen/Eigen/src/Core/util/BlasUtil.h +208 -124
  166. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +512 -0
  167. package/eigen/Eigen/src/Core/util/Constants.h +25 -9
  168. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +14 -2
  169. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +28 -4
  170. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +186 -0
  171. package/eigen/Eigen/src/Core/util/IntegralConstant.h +272 -0
  172. package/eigen/Eigen/src/Core/util/MKL_support.h +8 -1
  173. package/eigen/Eigen/src/Core/util/Macros.h +661 -250
  174. package/eigen/Eigen/src/Core/util/Memory.h +222 -52
  175. package/eigen/Eigen/src/Core/util/Meta.h +349 -105
  176. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  177. package/eigen/Eigen/src/Core/util/StaticAssert.h +8 -5
  178. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +293 -0
  179. package/eigen/Eigen/src/Core/util/XprHelper.h +48 -30
  180. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +1 -1
  181. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +1 -1
  182. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +2 -2
  183. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +1 -1
  184. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +2 -2
  185. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +2 -2
  186. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +9 -6
  187. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +10 -5
  188. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +75 -42
  189. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +20 -15
  190. package/eigen/Eigen/src/Geometry/AlignedBox.h +99 -5
  191. package/eigen/Eigen/src/Geometry/AngleAxis.h +4 -4
  192. package/eigen/Eigen/src/Geometry/EulerAngles.h +3 -3
  193. package/eigen/Eigen/src/Geometry/Homogeneous.h +15 -11
  194. package/eigen/Eigen/src/Geometry/Hyperplane.h +1 -1
  195. package/eigen/Eigen/src/Geometry/OrthoMethods.h +3 -2
  196. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +39 -2
  197. package/eigen/Eigen/src/Geometry/Quaternion.h +52 -14
  198. package/eigen/Eigen/src/Geometry/Rotation2D.h +3 -3
  199. package/eigen/Eigen/src/Geometry/Scaling.h +22 -4
  200. package/eigen/Eigen/src/Geometry/Transform.h +86 -65
  201. package/eigen/Eigen/src/Geometry/Translation.h +6 -6
  202. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +168 -0
  203. package/eigen/Eigen/src/Householder/BlockHouseholder.h +9 -2
  204. package/eigen/Eigen/src/Householder/Householder.h +8 -4
  205. package/eigen/Eigen/src/Householder/HouseholderSequence.h +123 -48
  206. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +15 -15
  207. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +7 -23
  208. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +5 -22
  209. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +41 -47
  210. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +51 -60
  211. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +70 -20
  212. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +2 -20
  213. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +11 -9
  214. package/eigen/Eigen/src/Jacobi/Jacobi.h +31 -10
  215. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +358 -0
  216. package/eigen/Eigen/src/LU/Determinant.h +35 -19
  217. package/eigen/Eigen/src/LU/FullPivLU.h +29 -43
  218. package/eigen/Eigen/src/LU/InverseImpl.h +25 -8
  219. package/eigen/Eigen/src/LU/PartialPivLU.h +67 -57
  220. package/eigen/Eigen/src/LU/arch/InverseSize4.h +351 -0
  221. package/eigen/Eigen/src/OrderingMethods/Amd.h +7 -17
  222. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +297 -277
  223. package/eigen/Eigen/src/OrderingMethods/Ordering.h +6 -10
  224. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +1 -1
  225. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +10 -9
  226. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +41 -20
  227. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +100 -27
  228. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +59 -22
  229. package/eigen/Eigen/src/QR/HouseholderQR.h +48 -23
  230. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +25 -3
  231. package/eigen/Eigen/src/SVD/BDCSVD.h +137 -48
  232. package/eigen/Eigen/src/SVD/JacobiSVD.h +22 -14
  233. package/eigen/Eigen/src/SVD/SVDBase.h +82 -21
  234. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +3 -3
  235. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +16 -8
  236. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +11 -36
  237. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +16 -0
  238. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +6 -6
  239. package/eigen/Eigen/src/SparseCore/SparseAssign.h +81 -27
  240. package/eigen/Eigen/src/SparseCore/SparseBlock.h +25 -57
  241. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +40 -11
  242. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +11 -15
  243. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +2 -2
  244. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +30 -8
  245. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +124 -10
  246. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +5 -12
  247. package/eigen/Eigen/src/SparseCore/SparseProduct.h +13 -1
  248. package/eigen/Eigen/src/SparseCore/SparseRef.h +7 -7
  249. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +3 -0
  250. package/eigen/Eigen/src/SparseCore/SparseUtil.h +8 -0
  251. package/eigen/Eigen/src/SparseCore/SparseVector.h +1 -1
  252. package/eigen/Eigen/src/SparseLU/SparseLU.h +160 -10
  253. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +1 -1
  254. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +76 -2
  255. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +2 -2
  256. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +1 -1
  257. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +1 -1
  258. package/eigen/Eigen/src/SparseQR/SparseQR.h +19 -6
  259. package/eigen/Eigen/src/StlSupport/StdDeque.h +2 -14
  260. package/eigen/Eigen/src/StlSupport/StdList.h +2 -2
  261. package/eigen/Eigen/src/StlSupport/StdVector.h +2 -2
  262. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +6 -8
  263. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +175 -39
  264. package/eigen/Eigen/src/misc/lapacke.h +5 -4
  265. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +27 -1
  266. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +155 -11
  267. package/eigen/Eigen/src/plugins/BlockMethods.h +626 -242
  268. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +14 -0
  269. package/eigen/Eigen/src/plugins/IndexedViewMethods.h +262 -0
  270. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +4 -4
  271. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +10 -0
  272. package/eigen/Eigen/src/plugins/ReshapedMethods.h +149 -0
  273. package/eigen/README.md +5 -0
  274. package/lib/LibEigen.d.ts +4 -0
  275. package/lib/LibEigen.js +14 -0
  276. package/lib/index.d.ts +1 -1
  277. package/lib/index.js +7 -3
  278. package/package.json +2 -10
  279. package/eigen/Eigen/CMakeLists.txt +0 -19
  280. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  281. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  282. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  283. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  284. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  285. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  286. package/lib/eigen.d.ts +0 -2
  287. package/lib/eigen.js +0 -15
@@ -10,7 +10,7 @@
10
10
  #ifndef EIGEN_HOMOGENEOUS_H
11
11
  #define EIGEN_HOMOGENEOUS_H
12
12
 
13
- namespace Eigen {
13
+ namespace Eigen {
14
14
 
15
15
  /** \geometry_module \ingroup Geometry_Module
16
16
  *
@@ -72,9 +72,11 @@ template<typename MatrixType,int _Direction> class Homogeneous
72
72
  : m_matrix(matrix)
73
73
  {}
74
74
 
75
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); }
76
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
77
-
75
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
76
+ inline Index rows() const EIGEN_NOEXCEPT { return m_matrix.rows() + (int(Direction)==Vertical ? 1 : 0); }
77
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
78
+ inline Index cols() const EIGEN_NOEXCEPT { return m_matrix.cols() + (int(Direction)==Horizontal ? 1 : 0); }
79
+
78
80
  EIGEN_DEVICE_FUNC const NestedExpression& nestedExpression() const { return m_matrix; }
79
81
 
80
82
  template<typename Rhs>
@@ -262,8 +264,10 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
262
264
  m_rhs(rhs)
263
265
  {}
264
266
 
265
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
266
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
267
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
268
+ inline Index rows() const EIGEN_NOEXCEPT { return m_lhs.rows(); }
269
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
270
+ inline Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
267
271
 
268
272
  template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
269
273
  {
@@ -300,8 +304,8 @@ struct homogeneous_right_product_impl<Homogeneous<MatrixType,Horizontal>,Rhs>
300
304
  : m_lhs(lhs), m_rhs(rhs)
301
305
  {}
302
306
 
303
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_lhs.rows(); }
304
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_rhs.cols(); }
307
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index rows() const EIGEN_NOEXCEPT { return m_lhs.rows(); }
308
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR inline Index cols() const EIGEN_NOEXCEPT { return m_rhs.cols(); }
305
309
 
306
310
  template<typename Dest> EIGEN_DEVICE_FUNC void evalTo(Dest& dst) const
307
311
  {
@@ -322,7 +326,7 @@ template<typename ArgType,int Direction>
322
326
  struct evaluator_traits<Homogeneous<ArgType,Direction> >
323
327
  {
324
328
  typedef typename storage_kind_to_evaluator_kind<typename ArgType::StorageKind>::Kind Kind;
325
- typedef HomogeneousShape Shape;
329
+ typedef HomogeneousShape Shape;
326
330
  };
327
331
 
328
332
  template<> struct AssignmentKind<DenseShape,HomogeneousShape> { typedef Dense2Dense Kind; };
@@ -414,7 +418,7 @@ struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, Homogeneous
414
418
  typedef typename helper::ConstantBlock ConstantBlock;
415
419
  typedef typename helper::Xpr RefactoredXpr;
416
420
  typedef evaluator<RefactoredXpr> Base;
417
-
421
+
418
422
  EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
419
423
  : Base( xpr.lhs().nestedExpression() .lazyProduct( xpr.rhs().template topRows<helper::Dim>(xpr.lhs().nestedExpression().cols()) )
420
424
  + ConstantBlock(xpr.rhs().row(xpr.rhs().rows()-1),xpr.lhs().rows(), 1) )
@@ -467,7 +471,7 @@ struct product_evaluator<Product<Lhs, Rhs, LazyProduct>, ProductTag, DenseShape,
467
471
  typedef typename helper::ConstantBlock ConstantBlock;
468
472
  typedef typename helper::Xpr RefactoredXpr;
469
473
  typedef evaluator<RefactoredXpr> Base;
470
-
474
+
471
475
  EIGEN_DEVICE_FUNC explicit product_evaluator(const XprType& xpr)
472
476
  : Base( xpr.lhs().template leftCols<helper::Dim>(xpr.rhs().nestedExpression().rows()) .lazyProduct( xpr.rhs().nestedExpression() )
473
477
  + ConstantBlock(xpr.lhs().col(xpr.lhs().cols()-1),1,xpr.rhs().cols()) )
@@ -119,7 +119,7 @@ public:
119
119
  * If the dimension of the ambient space is greater than 2, then there isn't uniqueness,
120
120
  * so an arbitrary choice is made.
121
121
  */
122
- // FIXME to be consitent with the rest this could be implemented as a static Through function ??
122
+ // FIXME to be consistent with the rest this could be implemented as a static Through function ??
123
123
  EIGEN_DEVICE_FUNC explicit Hyperplane(const ParametrizedLine<Scalar, AmbientDimAtCompileTime>& parametrized)
124
124
  {
125
125
  normal() = parametrized.direction().unitOrthogonal();
@@ -27,9 +27,10 @@ namespace Eigen {
27
27
  template<typename Derived>
28
28
  template<typename OtherDerived>
29
29
  #ifndef EIGEN_PARSED_BY_DOXYGEN
30
- EIGEN_DEVICE_FUNC inline typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
30
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
31
+ typename MatrixBase<Derived>::template cross_product_return_type<OtherDerived>::type
31
32
  #else
32
- inline typename MatrixBase<Derived>::PlainObject
33
+ typename MatrixBase<Derived>::PlainObject
33
34
  #endif
34
35
  MatrixBase<Derived>::cross(const MatrixBase<OtherDerived>& other) const
35
36
  {
@@ -87,7 +87,7 @@ public:
87
87
  /** \returns the distance of a point \a p to its projection onto the line \c *this.
88
88
  * \sa squaredDistance()
89
89
  */
90
- EIGEN_DEVICE_FUNC RealScalar distance(const VectorType& p) const { EIGEN_USING_STD_MATH(sqrt) return sqrt(squaredDistance(p)); }
90
+ EIGEN_DEVICE_FUNC RealScalar distance(const VectorType& p) const { EIGEN_USING_STD(sqrt) return sqrt(squaredDistance(p)); }
91
91
 
92
92
  /** \returns the projection of a point \a p onto the line \c *this. */
93
93
  EIGEN_DEVICE_FUNC VectorType projection(const VectorType& p) const
@@ -104,7 +104,44 @@ public:
104
104
  template <int OtherOptions>
105
105
  EIGEN_DEVICE_FUNC VectorType intersectionPoint(const Hyperplane<_Scalar, _AmbientDim, OtherOptions>& hyperplane) const;
106
106
 
107
- /** \returns \c *this with scalar type casted to \a NewScalarType
107
+ /** Applies the transformation matrix \a mat to \c *this and returns a reference to \c *this.
108
+ *
109
+ * \param mat the Dim x Dim transformation matrix
110
+ * \param traits specifies whether the matrix \a mat represents an #Isometry
111
+ * or a more generic #Affine transformation. The default is #Affine.
112
+ */
113
+ template<typename XprType>
114
+ EIGEN_DEVICE_FUNC inline ParametrizedLine& transform(const MatrixBase<XprType>& mat, TransformTraits traits = Affine)
115
+ {
116
+ if (traits==Affine)
117
+ direction() = (mat * direction()).normalized();
118
+ else if (traits==Isometry)
119
+ direction() = mat * direction();
120
+ else
121
+ {
122
+ eigen_assert(0 && "invalid traits value in ParametrizedLine::transform()");
123
+ }
124
+ origin() = mat * origin();
125
+ return *this;
126
+ }
127
+
128
+ /** Applies the transformation \a t to \c *this and returns a reference to \c *this.
129
+ *
130
+ * \param t the transformation of dimension Dim
131
+ * \param traits specifies whether the transformation \a t represents an #Isometry
132
+ * or a more generic #Affine transformation. The default is #Affine.
133
+ * Other kind of transformations are not supported.
134
+ */
135
+ template<int TrOptions>
136
+ EIGEN_DEVICE_FUNC inline ParametrizedLine& transform(const Transform<Scalar,AmbientDimAtCompileTime,Affine,TrOptions>& t,
137
+ TransformTraits traits = Affine)
138
+ {
139
+ transform(t.linear(), traits);
140
+ origin() += t.translation();
141
+ return *this;
142
+ }
143
+
144
+ /** \returns \c *this with scalar type casted to \a NewScalarType
108
145
  *
109
146
  * Note that if \a NewScalarType is equal to the current scalar type of \c *this
110
147
  * then this function smartly returns a const reference to \c *this.
@@ -141,7 +141,7 @@ class QuaternionBase : public RotationBase<Derived, 3>
141
141
  template<class OtherDerived> EIGEN_DEVICE_FUNC Scalar angularDistance(const QuaternionBase<OtherDerived>& other) const;
142
142
 
143
143
  /** \returns an equivalent 3x3 rotation matrix */
144
- EIGEN_DEVICE_FUNC Matrix3 toRotationMatrix() const;
144
+ EIGEN_DEVICE_FUNC inline Matrix3 toRotationMatrix() const;
145
145
 
146
146
  /** \returns the quaternion which transform \a a into \a b through a rotation */
147
147
  template<typename Derived1, typename Derived2>
@@ -158,6 +158,22 @@ class QuaternionBase : public RotationBase<Derived, 3>
158
158
 
159
159
  template<class OtherDerived> EIGEN_DEVICE_FUNC Quaternion<Scalar> slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const;
160
160
 
161
+ /** \returns true if each coefficients of \c *this and \a other are all exactly equal.
162
+ * \warning When using floating point scalar values you probably should rather use a
163
+ * fuzzy comparison such as isApprox()
164
+ * \sa isApprox(), operator!= */
165
+ template<class OtherDerived>
166
+ EIGEN_DEVICE_FUNC inline bool operator==(const QuaternionBase<OtherDerived>& other) const
167
+ { return coeffs() == other.coeffs(); }
168
+
169
+ /** \returns true if at least one pair of coefficients of \c *this and \a other are not exactly equal to each other.
170
+ * \warning When using floating point scalar values you probably should rather use a
171
+ * fuzzy comparison such as isApprox()
172
+ * \sa isApprox(), operator== */
173
+ template<class OtherDerived>
174
+ EIGEN_DEVICE_FUNC inline bool operator!=(const QuaternionBase<OtherDerived>& other) const
175
+ { return coeffs() != other.coeffs(); }
176
+
161
177
  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
162
178
  * determined by \a prec.
163
179
  *
@@ -181,20 +197,27 @@ class QuaternionBase : public RotationBase<Derived, 3>
181
197
  #else
182
198
 
183
199
  template<typename NewScalarType>
184
- EIGEN_DEVICE_FUNC inline
200
+ EIGEN_DEVICE_FUNC inline
185
201
  typename internal::enable_if<internal::is_same<Scalar,NewScalarType>::value,const Derived&>::type cast() const
186
202
  {
187
203
  return derived();
188
204
  }
189
205
 
190
206
  template<typename NewScalarType>
191
- EIGEN_DEVICE_FUNC inline
207
+ EIGEN_DEVICE_FUNC inline
192
208
  typename internal::enable_if<!internal::is_same<Scalar,NewScalarType>::value,Quaternion<NewScalarType> >::type cast() const
193
209
  {
194
210
  return Quaternion<NewScalarType>(coeffs().template cast<NewScalarType>());
195
211
  }
196
212
  #endif
197
213
 
214
+ #ifndef EIGEN_NO_IO
215
+ friend std::ostream& operator<<(std::ostream& s, const QuaternionBase<Derived>& q) {
216
+ s << q.x() << "i + " << q.y() << "j + " << q.z() << "k" << " + " << q.w();
217
+ return s;
218
+ }
219
+ #endif
220
+
198
221
  #ifdef EIGEN_QUATERNIONBASE_PLUGIN
199
222
  # include EIGEN_QUATERNIONBASE_PLUGIN
200
223
  #endif
@@ -294,6 +317,21 @@ public:
294
317
  EIGEN_DEVICE_FUNC explicit inline Quaternion(const Quaternion<OtherScalar, OtherOptions>& other)
295
318
  { m_coeffs = other.coeffs().template cast<Scalar>(); }
296
319
 
320
+ #if EIGEN_HAS_RVALUE_REFERENCES
321
+ // We define a copy constructor, which means we don't get an implicit move constructor or assignment operator.
322
+ /** Default move constructor */
323
+ EIGEN_DEVICE_FUNC inline Quaternion(Quaternion&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_constructible<Scalar>::value)
324
+ : m_coeffs(std::move(other.coeffs()))
325
+ {}
326
+
327
+ /** Default move assignment operator */
328
+ EIGEN_DEVICE_FUNC Quaternion& operator=(Quaternion&& other) EIGEN_NOEXCEPT_IF(std::is_nothrow_move_assignable<Scalar>::value)
329
+ {
330
+ m_coeffs = std::move(other.coeffs());
331
+ return *this;
332
+ }
333
+ #endif
334
+
297
335
  EIGEN_DEVICE_FUNC static Quaternion UnitRandom();
298
336
 
299
337
  template<typename Derived1, typename Derived2>
@@ -522,8 +560,8 @@ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator
522
560
  template<class Derived>
523
561
  EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Derived& QuaternionBase<Derived>::operator=(const AngleAxisType& aa)
524
562
  {
525
- EIGEN_USING_STD_MATH(cos)
526
- EIGEN_USING_STD_MATH(sin)
563
+ EIGEN_USING_STD(cos)
564
+ EIGEN_USING_STD(sin)
527
565
  Scalar ha = Scalar(0.5)*aa.angle(); // Scalar(0.5) to suppress precision loss warnings
528
566
  this->w() = cos(ha);
529
567
  this->vec() = sin(ha) * aa.axis();
@@ -599,7 +637,7 @@ template<class Derived>
599
637
  template<typename Derived1, typename Derived2>
600
638
  EIGEN_DEVICE_FUNC inline Derived& QuaternionBase<Derived>::setFromTwoVectors(const MatrixBase<Derived1>& a, const MatrixBase<Derived2>& b)
601
639
  {
602
- EIGEN_USING_STD_MATH(sqrt)
640
+ EIGEN_USING_STD(sqrt)
603
641
  Vector3 v0 = a.normalized();
604
642
  Vector3 v1 = b.normalized();
605
643
  Scalar c = v1.dot(v0);
@@ -640,13 +678,13 @@ EIGEN_DEVICE_FUNC inline Derived& QuaternionBase<Derived>::setFromTwoVectors(con
640
678
  template<typename Scalar, int Options>
641
679
  EIGEN_DEVICE_FUNC Quaternion<Scalar,Options> Quaternion<Scalar,Options>::UnitRandom()
642
680
  {
643
- EIGEN_USING_STD_MATH(sqrt)
644
- EIGEN_USING_STD_MATH(sin)
645
- EIGEN_USING_STD_MATH(cos)
681
+ EIGEN_USING_STD(sqrt)
682
+ EIGEN_USING_STD(sin)
683
+ EIGEN_USING_STD(cos)
646
684
  const Scalar u1 = internal::random<Scalar>(0, 1),
647
685
  u2 = internal::random<Scalar>(0, 2*EIGEN_PI),
648
686
  u3 = internal::random<Scalar>(0, 2*EIGEN_PI);
649
- const Scalar a = sqrt(1 - u1),
687
+ const Scalar a = sqrt(Scalar(1) - u1),
650
688
  b = sqrt(u1);
651
689
  return Quaternion (a * sin(u2), a * cos(u2), b * sin(u3), b * cos(u3));
652
690
  }
@@ -725,7 +763,7 @@ template <class OtherDerived>
725
763
  EIGEN_DEVICE_FUNC inline typename internal::traits<Derived>::Scalar
726
764
  QuaternionBase<Derived>::angularDistance(const QuaternionBase<OtherDerived>& other) const
727
765
  {
728
- EIGEN_USING_STD_MATH(atan2)
766
+ EIGEN_USING_STD(atan2)
729
767
  Quaternion<Scalar> d = (*this) * other.conjugate();
730
768
  return Scalar(2) * atan2( d.vec().norm(), numext::abs(d.w()) );
731
769
  }
@@ -743,8 +781,8 @@ template <class OtherDerived>
743
781
  EIGEN_DEVICE_FUNC Quaternion<typename internal::traits<Derived>::Scalar>
744
782
  QuaternionBase<Derived>::slerp(const Scalar& t, const QuaternionBase<OtherDerived>& other) const
745
783
  {
746
- EIGEN_USING_STD_MATH(acos)
747
- EIGEN_USING_STD_MATH(sin)
784
+ EIGEN_USING_STD(acos)
785
+ EIGEN_USING_STD(sin)
748
786
  const Scalar one = Scalar(1) - NumTraits<Scalar>::epsilon();
749
787
  Scalar d = this->dot(other);
750
788
  Scalar absD = numext::abs(d);
@@ -781,7 +819,7 @@ struct quaternionbase_assign_impl<Other,3,3>
781
819
  template<class Derived> EIGEN_DEVICE_FUNC static inline void run(QuaternionBase<Derived>& q, const Other& a_mat)
782
820
  {
783
821
  const typename internal::nested_eval<Other,2>::type mat(a_mat);
784
- EIGEN_USING_STD_MATH(sqrt)
822
+ EIGEN_USING_STD(sqrt)
785
823
  // This algorithm comes from "Quaternion Calculus and Fast Animation",
786
824
  // Ken Shoemake, 1987 SIGGRAPH course notes
787
825
  Scalar t = mat.trace();
@@ -175,7 +175,7 @@ template<typename Scalar>
175
175
  template<typename Derived>
176
176
  EIGEN_DEVICE_FUNC Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
177
177
  {
178
- EIGEN_USING_STD_MATH(atan2)
178
+ EIGEN_USING_STD(atan2)
179
179
  EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
180
180
  m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
181
181
  return *this;
@@ -187,8 +187,8 @@ template<typename Scalar>
187
187
  typename Rotation2D<Scalar>::Matrix2
188
188
  EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const
189
189
  {
190
- EIGEN_USING_STD_MATH(sin)
191
- EIGEN_USING_STD_MATH(cos)
190
+ EIGEN_USING_STD(sin)
191
+ EIGEN_USING_STD(cos)
192
192
  Scalar sinA = sin(m_angle);
193
193
  Scalar cosA = cos(m_angle);
194
194
  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
@@ -29,6 +29,22 @@ namespace Eigen {
29
29
  *
30
30
  * \sa Scaling(), class DiagonalMatrix, MatrixBase::asDiagonal(), class Translation, class Transform
31
31
  */
32
+
33
+ namespace internal
34
+ {
35
+ // This helper helps nvcc+MSVC to properly parse this file.
36
+ // See bug 1412.
37
+ template <typename Scalar, int Dim, int Mode>
38
+ struct uniformscaling_times_affine_returntype
39
+ {
40
+ enum
41
+ {
42
+ NewMode = int(Mode) == int(Isometry) ? Affine : Mode
43
+ };
44
+ typedef Transform <Scalar, Dim, NewMode> type;
45
+ };
46
+ }
47
+
32
48
  template<typename _Scalar>
33
49
  class UniformScaling
34
50
  {
@@ -60,9 +76,11 @@ public:
60
76
 
61
77
  /** Concatenates a uniform scaling and an affine transformation */
62
78
  template<int Dim, int Mode, int Options>
63
- inline Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> operator* (const Transform<Scalar,Dim, Mode, Options>& t) const
79
+ inline typename
80
+ internal::uniformscaling_times_affine_returntype<Scalar,Dim,Mode>::type
81
+ operator* (const Transform<Scalar, Dim, Mode, Options>& t) const
64
82
  {
65
- Transform<Scalar,Dim,(int(Mode)==int(Isometry)?Affine:Mode)> res = t;
83
+ typename internal::uniformscaling_times_affine_returntype<Scalar,Dim,Mode>::type res = t;
66
84
  res.prescale(factor());
67
85
  return res;
68
86
  }
@@ -70,7 +88,7 @@ public:
70
88
  /** Concatenates a uniform scaling and a linear transformation matrix */
71
89
  // TODO returns an expression
72
90
  template<typename Derived>
73
- inline typename internal::plain_matrix_type<Derived>::type operator* (const MatrixBase<Derived>& other) const
91
+ inline typename Eigen::internal::plain_matrix_type<Derived>::type operator* (const MatrixBase<Derived>& other) const
74
92
  { return other * m_factor; }
75
93
 
76
94
  template<typename Derived,int Dim>
@@ -110,7 +128,7 @@ public:
110
128
  /** Concatenates a linear transformation matrix and a uniform scaling
111
129
  * \relates UniformScaling
112
130
  */
113
- // NOTE this operator is defiend in MatrixBase and not as a friend function
131
+ // NOTE this operator is defined in MatrixBase and not as a friend function
114
132
  // of UniformScaling to fix an internal crash of Intel's ICC
115
133
  template<typename Derived,typename Scalar>
116
134
  EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,Scalar,product)