@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
@@ -11,7 +11,7 @@
11
11
  #ifndef EIGEN_TRANSPOSE_H
12
12
  #define EIGEN_TRANSPOSE_H
13
13
 
14
- namespace Eigen {
14
+ namespace Eigen {
15
15
 
16
16
  namespace internal {
17
17
  template<typename MatrixType>
@@ -61,24 +61,27 @@ template<typename MatrixType> class Transpose
61
61
  typedef typename internal::remove_all<MatrixType>::type NestedExpression;
62
62
 
63
63
  EIGEN_DEVICE_FUNC
64
- explicit inline Transpose(MatrixType& matrix) : m_matrix(matrix) {}
64
+ explicit EIGEN_STRONG_INLINE Transpose(MatrixType& matrix) : m_matrix(matrix) {}
65
65
 
66
66
  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Transpose)
67
67
 
68
- EIGEN_DEVICE_FUNC inline Index rows() const { return m_matrix.cols(); }
69
- EIGEN_DEVICE_FUNC inline Index cols() const { return m_matrix.rows(); }
68
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
69
+ Index rows() const EIGEN_NOEXCEPT { return m_matrix.cols(); }
70
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR
71
+ Index cols() const EIGEN_NOEXCEPT { return m_matrix.rows(); }
70
72
 
71
73
  /** \returns the nested expression */
72
- EIGEN_DEVICE_FUNC
74
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
73
75
  const typename internal::remove_all<MatrixTypeNested>::type&
74
76
  nestedExpression() const { return m_matrix; }
75
77
 
76
78
  /** \returns the nested expression */
77
- EIGEN_DEVICE_FUNC
79
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
78
80
  typename internal::remove_reference<MatrixTypeNested>::type&
79
81
  nestedExpression() { return m_matrix; }
80
82
 
81
83
  /** \internal */
84
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
82
85
  void resize(Index nrows, Index ncols) {
83
86
  m_matrix.resize(ncols,nrows);
84
87
  }
@@ -122,8 +125,10 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
122
125
  EIGEN_DENSE_PUBLIC_INTERFACE(Transpose<MatrixType>)
123
126
  EIGEN_INHERIT_ASSIGNMENT_OPERATORS(TransposeImpl)
124
127
 
125
- EIGEN_DEVICE_FUNC inline Index innerStride() const { return derived().nestedExpression().innerStride(); }
126
- EIGEN_DEVICE_FUNC inline Index outerStride() const { return derived().nestedExpression().outerStride(); }
128
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
129
+ Index innerStride() const { return derived().nestedExpression().innerStride(); }
130
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
131
+ Index outerStride() const { return derived().nestedExpression().outerStride(); }
127
132
 
128
133
  typedef typename internal::conditional<
129
134
  internal::is_lvalue<MatrixType>::value,
@@ -131,18 +136,20 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
131
136
  const Scalar
132
137
  >::type ScalarWithConstIfNotLvalue;
133
138
 
134
- EIGEN_DEVICE_FUNC inline ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
135
- EIGEN_DEVICE_FUNC inline const Scalar* data() const { return derived().nestedExpression().data(); }
139
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
140
+ ScalarWithConstIfNotLvalue* data() { return derived().nestedExpression().data(); }
141
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
142
+ const Scalar* data() const { return derived().nestedExpression().data(); }
136
143
 
137
144
  // FIXME: shall we keep the const version of coeffRef?
138
- EIGEN_DEVICE_FUNC
139
- inline const Scalar& coeffRef(Index rowId, Index colId) const
145
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
146
+ const Scalar& coeffRef(Index rowId, Index colId) const
140
147
  {
141
148
  return derived().nestedExpression().coeffRef(colId, rowId);
142
149
  }
143
150
 
144
- EIGEN_DEVICE_FUNC
145
- inline const Scalar& coeffRef(Index index) const
151
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
152
+ const Scalar& coeffRef(Index index) const
146
153
  {
147
154
  return derived().nestedExpression().coeffRef(index);
148
155
  }
@@ -170,7 +177,8 @@ template<typename MatrixType> class TransposeImpl<MatrixType,Dense>
170
177
  *
171
178
  * \sa transposeInPlace(), adjoint() */
172
179
  template<typename Derived>
173
- inline Transpose<Derived>
180
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
181
+ Transpose<Derived>
174
182
  DenseBase<Derived>::transpose()
175
183
  {
176
184
  return TransposeReturnType(derived());
@@ -182,7 +190,8 @@ DenseBase<Derived>::transpose()
182
190
  *
183
191
  * \sa transposeInPlace(), adjoint() */
184
192
  template<typename Derived>
185
- inline typename DenseBase<Derived>::ConstTransposeReturnType
193
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
194
+ typename DenseBase<Derived>::ConstTransposeReturnType
186
195
  DenseBase<Derived>::transpose() const
187
196
  {
188
197
  return ConstTransposeReturnType(derived());
@@ -208,7 +217,7 @@ DenseBase<Derived>::transpose() const
208
217
  *
209
218
  * \sa adjointInPlace(), transpose(), conjugate(), class Transpose, class internal::scalar_conjugate_op */
210
219
  template<typename Derived>
211
- inline const typename MatrixBase<Derived>::AdjointReturnType
220
+ EIGEN_DEVICE_FUNC inline const typename MatrixBase<Derived>::AdjointReturnType
212
221
  MatrixBase<Derived>::adjoint() const
213
222
  {
214
223
  return AdjointReturnType(this->transpose());
@@ -230,11 +239,10 @@ struct inplace_transpose_selector;
230
239
  template<typename MatrixType>
231
240
  struct inplace_transpose_selector<MatrixType,true,false> { // square matrix
232
241
  static void run(MatrixType& m) {
233
- m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
242
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
234
243
  }
235
244
  };
236
245
 
237
- // TODO: vectorized path is currently limited to LargestPacketSize x LargestPacketSize cases only.
238
246
  template<typename MatrixType>
239
247
  struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x PacketSize
240
248
  static void run(MatrixType& m) {
@@ -251,16 +259,66 @@ struct inplace_transpose_selector<MatrixType,true,true> { // PacketSize x Packet
251
259
  }
252
260
  };
253
261
 
262
+
263
+ template <typename MatrixType, Index Alignment>
264
+ void BlockedInPlaceTranspose(MatrixType& m) {
265
+ typedef typename MatrixType::Scalar Scalar;
266
+ typedef typename internal::packet_traits<typename MatrixType::Scalar>::type Packet;
267
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
268
+ eigen_assert(m.rows() == m.cols());
269
+ int row_start = 0;
270
+ for (; row_start + PacketSize <= m.rows(); row_start += PacketSize) {
271
+ for (int col_start = row_start; col_start + PacketSize <= m.cols(); col_start += PacketSize) {
272
+ PacketBlock<Packet> A;
273
+ if (row_start == col_start) {
274
+ for (Index i=0; i<PacketSize; ++i)
275
+ A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
276
+ internal::ptranspose(A);
277
+ for (Index i=0; i<PacketSize; ++i)
278
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), A.packet[i]);
279
+ } else {
280
+ PacketBlock<Packet> B;
281
+ for (Index i=0; i<PacketSize; ++i) {
282
+ A.packet[i] = m.template packetByOuterInner<Alignment>(row_start + i,col_start);
283
+ B.packet[i] = m.template packetByOuterInner<Alignment>(col_start + i, row_start);
284
+ }
285
+ internal::ptranspose(A);
286
+ internal::ptranspose(B);
287
+ for (Index i=0; i<PacketSize; ++i) {
288
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(row_start + i, col_start), m.colIndexByOuterInner(row_start + i,col_start), B.packet[i]);
289
+ m.template writePacket<Alignment>(m.rowIndexByOuterInner(col_start + i, row_start), m.colIndexByOuterInner(col_start + i,row_start), A.packet[i]);
290
+ }
291
+ }
292
+ }
293
+ }
294
+ for (Index row = row_start; row < m.rows(); ++row) {
295
+ m.matrix().row(row).head(row).swap(
296
+ m.matrix().col(row).head(row).transpose());
297
+ }
298
+ }
299
+
254
300
  template<typename MatrixType,bool MatchPacketSize>
255
- struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square matrix
301
+ struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non square or dynamic matrix
256
302
  static void run(MatrixType& m) {
257
- if (m.rows()==m.cols())
258
- m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose());
259
- else
303
+ typedef typename MatrixType::Scalar Scalar;
304
+ if (m.rows() == m.cols()) {
305
+ const Index PacketSize = internal::packet_traits<Scalar>::size;
306
+ if (!NumTraits<Scalar>::IsComplex && m.rows() >= PacketSize) {
307
+ if ((m.rows() % PacketSize) == 0)
308
+ BlockedInPlaceTranspose<MatrixType,internal::evaluator<MatrixType>::Alignment>(m);
309
+ else
310
+ BlockedInPlaceTranspose<MatrixType,Unaligned>(m);
311
+ }
312
+ else {
313
+ m.matrix().template triangularView<StrictlyUpper>().swap(m.matrix().transpose().template triangularView<StrictlyUpper>());
314
+ }
315
+ } else {
260
316
  m = m.transpose().eval();
317
+ }
261
318
  }
262
319
  };
263
320
 
321
+
264
322
  } // end namespace internal
265
323
 
266
324
  /** This is the "in place" version of transpose(): it replaces \c *this by its own transpose.
@@ -278,12 +336,12 @@ struct inplace_transpose_selector<MatrixType,false,MatchPacketSize> { // non squ
278
336
  * Notice however that this method is only useful if you want to replace a matrix by its own transpose.
279
337
  * If you just need the transpose of a matrix, use transpose().
280
338
  *
281
- * \note if the matrix is not square, then \c *this must be a resizable matrix.
339
+ * \note if the matrix is not square, then \c *this must be a resizable matrix.
282
340
  * This excludes (non-square) fixed-size matrices, block-expressions and maps.
283
341
  *
284
342
  * \sa transpose(), adjoint(), adjointInPlace() */
285
343
  template<typename Derived>
286
- inline void DenseBase<Derived>::transposeInPlace()
344
+ EIGEN_DEVICE_FUNC inline void DenseBase<Derived>::transposeInPlace()
287
345
  {
288
346
  eigen_assert((rows() == cols() || (RowsAtCompileTime == Dynamic && ColsAtCompileTime == Dynamic))
289
347
  && "transposeInPlace() called on a non-square non-resizable matrix");
@@ -314,7 +372,7 @@ inline void DenseBase<Derived>::transposeInPlace()
314
372
  *
315
373
  * \sa transpose(), adjoint(), transposeInPlace() */
316
374
  template<typename Derived>
317
- inline void MatrixBase<Derived>::adjointInPlace()
375
+ EIGEN_DEVICE_FUNC inline void MatrixBase<Derived>::adjointInPlace()
318
376
  {
319
377
  derived() = adjoint().eval();
320
378
  }
@@ -393,7 +451,8 @@ struct checkTransposeAliasing_impl<Derived, OtherDerived, false>
393
451
  template<typename Dst, typename Src>
394
452
  void check_for_aliasing(const Dst &dst, const Src &src)
395
453
  {
396
- internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
454
+ if((!Dst::IsVectorAtCompileTime) && dst.rows()>1 && dst.cols()>1)
455
+ internal::checkTransposeAliasing_impl<Dst, Src>::run(dst, src);
397
456
  }
398
457
 
399
458
  } // end namespace internal
@@ -10,20 +10,22 @@
10
10
  #ifndef EIGEN_TRANSPOSITIONS_H
11
11
  #define EIGEN_TRANSPOSITIONS_H
12
12
 
13
- namespace Eigen {
13
+ namespace Eigen {
14
14
 
15
15
  template<typename Derived>
16
16
  class TranspositionsBase
17
17
  {
18
18
  typedef internal::traits<Derived> Traits;
19
-
19
+
20
20
  public:
21
21
 
22
22
  typedef typename Traits::IndicesType IndicesType;
23
23
  typedef typename IndicesType::Scalar StorageIndex;
24
24
  typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
25
25
 
26
+ EIGEN_DEVICE_FUNC
26
27
  Derived& derived() { return *static_cast<Derived*>(this); }
28
+ EIGEN_DEVICE_FUNC
27
29
  const Derived& derived() const { return *static_cast<const Derived*>(this); }
28
30
 
29
31
  /** Copies the \a other transpositions into \c *this */
@@ -35,13 +37,17 @@ class TranspositionsBase
35
37
  }
36
38
 
37
39
  /** \returns the number of transpositions */
40
+ EIGEN_DEVICE_FUNC
38
41
  Index size() const { return indices().size(); }
39
42
  /** \returns the number of rows of the equivalent permutation matrix */
43
+ EIGEN_DEVICE_FUNC
40
44
  Index rows() const { return indices().size(); }
41
45
  /** \returns the number of columns of the equivalent permutation matrix */
46
+ EIGEN_DEVICE_FUNC
42
47
  Index cols() const { return indices().size(); }
43
48
 
44
49
  /** Direct access to the underlying index vector */
50
+ EIGEN_DEVICE_FUNC
45
51
  inline const StorageIndex& coeff(Index i) const { return indices().coeff(i); }
46
52
  /** Direct access to the underlying index vector */
47
53
  inline StorageIndex& coeffRef(Index i) { return indices().coeffRef(i); }
@@ -55,8 +61,10 @@ class TranspositionsBase
55
61
  inline StorageIndex& operator[](Index i) { return indices()(i); }
56
62
 
57
63
  /** const version of indices(). */
64
+ EIGEN_DEVICE_FUNC
58
65
  const IndicesType& indices() const { return derived().indices(); }
59
66
  /** \returns a reference to the stored array representing the transpositions. */
67
+ EIGEN_DEVICE_FUNC
60
68
  IndicesType& indices() { return derived().indices(); }
61
69
 
62
70
  /** Resizes to given size. */
@@ -73,7 +81,7 @@ class TranspositionsBase
73
81
  }
74
82
 
75
83
  // FIXME: do we want such methods ?
76
- // might be usefull when the target matrix expression is complex, e.g.:
84
+ // might be useful when the target matrix expression is complex, e.g.:
77
85
  // object.matrix().block(..,..,..,..) = trans * object.matrix().block(..,..,..,..);
78
86
  /*
79
87
  template<typename MatrixType>
@@ -178,8 +186,10 @@ class Transpositions : public TranspositionsBase<Transpositions<SizeAtCompileTim
178
186
  {}
179
187
 
180
188
  /** const version of indices(). */
189
+ EIGEN_DEVICE_FUNC
181
190
  const IndicesType& indices() const { return m_indices; }
182
191
  /** \returns a reference to the stored array representing the transpositions. */
192
+ EIGEN_DEVICE_FUNC
183
193
  IndicesType& indices() { return m_indices; }
184
194
 
185
195
  protected:
@@ -237,9 +247,11 @@ class Map<Transpositions<SizeAtCompileTime,MaxSizeAtCompileTime,_StorageIndex>,P
237
247
  #endif
238
248
 
239
249
  /** const version of indices(). */
250
+ EIGEN_DEVICE_FUNC
240
251
  const IndicesType& indices() const { return m_indices; }
241
-
252
+
242
253
  /** \returns a reference to the stored array representing the transpositions. */
254
+ EIGEN_DEVICE_FUNC
243
255
  IndicesType& indices() { return m_indices; }
244
256
 
245
257
  protected:
@@ -279,9 +291,11 @@ class TranspositionsWrapper
279
291
  }
280
292
 
281
293
  /** const version of indices(). */
294
+ EIGEN_DEVICE_FUNC
282
295
  const IndicesType& indices() const { return m_indices; }
283
296
 
284
297
  /** \returns a reference to the stored array representing the transpositions. */
298
+ EIGEN_DEVICE_FUNC
285
299
  IndicesType& indices() { return m_indices; }
286
300
 
287
301
  protected:
@@ -335,9 +349,12 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
335
349
 
336
350
  explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}
337
351
 
338
- Index size() const { return m_transpositions.size(); }
339
- Index rows() const { return m_transpositions.size(); }
340
- Index cols() const { return m_transpositions.size(); }
352
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
353
+ Index size() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
354
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
355
+ Index rows() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
356
+ EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
357
+ Index cols() const EIGEN_NOEXCEPT { return m_transpositions.size(); }
341
358
 
342
359
  /** \returns the \a matrix with the inverse transpositions applied to the columns.
343
360
  */
@@ -356,7 +373,8 @@ class Transpose<TranspositionsBase<TranspositionsDerived> >
356
373
  {
357
374
  return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
358
375
  }
359
-
376
+
377
+ EIGEN_DEVICE_FUNC
360
378
  const TranspositionType& nestedExpression() const { return m_transpositions; }
361
379
 
362
380
  protected: