@smake/eigen 1.1.0 → 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 (431) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -20
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +187 -120
  6. package/eigen/Eigen/Eigenvalues +16 -13
  7. package/eigen/Eigen/Geometry +18 -18
  8. package/eigen/Eigen/Householder +9 -7
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -13
  11. package/eigen/Eigen/KLUSupport +23 -21
  12. package/eigen/Eigen/LU +15 -16
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -51
  15. package/eigen/Eigen/PaStiXSupport +23 -21
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -20
  18. package/eigen/Eigen/QtAlignedMalloc +5 -12
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -17
  21. package/eigen/Eigen/Sparse +1 -2
  22. package/eigen/Eigen/SparseCholesky +18 -15
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +9 -9
  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 +366 -405
  37. package/eigen/Eigen/src/Cholesky/LLT.h +323 -367
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +585 -529
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +143 -317
  42. package/eigen/Eigen/src/Core/Array.h +329 -370
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +126 -170
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +651 -604
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +125 -120
  48. package/eigen/Eigen/src/Core/BandMatrix.h +267 -282
  49. package/eigen/Eigen/src/Core/Block.h +371 -390
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +85 -100
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1214 -937
  53. package/eigen/Eigen/src/Core/CoreIterators.h +72 -63
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +112 -129
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +676 -702
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +55 -67
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +127 -92
  59. package/eigen/Eigen/src/Core/DenseBase.h +630 -658
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -628
  61. package/eigen/Eigen/src/Core/DenseStorage.h +511 -590
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +168 -207
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +346 -317
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +167 -217
  67. package/eigen/Eigen/src/Core/EigenBase.h +74 -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 -113
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +315 -261
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1182 -520
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +193 -157
  75. package/eigen/Eigen/src/Core/IO.h +131 -156
  76. package/eigen/Eigen/src/Core/IndexedView.h +209 -125
  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 +50 -59
  80. package/eigen/Eigen/src/Core/Map.h +123 -141
  81. package/eigen/Eigen/src/Core/MapBase.h +255 -282
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1247 -1201
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +162 -99
  84. package/eigen/Eigen/src/Core/Matrix.h +463 -494
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -470
  86. package/eigen/Eigen/src/Core/NestByValue.h +58 -52
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -86
  88. package/eigen/Eigen/src/Core/NumTraits.h +206 -206
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +163 -142
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +858 -972
  92. package/eigen/Eigen/src/Core/Product.h +246 -130
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +779 -671
  94. package/eigen/Eigen/src/Core/Random.h +153 -164
  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 +334 -314
  98. package/eigen/Eigen/src/Core/Ref.h +259 -257
  99. package/eigen/Eigen/src/Core/Replicate.h +92 -104
  100. package/eigen/Eigen/src/Core/Reshaped.h +215 -271
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +47 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +133 -148
  103. package/eigen/Eigen/src/Core/Select.h +68 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +254 -290
  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 +88 -102
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +126 -124
  109. package/eigen/Eigen/src/Core/SolverBase.h +132 -133
  110. package/eigen/Eigen/src/Core/StableNorm.h +113 -147
  111. package/eigen/Eigen/src/Core/StlIterators.h +404 -248
  112. package/eigen/Eigen/src/Core/Stride.h +90 -92
  113. package/eigen/Eigen/src/Core/Swap.h +70 -39
  114. package/eigen/Eigen/src/Core/Transpose.h +258 -295
  115. package/eigen/Eigen/src/Core/Transpositions.h +270 -333
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +642 -743
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +653 -704
  119. package/eigen/Eigen/src/Core/Visitor.h +464 -308
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +380 -187
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +65 -163
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2145 -638
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +253 -60
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +278 -228
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +48 -269
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +1597 -754
  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 +229 -41
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +420 -184
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +40 -49
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +2962 -2213
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +196 -212
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +713 -441
  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 +2380 -1362
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +390 -224
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +78 -67
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +1784 -799
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +167 -50
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +528 -379
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +10 -12
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +41 -40
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +550 -523
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +27 -30
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +8 -8
  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 +54 -82
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +84 -92
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +51 -47
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +454 -306
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +175 -115
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +23 -30
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +4366 -2857
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +616 -393
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +350 -198
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +38 -149
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +1791 -912
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +128 -40
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +10 -6
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +156 -234
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +6 -3
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +27 -32
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +119 -117
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +325 -419
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +15 -17
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +325 -181
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +94 -83
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +811 -458
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +121 -124
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +576 -370
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +194 -109
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +95 -112
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1038 -749
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +1883 -1375
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +312 -370
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +189 -176
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +84 -81
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +292 -337
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +207 -105
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +327 -388
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +138 -147
  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 -47
  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 -277
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +68 -94
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +342 -303
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +348 -317
  217. package/eigen/Eigen/src/Core/util/Constants.h +297 -262
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -90
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +449 -247
  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 +417 -116
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +211 -204
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -37
  226. package/eigen/Eigen/src/Core/util/Macros.h +655 -773
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +970 -748
  229. package/eigen/Eigen/src/Core/util/Meta.h +581 -633
  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 +17 -17
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +50 -166
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +377 -225
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +784 -547
  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 +89 -105
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +537 -607
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +342 -381
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +541 -595
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +430 -462
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +226 -227
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +131 -133
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +285 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +151 -160
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -146
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +127 -127
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +566 -506
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +107 -105
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +113 -106
  264. package/eigen/Eigen/src/Geometry/Transform.h +858 -936
  265. package/eigen/Eigen/src/Geometry/Translation.h +94 -92
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +90 -104
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +51 -46
  269. package/eigen/Eigen/src/Householder/Householder.h +102 -124
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +412 -453
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +149 -162
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +124 -119
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +92 -104
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +251 -243
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +224 -228
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +178 -227
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +79 -84
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +54 -60
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +252 -308
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +208 -227
  285. package/eigen/Eigen/src/LU/Determinant.h +50 -69
  286. package/eigen/Eigen/src/LU/FullPivLU.h +545 -596
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +206 -285
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +390 -428
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +72 -70
  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 +243 -265
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +831 -1004
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +112 -119
  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 -430
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +479 -479
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +166 -153
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +495 -475
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +394 -285
  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 +244 -264
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +817 -713
  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 +577 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +242 -182
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +200 -235
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +765 -594
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +308 -94
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -252
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +134 -178
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +149 -140
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +403 -440
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +525 -303
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +555 -339
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +169 -197
  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 +1603 -1245
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -350
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +94 -97
  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 +370 -416
  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 +138 -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 +756 -710
  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 +245 -301
  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 +89 -100
  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 +124 -132
  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 +450 -502
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -93
  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 -730
  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 +428 -464
  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 +9972 -16179
  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.h → BlockMethods.inc} +434 -506
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/{CommonCwiseUnaryOps.h → CommonCwiseUnaryOps.inc} +58 -68
  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/package.json +1 -1
  409. package/eigen/COPYING.APACHE +0 -203
  410. package/eigen/COPYING.BSD +0 -26
  411. package/eigen/COPYING.GPL +0 -674
  412. package/eigen/COPYING.LGPL +0 -502
  413. package/eigen/COPYING.MINPACK +0 -51
  414. package/eigen/COPYING.MPL2 +0 -373
  415. package/eigen/COPYING.README +0 -18
  416. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -162
  417. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -258
  418. package/eigen/Eigen/src/Core/arch/Default/TypeCasting.h +0 -120
  419. package/eigen/Eigen/src/Core/arch/SYCL/SyclMemoryModel.h +0 -694
  420. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  421. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  422. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  423. package/eigen/Eigen/src/misc/lapack.h +0 -152
  424. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -358
  425. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -696
  426. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  427. package/eigen/Eigen/src/plugins/IndexedViewMethods.h +0 -262
  428. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  429. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -95
  430. package/eigen/Eigen/src/plugins/ReshapedMethods.h +0 -149
  431. package/eigen/README.md +0 -5
@@ -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;
@@ -71,18 +69,18 @@ public:
71
69
  EIGEN_DEVICE_FUNC explicit inline Translation(const VectorType& vector) : m_coeffs(vector) {}
72
70
 
73
71
  /** \brief Returns the x-translation by value. **/
74
- EIGEN_DEVICE_FUNC inline Scalar x() const { return m_coeffs.x(); }
72
+ EIGEN_DEVICE_FUNC constexpr Scalar x() const { return m_coeffs.x(); }
75
73
  /** \brief Returns the y-translation by value. **/
76
- EIGEN_DEVICE_FUNC inline Scalar y() const { return m_coeffs.y(); }
74
+ EIGEN_DEVICE_FUNC constexpr Scalar y() const { return m_coeffs.y(); }
77
75
  /** \brief Returns the z-translation by value. **/
78
- EIGEN_DEVICE_FUNC inline Scalar z() const { return m_coeffs.z(); }
76
+ EIGEN_DEVICE_FUNC constexpr Scalar z() const { return m_coeffs.z(); }
79
77
 
80
78
  /** \brief Returns the x-translation as a reference. **/
81
- EIGEN_DEVICE_FUNC inline Scalar& x() { return m_coeffs.x(); }
79
+ EIGEN_DEVICE_FUNC constexpr Scalar& x() { return m_coeffs.x(); }
82
80
  /** \brief Returns the y-translation as a reference. **/
83
- EIGEN_DEVICE_FUNC inline Scalar& y() { return m_coeffs.y(); }
81
+ EIGEN_DEVICE_FUNC constexpr Scalar& y() { return m_coeffs.y(); }
84
82
  /** \brief Returns the z-translation as a reference. **/
85
- EIGEN_DEVICE_FUNC inline Scalar& z() { return m_coeffs.z(); }
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