@smake/eigen 1.0.2 → 1.1.1

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 (435) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -21
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +235 -326
  6. package/eigen/Eigen/Eigenvalues +16 -14
  7. package/eigen/Eigen/Geometry +21 -24
  8. package/eigen/Eigen/Householder +9 -8
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -14
  11. package/eigen/Eigen/KLUSupport +43 -0
  12. package/eigen/Eigen/LU +16 -20
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -54
  15. package/eigen/Eigen/PaStiXSupport +23 -20
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -21
  18. package/eigen/Eigen/QtAlignedMalloc +5 -13
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -18
  21. package/eigen/Eigen/Sparse +1 -4
  22. package/eigen/Eigen/SparseCholesky +18 -23
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +12 -8
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
  37. package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
  42. package/eigen/Eigen/src/Core/Array.h +341 -294
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
  48. package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
  49. package/eigen/Eigen/src/Core/Block.h +375 -398
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
  53. package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
  59. package/eigen/Eigen/src/Core/DenseBase.h +632 -571
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
  61. package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +169 -210
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +172 -222
  67. package/eigen/Eigen/src/Core/EigenBase.h +75 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
  75. package/eigen/Eigen/src/Core/IO.h +147 -139
  76. package/eigen/Eigen/src/Core/IndexedView.h +321 -0
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +56 -66
  80. package/eigen/Eigen/src/Core/Map.h +124 -142
  81. package/eigen/Eigen/src/Core/MapBase.h +256 -281
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
  84. package/eigen/Eigen/src/Core/Matrix.h +491 -416
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
  86. package/eigen/Eigen/src/Core/NestByValue.h +66 -85
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -85
  88. package/eigen/Eigen/src/Core/NumTraits.h +235 -148
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
  92. package/eigen/Eigen/src/Core/Product.h +260 -139
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
  94. package/eigen/Eigen/src/Core/Random.h +161 -136
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +366 -336
  98. package/eigen/Eigen/src/Core/Ref.h +308 -209
  99. package/eigen/Eigen/src/Core/Replicate.h +94 -106
  100. package/eigen/Eigen/src/Core/Reshaped.h +398 -0
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +136 -145
  103. package/eigen/Eigen/src/Core/Select.h +70 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +97 -111
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
  109. package/eigen/Eigen/src/Core/SolverBase.h +138 -101
  110. package/eigen/Eigen/src/Core/StableNorm.h +156 -160
  111. package/eigen/Eigen/src/Core/StlIterators.h +619 -0
  112. package/eigen/Eigen/src/Core/Stride.h +91 -88
  113. package/eigen/Eigen/src/Core/Swap.h +70 -38
  114. package/eigen/Eigen/src/Core/Transpose.h +295 -273
  115. package/eigen/Eigen/src/Core/Transpositions.h +272 -317
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
  119. package/eigen/Eigen/src/Core/Visitor.h +480 -216
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  217. package/eigen/Eigen/src/Core/util/Constants.h +314 -263
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
  226. package/eigen/Eigen/src/Core/util/Macros.h +939 -646
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
  229. package/eigen/Eigen/src/Core/util/Meta.h +618 -426
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
  264. package/eigen/Eigen/src/Geometry/Transform.h +896 -953
  265. package/eigen/Eigen/src/Geometry/Translation.h +100 -98
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
  269. package/eigen/Eigen/src/Householder/Householder.h +104 -122
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  285. package/eigen/Eigen/src/LU/Determinant.h +60 -63
  286. package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/lib/LibEigen.d.ts +4 -0
  409. package/lib/LibEigen.js +14 -0
  410. package/lib/index.d.ts +1 -1
  411. package/lib/index.js +7 -3
  412. package/package.json +2 -10
  413. package/eigen/Eigen/CMakeLists.txt +0 -19
  414. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
  415. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
  416. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  417. package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
  418. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  419. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  420. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  421. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  422. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  423. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  424. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  425. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  426. package/eigen/Eigen/src/misc/lapack.h +0 -152
  427. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
  428. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
  429. package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
  430. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  431. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
  432. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  433. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
  434. package/lib/eigen.d.ts +0 -2
  435. package/lib/eigen.js +0 -15
@@ -10,59 +10,57 @@
10
10
  #ifndef EIGEN_TRANSLATION_H
11
11
  #define EIGEN_TRANSLATION_H
12
12
 
13
- namespace Eigen {
13
+ // IWYU pragma: private
14
+ #include "./InternalHeaderCheck.h"
15
+
16
+ namespace Eigen {
14
17
 
15
18
  /** \geometry_module \ingroup Geometry_Module
16
- *
17
- * \class Translation
18
- *
19
- * \brief Represents a translation transformation
20
- *
21
- * \tparam _Scalar the scalar type, i.e., the type of the coefficients.
22
- * \tparam _Dim the dimension of the space, can be a compile time value or Dynamic
23
- *
24
- * \note This class is not aimed to be used to store a translation transformation,
25
- * but rather to make easier the constructions and updates of Transform objects.
26
- *
27
- * \sa class Scaling, class Transform
28
- */
29
- template<typename _Scalar, int _Dim>
30
- class Translation
31
- {
32
- public:
33
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_Dim)
19
+ *
20
+ * \class Translation
21
+ *
22
+ * \brief Represents a translation transformation
23
+ *
24
+ * \tparam Scalar_ the scalar type, i.e., the type of the coefficients.
25
+ * \tparam Dim_ the dimension of the space, can be a compile time value or Dynamic
26
+ *
27
+ * \note This class is not aimed to be used to store a translation transformation,
28
+ * but rather to make easier the constructions and updates of Transform objects.
29
+ *
30
+ * \sa class Scaling, class Transform
31
+ */
32
+ template <typename Scalar_, int Dim_>
33
+ class Translation {
34
+ public:
35
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar_, Dim_)
34
36
  /** dimension of the space */
35
- enum { Dim = _Dim };
37
+ enum { Dim = Dim_ };
36
38
  /** the scalar type of the coefficients */
37
- typedef _Scalar Scalar;
39
+ typedef Scalar_ Scalar;
38
40
  /** corresponding vector type */
39
- typedef Matrix<Scalar,Dim,1> VectorType;
41
+ typedef Matrix<Scalar, Dim, 1> VectorType;
40
42
  /** corresponding linear transformation matrix type */
41
- typedef Matrix<Scalar,Dim,Dim> LinearMatrixType;
43
+ typedef Matrix<Scalar, Dim, Dim> LinearMatrixType;
42
44
  /** corresponding affine transformation type */
43
- typedef Transform<Scalar,Dim,Affine> AffineTransformType;
45
+ typedef Transform<Scalar, Dim, Affine> AffineTransformType;
44
46
  /** corresponding isometric transformation type */
45
- typedef Transform<Scalar,Dim,Isometry> IsometryTransformType;
46
-
47
- protected:
47
+ typedef Transform<Scalar, Dim, Isometry> IsometryTransformType;
48
48
 
49
+ protected:
49
50
  VectorType m_coeffs;
50
51
 
51
- public:
52
-
52
+ public:
53
53
  /** Default constructor without initialization. */
54
54
  EIGEN_DEVICE_FUNC Translation() {}
55
55
  /** */
56
- EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy)
57
- {
58
- eigen_assert(Dim==2);
56
+ EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy) {
57
+ eigen_assert(Dim == 2);
59
58
  m_coeffs.x() = sx;
60
59
  m_coeffs.y() = sy;
61
60
  }
62
61
  /** */
63
- EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz)
64
- {
65
- eigen_assert(Dim==3);
62
+ EIGEN_DEVICE_FUNC inline Translation(const Scalar& sx, const Scalar& sy, const Scalar& sz) {
63
+ eigen_assert(Dim == 3);
66
64
  m_coeffs.x() = sx;
67
65
  m_coeffs.y() = sy;
68
66
  m_coeffs.z() = sz;
@@ -70,19 +68,19 @@ public:
70
68
  /** Constructs and initialize the translation transformation from a vector of translation coefficients */
71
69
  EIGEN_DEVICE_FUNC explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
72
70
 
73
- /** \brief Retruns the x-translation by value. **/
74
- EIGEN_DEVICE_FUNC inline Scalar x() const { return m_coeffs.x(); }
75
- /** \brief Retruns the y-translation by value. **/
76
- EIGEN_DEVICE_FUNC inline Scalar y() const { return m_coeffs.y(); }
77
- /** \brief Retruns the z-translation by value. **/
78
- EIGEN_DEVICE_FUNC inline Scalar z() const { return m_coeffs.z(); }
71
+ /** \brief Returns the x-translation by value. **/
72
+ EIGEN_DEVICE_FUNC constexpr Scalar x() const { return m_coeffs.x(); }
73
+ /** \brief Returns the y-translation by value. **/
74
+ EIGEN_DEVICE_FUNC constexpr Scalar y() const { return m_coeffs.y(); }
75
+ /** \brief Returns the z-translation by value. **/
76
+ EIGEN_DEVICE_FUNC constexpr Scalar z() const { return m_coeffs.z(); }
79
77
 
80
- /** \brief Retruns the x-translation as a reference. **/
81
- EIGEN_DEVICE_FUNC inline Scalar& x() { return m_coeffs.x(); }
82
- /** \brief Retruns the y-translation as a reference. **/
83
- EIGEN_DEVICE_FUNC inline Scalar& y() { return m_coeffs.y(); }
84
- /** \brief Retruns the z-translation as a reference. **/
85
- EIGEN_DEVICE_FUNC inline Scalar& z() { return m_coeffs.z(); }
78
+ /** \brief Returns the x-translation as a reference. **/
79
+ EIGEN_DEVICE_FUNC constexpr Scalar& x() { return m_coeffs.x(); }
80
+ /** \brief Returns the y-translation as a reference. **/
81
+ EIGEN_DEVICE_FUNC constexpr Scalar& y() { return m_coeffs.y(); }
82
+ /** \brief Returns the z-translation as a reference. **/
83
+ EIGEN_DEVICE_FUNC constexpr Scalar& z() { return m_coeffs.z(); }
86
84
 
87
85
  EIGEN_DEVICE_FUNC const VectorType& vector() const { return m_coeffs; }
88
86
  EIGEN_DEVICE_FUNC VectorType& vector() { return m_coeffs; }
@@ -91,49 +89,51 @@ public:
91
89
  EIGEN_DEVICE_FUNC VectorType& translation() { return m_coeffs; }
92
90
 
93
91
  /** Concatenates two translation */
94
- EIGEN_DEVICE_FUNC inline Translation operator* (const Translation& other) const
95
- { return Translation(m_coeffs + other.m_coeffs); }
92
+ EIGEN_DEVICE_FUNC inline Translation operator*(const Translation& other) const {
93
+ return Translation(m_coeffs + other.m_coeffs);
94
+ }
96
95
 
97
96
  /** Concatenates a translation and a uniform scaling */
98
- EIGEN_DEVICE_FUNC inline AffineTransformType operator* (const UniformScaling<Scalar>& other) const;
97
+ EIGEN_DEVICE_FUNC inline AffineTransformType operator*(const UniformScaling<Scalar>& other) const;
99
98
 
100
99
  /** Concatenates a translation and a linear transformation */
101
- template<typename OtherDerived>
102
- EIGEN_DEVICE_FUNC inline AffineTransformType operator* (const EigenBase<OtherDerived>& linear) const;
100
+ template <typename OtherDerived>
101
+ EIGEN_DEVICE_FUNC inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear) const;
103
102
 
104
103
  /** Concatenates a translation and a rotation */
105
- template<typename Derived>
106
- EIGEN_DEVICE_FUNC inline IsometryTransformType operator*(const RotationBase<Derived,Dim>& r) const
107
- { return *this * IsometryTransformType(r); }
104
+ template <typename Derived>
105
+ EIGEN_DEVICE_FUNC inline IsometryTransformType operator*(const RotationBase<Derived, Dim>& r) const {
106
+ return *this * IsometryTransformType(r);
107
+ }
108
108
 
109
109
  /** \returns the concatenation of a linear transformation \a l with the translation \a t */
110
110
  // its a nightmare to define a templated friend function outside its declaration
111
- template<typename OtherDerived> friend
112
- EIGEN_DEVICE_FUNC inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear, const Translation& t)
113
- {
111
+ template <typename OtherDerived>
112
+ friend EIGEN_DEVICE_FUNC inline AffineTransformType operator*(const EigenBase<OtherDerived>& linear,
113
+ const Translation& t) {
114
114
  AffineTransformType res;
115
115
  res.matrix().setZero();
116
116
  res.linear() = linear.derived();
117
117
  res.translation() = linear.derived() * t.m_coeffs;
118
118
  res.matrix().row(Dim).setZero();
119
- res(Dim,Dim) = Scalar(1);
119
+ res(Dim, Dim) = Scalar(1);
120
120
  return res;
121
121
  }
122
122
 
123
123
  /** Concatenates a translation and a transformation */
124
- template<int Mode, int Options>
125
- EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode> operator* (const Transform<Scalar,Dim,Mode,Options>& t) const
126
- {
127
- Transform<Scalar,Dim,Mode> res = t;
124
+ template <int Mode, int Options>
125
+ EIGEN_DEVICE_FUNC inline Transform<Scalar, Dim, Mode> operator*(
126
+ const Transform<Scalar, Dim, Mode, Options>& t) const {
127
+ Transform<Scalar, Dim, Mode> res = t;
128
128
  res.pretranslate(m_coeffs);
129
129
  return res;
130
130
  }
131
131
 
132
132
  /** Applies translation to vector */
133
- template<typename Derived>
134
- inline typename internal::enable_if<Derived::IsVectorAtCompileTime,VectorType>::type
135
- operator* (const MatrixBase<Derived>& vec) const
136
- { return m_coeffs + vec.derived(); }
133
+ template <typename Derived>
134
+ inline std::enable_if_t<Derived::IsVectorAtCompileTime, VectorType> operator*(const MatrixBase<Derived>& vec) const {
135
+ return m_coeffs + vec.derived();
136
+ }
137
137
 
138
138
  /** \returns the inverse translation (opposite) */
139
139
  Translation inverse() const { return Translation(-m_coeffs); }
@@ -141,62 +141,64 @@ public:
141
141
  static const Translation Identity() { return Translation(VectorType::Zero()); }
142
142
 
143
143
  /** \returns \c *this with scalar type casted to \a NewScalarType
144
- *
145
- * Note that if \a NewScalarType is equal to the current scalar type of \c *this
146
- * then this function smartly returns a const reference to \c *this.
147
- */
148
- template<typename NewScalarType>
149
- EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type cast() const
150
- { return typename internal::cast_return_type<Translation,Translation<NewScalarType,Dim> >::type(*this); }
144
+ *
145
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
146
+ * then this function smartly returns a const reference to \c *this.
147
+ */
148
+ template <typename NewScalarType>
149
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Translation, Translation<NewScalarType, Dim> >::type
150
+ cast() const {
151
+ return typename internal::cast_return_type<Translation, Translation<NewScalarType, Dim> >::type(*this);
152
+ }
151
153
 
152
154
  /** Copy constructor with scalar type conversion */
153
- template<typename OtherScalarType>
154
- EIGEN_DEVICE_FUNC inline explicit Translation(const Translation<OtherScalarType,Dim>& other)
155
- { m_coeffs = other.vector().template cast<Scalar>(); }
155
+ template <typename OtherScalarType>
156
+ EIGEN_DEVICE_FUNC inline explicit Translation(const Translation<OtherScalarType, Dim>& other) {
157
+ m_coeffs = other.vector().template cast<Scalar>();
158
+ }
156
159
 
157
160
  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
158
- * determined by \a prec.
159
- *
160
- * \sa MatrixBase::isApprox() */
161
- EIGEN_DEVICE_FUNC bool isApprox(const Translation& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
162
- { return m_coeffs.isApprox(other.m_coeffs, prec); }
163
-
161
+ * determined by \a prec.
162
+ *
163
+ * \sa MatrixBase::isApprox() */
164
+ EIGEN_DEVICE_FUNC bool isApprox(const Translation& other, const typename NumTraits<Scalar>::Real& prec =
165
+ NumTraits<Scalar>::dummy_precision()) const {
166
+ return m_coeffs.isApprox(other.m_coeffs, prec);
167
+ }
164
168
  };
165
169
 
166
170
  /** \addtogroup Geometry_Module */
167
171
  //@{
168
172
  typedef Translation<float, 2> Translation2f;
169
- typedef Translation<double,2> Translation2d;
173
+ typedef Translation<double, 2> Translation2d;
170
174
  typedef Translation<float, 3> Translation3f;
171
- typedef Translation<double,3> Translation3d;
175
+ typedef Translation<double, 3> Translation3d;
172
176
  //@}
173
177
 
174
- template<typename Scalar, int Dim>
175
- EIGEN_DEVICE_FUNC inline typename Translation<Scalar,Dim>::AffineTransformType
176
- Translation<Scalar,Dim>::operator* (const UniformScaling<Scalar>& other) const
177
- {
178
+ template <typename Scalar, int Dim>
179
+ EIGEN_DEVICE_FUNC inline typename Translation<Scalar, Dim>::AffineTransformType Translation<Scalar, Dim>::operator*(
180
+ const UniformScaling<Scalar>& other) const {
178
181
  AffineTransformType res;
179
182
  res.matrix().setZero();
180
183
  res.linear().diagonal().fill(other.factor());
181
184
  res.translation() = m_coeffs;
182
- res(Dim,Dim) = Scalar(1);
185
+ res(Dim, Dim) = Scalar(1);
183
186
  return res;
184
187
  }
185
188
 
186
- template<typename Scalar, int Dim>
187
- template<typename OtherDerived>
188
- EIGEN_DEVICE_FUNC inline typename Translation<Scalar,Dim>::AffineTransformType
189
- Translation<Scalar,Dim>::operator* (const EigenBase<OtherDerived>& linear) const
190
- {
189
+ template <typename Scalar, int Dim>
190
+ template <typename OtherDerived>
191
+ EIGEN_DEVICE_FUNC inline typename Translation<Scalar, Dim>::AffineTransformType Translation<Scalar, Dim>::operator*(
192
+ const EigenBase<OtherDerived>& linear) const {
191
193
  AffineTransformType res;
192
194
  res.matrix().setZero();
193
195
  res.linear() = linear.derived();
194
196
  res.translation() = m_coeffs;
195
197
  res.matrix().row(Dim).setZero();
196
- res(Dim,Dim) = Scalar(1);
198
+ res(Dim, Dim) = Scalar(1);
197
199
  return res;
198
200
  }
199
201
 
200
- } // end namespace Eigen
202
+ } // end namespace Eigen
201
203
 
202
- #endif // EIGEN_TRANSLATION_H
204
+ #endif // EIGEN_TRANSLATION_H
@@ -10,15 +10,16 @@
10
10
  #ifndef EIGEN_UMEYAMA_H
11
11
  #define EIGEN_UMEYAMA_H
12
12
 
13
- // This file requires the user to include
13
+ // This file requires the user to include
14
14
  // * Eigen/Core
15
- // * Eigen/LU
15
+ // * Eigen/LU
16
16
  // * Eigen/SVD
17
17
  // * Eigen/Array
18
18
 
19
- namespace Eigen {
19
+ // IWYU pragma: private
20
+ #include "./InternalHeaderCheck.h"
20
21
 
21
- #ifndef EIGEN_PARSED_BY_DOXYGEN
22
+ namespace Eigen {
22
23
 
23
24
  // These helpers are required since it allows to use mixed types as parameters
24
25
  // for the Umeyama. The problem with mixed parameters is that the return type
@@ -28,88 +29,83 @@ namespace internal {
28
29
  // Compile time return type deduction for different MatrixBase types.
29
30
  // Different means here different alignment and parameters but the same underlying
30
31
  // real scalar type.
31
- template<typename MatrixType, typename OtherMatrixType>
32
- struct umeyama_transform_matrix_type
33
- {
32
+ template <typename MatrixType, typename OtherMatrixType>
33
+ struct umeyama_transform_matrix_type {
34
34
  enum {
35
- MinRowsAtCompileTime = EIGEN_SIZE_MIN_PREFER_DYNAMIC(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
35
+ MinRowsAtCompileTime =
36
+ internal::min_size_prefer_dynamic(MatrixType::RowsAtCompileTime, OtherMatrixType::RowsAtCompileTime),
36
37
 
37
38
  // When possible we want to choose some small fixed size value since the result
38
- // is likely to fit on the stack. So here, EIGEN_SIZE_MIN_PREFER_DYNAMIC is not what we want.
39
- HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime)+1
39
+ // is likely to fit on the stack. So here, min_size_prefer_dynamic is not what we want.
40
+ HomogeneousDimension = int(MinRowsAtCompileTime) == Dynamic ? Dynamic : int(MinRowsAtCompileTime) + 1
40
41
  };
41
42
 
42
- typedef Matrix<typename traits<MatrixType>::Scalar,
43
- HomogeneousDimension,
44
- HomogeneousDimension,
45
- AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor),
46
- HomogeneousDimension,
47
- HomogeneousDimension
48
- > type;
43
+ typedef Matrix<typename traits<MatrixType>::Scalar, HomogeneousDimension, HomogeneousDimension,
44
+ AutoAlign | (traits<MatrixType>::Flags & RowMajorBit ? RowMajor : ColMajor), HomogeneousDimension,
45
+ HomogeneousDimension>
46
+ type;
49
47
  };
50
48
 
51
- }
52
-
53
- #endif
49
+ } // namespace internal
54
50
 
55
51
  /**
56
- * \geometry_module \ingroup Geometry_Module
57
- *
58
- * \brief Returns the transformation between two point sets.
59
- *
60
- * The algorithm is based on:
61
- * "Least-squares estimation of transformation parameters between two point patterns",
62
- * Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
63
- *
64
- * It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
65
- * \f{align*}
66
- * \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
67
- * \f}
68
- * is minimized.
69
- *
70
- * The algorithm is based on the analysis of the covariance matrix
71
- * \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
72
- * of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where
73
- * \f$d\f$ is corresponding to the dimension (which is typically small).
74
- * The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
75
- * though the actual computational effort lies in the covariance
76
- * matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when
77
- * the input point sets have dimension \f$d \times m\f$.
78
- *
79
- * Currently the method is working only for floating point matrices.
80
- *
81
- * \todo Should the return type of umeyama() become a Transform?
82
- *
83
- * \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
84
- * \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
85
- * \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
86
- * \return The homogeneous transformation
87
- * \f{align*}
88
- * T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
89
- * \f}
90
- * minimizing the residual above. This transformation is always returned as an
91
- * Eigen::Matrix.
92
- */
52
+ * \geometry_module \ingroup Geometry_Module
53
+ *
54
+ * \brief Returns the transformation between two point sets.
55
+ *
56
+ * The algorithm is based on:
57
+ * "Least-squares estimation of transformation parameters between two point patterns",
58
+ * Shinji Umeyama, PAMI 1991, DOI: 10.1109/34.88573
59
+ *
60
+ * It estimates parameters \f$ c, \mathbf{R}, \f$ and \f$ \mathbf{t} \f$ such that
61
+ * \f{align*}
62
+ * \frac{1}{n} \sum_{i=1}^n \vert\vert y_i - (c\mathbf{R}x_i + \mathbf{t}) \vert\vert_2^2
63
+ * \f}
64
+ * is minimized.
65
+ *
66
+ * The algorithm is based on the analysis of the covariance matrix
67
+ * \f$ \Sigma_{\mathbf{x}\mathbf{y}} \in \mathbb{R}^{d \times d} \f$
68
+ * of the input point sets \f$ \mathbf{x} \f$ and \f$ \mathbf{y} \f$ where
69
+ * \f$d\f$ is corresponding to the dimension (which is typically small).
70
+ * The analysis is involving the SVD having a complexity of \f$O(d^3)\f$
71
+ * though the actual computational effort lies in the covariance
72
+ * matrix computation which has an asymptotic lower bound of \f$O(dm)\f$ when
73
+ * the input point sets have dimension \f$d \times m\f$.
74
+ *
75
+ * Currently the method is working only for floating point matrices.
76
+ *
77
+ * \todo Should the return type of umeyama() become a Transform?
78
+ *
79
+ * \param src Source points \f$ \mathbf{x} = \left( x_1, \hdots, x_n \right) \f$.
80
+ * \param dst Destination points \f$ \mathbf{y} = \left( y_1, \hdots, y_n \right) \f$.
81
+ * \param with_scaling Sets \f$ c=1 \f$ when <code>false</code> is passed.
82
+ * \return The homogeneous transformation
83
+ * \f{align*}
84
+ * T = \begin{bmatrix} c\mathbf{R} & \mathbf{t} \\ \mathbf{0} & 1 \end{bmatrix}
85
+ * \f}
86
+ * minimizing the residual above. This transformation is always returned as an
87
+ * Eigen::Matrix.
88
+ */
93
89
  template <typename Derived, typename OtherDerived>
94
- typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type
95
- umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true)
96
- {
90
+ typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type umeyama(
91
+ const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, bool with_scaling = true) {
97
92
  typedef typename internal::umeyama_transform_matrix_type<Derived, OtherDerived>::type TransformationMatrixType;
98
93
  typedef typename internal::traits<TransformationMatrixType>::Scalar Scalar;
99
94
  typedef typename NumTraits<Scalar>::Real RealScalar;
100
95
 
101
96
  EIGEN_STATIC_ASSERT(!NumTraits<Scalar>::IsComplex, NUMERIC_TYPE_MUST_BE_REAL)
102
- EIGEN_STATIC_ASSERT((internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
103
- YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
97
+ EIGEN_STATIC_ASSERT(
98
+ (internal::is_same<Scalar, typename internal::traits<OtherDerived>::Scalar>::value),
99
+ YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY)
104
100
 
105
- enum { Dimension = EIGEN_SIZE_MIN_PREFER_DYNAMIC(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
101
+ enum { Dimension = internal::min_size_prefer_dynamic(Derived::RowsAtCompileTime, OtherDerived::RowsAtCompileTime) };
106
102
 
107
103
  typedef Matrix<Scalar, Dimension, 1> VectorType;
108
104
  typedef Matrix<Scalar, Dimension, Dimension> MatrixType;
109
105
  typedef typename internal::plain_matrix_type_row_major<Derived>::type RowMajorMatrixType;
110
106
 
111
- const Index m = src.rows(); // dimension
112
- const Index n = src.cols(); // number of measurements
107
+ const Index m = src.rows(); // dimension
108
+ const Index n = src.cols(); // number of measurements
113
109
 
114
110
  // required for demeaning ...
115
111
  const RealScalar one_over_n = RealScalar(1) / static_cast<RealScalar>(n);
@@ -122,45 +118,44 @@ umeyama(const MatrixBase<Derived>& src, const MatrixBase<OtherDerived>& dst, boo
122
118
  const RowMajorMatrixType src_demean = src.colwise() - src_mean;
123
119
  const RowMajorMatrixType dst_demean = dst.colwise() - dst_mean;
124
120
 
125
- // Eq. (36)-(37)
126
- const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
127
-
128
121
  // Eq. (38)
129
122
  const MatrixType sigma = one_over_n * dst_demean * src_demean.transpose();
130
123
 
131
- JacobiSVD<MatrixType> svd(sigma, ComputeFullU | ComputeFullV);
124
+ JacobiSVD<MatrixType, ComputeFullU | ComputeFullV> svd(sigma);
132
125
 
133
126
  // Initialize the resulting transformation with an identity matrix...
134
- TransformationMatrixType Rt = TransformationMatrixType::Identity(m+1,m+1);
127
+ TransformationMatrixType Rt = TransformationMatrixType::Identity(m + 1, m + 1);
135
128
 
136
129
  // Eq. (39)
137
130
  VectorType S = VectorType::Ones(m);
138
131
 
139
- if ( svd.matrixU().determinant() * svd.matrixV().determinant() < 0 )
140
- S(m-1) = -1;
132
+ if (svd.matrixU().determinant() * svd.matrixV().determinant() < 0) {
133
+ Index tmp = m - 1;
134
+ S(tmp) = -1;
135
+ }
141
136
 
142
137
  // Eq. (40) and (43)
143
- Rt.block(0,0,m,m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
138
+ Rt.block(0, 0, m, m).noalias() = svd.matrixU() * S.asDiagonal() * svd.matrixV().transpose();
139
+
140
+ if (with_scaling) {
141
+ // Eq. (36)-(37)
142
+ const Scalar src_var = src_demean.rowwise().squaredNorm().sum() * one_over_n;
144
143
 
145
- if (with_scaling)
146
- {
147
144
  // Eq. (42)
148
- const Scalar c = Scalar(1)/src_var * svd.singularValues().dot(S);
145
+ const Scalar c = Scalar(1) / src_var * svd.singularValues().dot(S);
149
146
 
150
147
  // Eq. (41)
151
148
  Rt.col(m).head(m) = dst_mean;
152
- Rt.col(m).head(m).noalias() -= c*Rt.topLeftCorner(m,m)*src_mean;
153
- Rt.block(0,0,m,m) *= c;
154
- }
155
- else
156
- {
149
+ Rt.col(m).head(m).noalias() -= c * Rt.topLeftCorner(m, m) * src_mean;
150
+ Rt.block(0, 0, m, m) *= c;
151
+ } else {
157
152
  Rt.col(m).head(m) = dst_mean;
158
- Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m,m)*src_mean;
153
+ Rt.col(m).head(m).noalias() -= Rt.topLeftCorner(m, m) * src_mean;
159
154
  }
160
155
 
161
156
  return Rt;
162
157
  }
163
158
 
164
- } // end namespace Eigen
159
+ } // end namespace Eigen
165
160
 
166
- #endif // EIGEN_UMEYAMA_H
161
+ #endif // EIGEN_UMEYAMA_H