@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,67 +10,65 @@
10
10
  #ifndef EIGEN_ROTATION2D_H
11
11
  #define EIGEN_ROTATION2D_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 Rotation2D
18
- *
19
- * \brief Represents a rotation/orientation in a 2 dimensional space.
20
- *
21
- * \tparam _Scalar the scalar type, i.e., the type of the coefficients
22
- *
23
- * This class is equivalent to a single scalar representing a counter clock wise rotation
24
- * as a single angle in radian. It provides some additional features such as the automatic
25
- * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
26
- * interface to Quaternion in order to facilitate the writing of generic algorithms
27
- * dealing with rotations.
28
- *
29
- * \sa class Quaternion, class Transform
30
- */
19
+ *
20
+ * \class Rotation2D
21
+ *
22
+ * \brief Represents a rotation/orientation in a 2 dimensional space.
23
+ *
24
+ * \tparam Scalar_ the scalar type, i.e., the type of the coefficients
25
+ *
26
+ * This class is equivalent to a single scalar representing a counter clock wise rotation
27
+ * as a single angle in radian. It provides some additional features such as the automatic
28
+ * conversion from/to a 2x2 rotation matrix. Moreover this class aims to provide a similar
29
+ * interface to Quaternion in order to facilitate the writing of generic algorithms
30
+ * dealing with rotations.
31
+ *
32
+ * \sa class Quaternion, class Transform
33
+ */
31
34
 
32
35
  namespace internal {
33
36
 
34
- template<typename _Scalar> struct traits<Rotation2D<_Scalar> >
35
- {
36
- typedef _Scalar Scalar;
37
+ template <typename Scalar_>
38
+ struct traits<Rotation2D<Scalar_> > {
39
+ typedef Scalar_ Scalar;
37
40
  };
38
- } // end namespace internal
39
-
40
- template<typename _Scalar>
41
- class Rotation2D : public RotationBase<Rotation2D<_Scalar>,2>
42
- {
43
- typedef RotationBase<Rotation2D<_Scalar>,2> Base;
41
+ } // end namespace internal
44
42
 
45
- public:
43
+ template <typename Scalar_>
44
+ class Rotation2D : public RotationBase<Rotation2D<Scalar_>, 2> {
45
+ typedef RotationBase<Rotation2D<Scalar_>, 2> Base;
46
46
 
47
+ public:
47
48
  using Base::operator*;
48
49
 
49
50
  enum { Dim = 2 };
50
51
  /** the scalar type of the coefficients */
51
- typedef _Scalar Scalar;
52
- typedef Matrix<Scalar,2,1> Vector2;
53
- typedef Matrix<Scalar,2,2> Matrix2;
54
-
55
- protected:
52
+ typedef Scalar_ Scalar;
53
+ typedef Matrix<Scalar, 2, 1> Vector2;
54
+ typedef Matrix<Scalar, 2, 2> Matrix2;
56
55
 
56
+ protected:
57
57
  Scalar m_angle;
58
58
 
59
- public:
60
-
59
+ public:
61
60
  /** Construct a 2D counter clock wise rotation from the angle \a a in radian. */
62
61
  EIGEN_DEVICE_FUNC explicit inline Rotation2D(const Scalar& a) : m_angle(a) {}
63
-
64
- /** Default constructor wihtout initialization. The represented rotation is undefined. */
62
+
63
+ /** Default constructor without initialization. The represented rotation is undefined. */
65
64
  EIGEN_DEVICE_FUNC Rotation2D() {}
66
65
 
67
66
  /** Construct a 2D rotation from a 2x2 rotation matrix \a mat.
68
- *
69
- * \sa fromRotationMatrix()
70
- */
71
- template<typename Derived>
72
- EIGEN_DEVICE_FUNC explicit Rotation2D(const MatrixBase<Derived>& m)
73
- {
67
+ *
68
+ * \sa fromRotationMatrix()
69
+ */
70
+ template <typename Derived>
71
+ EIGEN_DEVICE_FUNC explicit Rotation2D(const MatrixBase<Derived>& m) {
74
72
  fromRotationMatrix(m.derived());
75
73
  }
76
74
 
@@ -79,18 +77,20 @@ public:
79
77
 
80
78
  /** \returns a read-write reference to the rotation angle */
81
79
  EIGEN_DEVICE_FUNC inline Scalar& angle() { return m_angle; }
82
-
80
+
83
81
  /** \returns the rotation angle in [0,2pi] */
84
82
  EIGEN_DEVICE_FUNC inline Scalar smallestPositiveAngle() const {
85
- Scalar tmp = numext::fmod(m_angle,Scalar(2*EIGEN_PI));
86
- return tmp<Scalar(0) ? tmp + Scalar(2*EIGEN_PI) : tmp;
83
+ Scalar tmp = numext::fmod(m_angle, Scalar(2 * EIGEN_PI));
84
+ return tmp < Scalar(0) ? tmp + Scalar(2 * EIGEN_PI) : tmp;
87
85
  }
88
-
86
+
89
87
  /** \returns the rotation angle in [-pi,pi] */
90
88
  EIGEN_DEVICE_FUNC inline Scalar smallestAngle() const {
91
- Scalar tmp = numext::fmod(m_angle,Scalar(2*EIGEN_PI));
92
- if(tmp>Scalar(EIGEN_PI)) tmp -= Scalar(2*EIGEN_PI);
93
- else if(tmp<-Scalar(EIGEN_PI)) tmp += Scalar(2*EIGEN_PI);
89
+ Scalar tmp = numext::fmod(m_angle, Scalar(2 * EIGEN_PI));
90
+ if (tmp > Scalar(EIGEN_PI))
91
+ tmp -= Scalar(2 * EIGEN_PI);
92
+ else if (tmp < -Scalar(EIGEN_PI))
93
+ tmp += Scalar(2 * EIGEN_PI);
94
94
  return tmp;
95
95
  }
96
96
 
@@ -98,95 +98,97 @@ public:
98
98
  EIGEN_DEVICE_FUNC inline Rotation2D inverse() const { return Rotation2D(-m_angle); }
99
99
 
100
100
  /** Concatenates two rotations */
101
- EIGEN_DEVICE_FUNC inline Rotation2D operator*(const Rotation2D& other) const
102
- { return Rotation2D(m_angle + other.m_angle); }
101
+ EIGEN_DEVICE_FUNC inline Rotation2D operator*(const Rotation2D& other) const {
102
+ return Rotation2D(m_angle + other.m_angle);
103
+ }
103
104
 
104
105
  /** Concatenates two rotations */
105
- EIGEN_DEVICE_FUNC inline Rotation2D& operator*=(const Rotation2D& other)
106
- { m_angle += other.m_angle; return *this; }
106
+ EIGEN_DEVICE_FUNC inline Rotation2D& operator*=(const Rotation2D& other) {
107
+ m_angle += other.m_angle;
108
+ return *this;
109
+ }
107
110
 
108
111
  /** Applies the rotation to a 2D vector */
109
- EIGEN_DEVICE_FUNC Vector2 operator* (const Vector2& vec) const
110
- { return toRotationMatrix() * vec; }
111
-
112
- template<typename Derived>
112
+ EIGEN_DEVICE_FUNC Vector2 operator*(const Vector2& vec) const { return toRotationMatrix() * vec; }
113
+
114
+ template <typename Derived>
113
115
  EIGEN_DEVICE_FUNC Rotation2D& fromRotationMatrix(const MatrixBase<Derived>& m);
114
116
  EIGEN_DEVICE_FUNC Matrix2 toRotationMatrix() const;
115
117
 
116
118
  /** Set \c *this from a 2x2 rotation matrix \a mat.
117
- * In other words, this function extract the rotation angle from the rotation matrix.
118
- *
119
- * This method is an alias for fromRotationMatrix()
120
- *
121
- * \sa fromRotationMatrix()
122
- */
123
- template<typename Derived>
124
- EIGEN_DEVICE_FUNC Rotation2D& operator=(const MatrixBase<Derived>& m)
125
- { return fromRotationMatrix(m.derived()); }
119
+ * In other words, this function extract the rotation angle from the rotation matrix.
120
+ *
121
+ * This method is an alias for fromRotationMatrix()
122
+ *
123
+ * \sa fromRotationMatrix()
124
+ */
125
+ template <typename Derived>
126
+ EIGEN_DEVICE_FUNC Rotation2D& operator=(const MatrixBase<Derived>& m) {
127
+ return fromRotationMatrix(m.derived());
128
+ }
126
129
 
127
130
  /** \returns the spherical interpolation between \c *this and \a other using
128
- * parameter \a t. It is in fact equivalent to a linear interpolation.
129
- */
130
- EIGEN_DEVICE_FUNC inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const
131
- {
132
- Scalar dist = Rotation2D(other.m_angle-m_angle).smallestAngle();
133
- return Rotation2D(m_angle + dist*t);
131
+ * parameter \a t. It is in fact equivalent to a linear interpolation.
132
+ */
133
+ EIGEN_DEVICE_FUNC inline Rotation2D slerp(const Scalar& t, const Rotation2D& other) const {
134
+ Scalar dist = Rotation2D(other.m_angle - m_angle).smallestAngle();
135
+ return Rotation2D(m_angle + dist * t);
134
136
  }
135
137
 
136
138
  /** \returns \c *this with scalar type casted to \a NewScalarType
137
- *
138
- * Note that if \a NewScalarType is equal to the current scalar type of \c *this
139
- * then this function smartly returns a const reference to \c *this.
140
- */
141
- template<typename NewScalarType>
142
- EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type cast() const
143
- { return typename internal::cast_return_type<Rotation2D,Rotation2D<NewScalarType> >::type(*this); }
139
+ *
140
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
141
+ * then this function smartly returns a const reference to \c *this.
142
+ */
143
+ template <typename NewScalarType>
144
+ EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<Rotation2D, Rotation2D<NewScalarType> >::type cast()
145
+ const {
146
+ return typename internal::cast_return_type<Rotation2D, Rotation2D<NewScalarType> >::type(*this);
147
+ }
144
148
 
145
149
  /** Copy constructor with scalar type conversion */
146
- template<typename OtherScalarType>
147
- EIGEN_DEVICE_FUNC inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other)
148
- {
150
+ template <typename OtherScalarType>
151
+ EIGEN_DEVICE_FUNC inline explicit Rotation2D(const Rotation2D<OtherScalarType>& other) {
149
152
  m_angle = Scalar(other.angle());
150
153
  }
151
154
 
152
155
  EIGEN_DEVICE_FUNC static inline Rotation2D Identity() { return Rotation2D(0); }
153
156
 
154
157
  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
155
- * determined by \a prec.
156
- *
157
- * \sa MatrixBase::isApprox() */
158
- EIGEN_DEVICE_FUNC bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec = NumTraits<Scalar>::dummy_precision()) const
159
- { return internal::isApprox(m_angle,other.m_angle, prec); }
160
-
158
+ * determined by \a prec.
159
+ *
160
+ * \sa MatrixBase::isApprox() */
161
+ EIGEN_DEVICE_FUNC bool isApprox(const Rotation2D& other, const typename NumTraits<Scalar>::Real& prec =
162
+ NumTraits<Scalar>::dummy_precision()) const {
163
+ return internal::isApprox(m_angle, other.m_angle, prec);
164
+ }
161
165
  };
162
166
 
163
167
  /** \ingroup Geometry_Module
164
- * single precision 2D rotation type */
168
+ * single precision 2D rotation type */
165
169
  typedef Rotation2D<float> Rotation2Df;
166
170
  /** \ingroup Geometry_Module
167
- * double precision 2D rotation type */
171
+ * double precision 2D rotation type */
168
172
  typedef Rotation2D<double> Rotation2Dd;
169
173
 
170
174
  /** Set \c *this from a 2x2 rotation matrix \a mat.
171
- * In other words, this function extract the rotation angle
172
- * from the rotation matrix.
173
- */
174
- template<typename Scalar>
175
- template<typename Derived>
176
- EIGEN_DEVICE_FUNC Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat)
177
- {
175
+ * In other words, this function extract the rotation angle
176
+ * from the rotation matrix.
177
+ */
178
+ template <typename Scalar>
179
+ template <typename Derived>
180
+ EIGEN_DEVICE_FUNC Rotation2D<Scalar>& Rotation2D<Scalar>::fromRotationMatrix(const MatrixBase<Derived>& mat) {
178
181
  EIGEN_USING_STD(atan2)
179
- EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime==2 && Derived::ColsAtCompileTime==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
180
- m_angle = atan2(mat.coeff(1,0), mat.coeff(0,0));
182
+ EIGEN_STATIC_ASSERT(Derived::RowsAtCompileTime == 2 && Derived::ColsAtCompileTime == 2,
183
+ YOU_MADE_A_PROGRAMMING_MISTAKE)
184
+ m_angle = atan2(mat.coeff(1, 0), mat.coeff(0, 0));
181
185
  return *this;
182
186
  }
183
187
 
184
188
  /** Constructs and \returns an equivalent 2x2 rotation matrix.
185
- */
186
- template<typename Scalar>
187
- typename Rotation2D<Scalar>::Matrix2
188
- EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const
189
- {
189
+ */
190
+ template <typename Scalar>
191
+ typename Rotation2D<Scalar>::Matrix2 EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const {
190
192
  EIGEN_USING_STD(sin)
191
193
  EIGEN_USING_STD(cos)
192
194
  Scalar sinA = sin(m_angle);
@@ -194,6 +196,6 @@ EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const
194
196
  return (Matrix2() << cosA, -sinA, sinA, cosA).finished();
195
197
  }
196
198
 
197
- } // end namespace Eigen
199
+ } // end namespace Eigen
198
200
 
199
- #endif // EIGEN_ROTATION2D_H
201
+ #endif // EIGEN_ROTATION2D_H
@@ -10,197 +10,200 @@
10
10
  #ifndef EIGEN_ROTATIONBASE_H
11
11
  #define EIGEN_ROTATIONBASE_H
12
12
 
13
- namespace Eigen {
13
+ // IWYU pragma: private
14
+ #include "./InternalHeaderCheck.h"
15
+
16
+ namespace Eigen {
14
17
 
15
18
  // forward declaration
16
19
  namespace internal {
17
- template<typename RotationDerived, typename MatrixType, bool IsVector=MatrixType::IsVectorAtCompileTime>
20
+ template <typename RotationDerived, typename MatrixType, bool IsVector = MatrixType::IsVectorAtCompileTime>
18
21
  struct rotation_base_generic_product_selector;
19
22
  }
20
23
 
21
24
  /** \class RotationBase
22
- *
23
- * \brief Common base class for compact rotation representations
24
- *
25
- * \tparam Derived is the derived type, i.e., a rotation type
26
- * \tparam _Dim the dimension of the space
27
- */
28
- template<typename Derived, int _Dim>
29
- class RotationBase
30
- {
31
- public:
32
- enum { Dim = _Dim };
33
- /** the scalar type of the coefficients */
34
- typedef typename internal::traits<Derived>::Scalar Scalar;
35
-
36
- /** corresponding linear transformation matrix type */
37
- typedef Matrix<Scalar,Dim,Dim> RotationMatrixType;
38
- typedef Matrix<Scalar,Dim,1> VectorType;
39
-
40
- public:
41
- EIGEN_DEVICE_FUNC inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
42
- EIGEN_DEVICE_FUNC inline Derived& derived() { return *static_cast<Derived*>(this); }
43
-
44
- /** \returns an equivalent rotation matrix */
45
- EIGEN_DEVICE_FUNC inline RotationMatrixType toRotationMatrix() const { return derived().toRotationMatrix(); }
46
-
47
- /** \returns an equivalent rotation matrix
48
- * This function is added to be conform with the Transform class' naming scheme.
49
- */
50
- EIGEN_DEVICE_FUNC inline RotationMatrixType matrix() const { return derived().toRotationMatrix(); }
51
-
52
- /** \returns the inverse rotation */
53
- EIGEN_DEVICE_FUNC inline Derived inverse() const { return derived().inverse(); }
54
-
55
- /** \returns the concatenation of the rotation \c *this with a translation \a t */
56
- EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Isometry> operator*(const Translation<Scalar,Dim>& t) const
57
- { return Transform<Scalar,Dim,Isometry>(*this) * t; }
58
-
59
- /** \returns the concatenation of the rotation \c *this with a uniform scaling \a s */
60
- EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const UniformScaling<Scalar>& s) const
61
- { return toRotationMatrix() * s.factor(); }
62
-
63
- /** \returns the concatenation of the rotation \c *this with a generic expression \a e
64
- * \a e can be:
65
- * - a DimxDim linear transformation matrix
66
- * - a DimxDim diagonal matrix (axis aligned scaling)
67
- * - a vector of size Dim
68
- */
69
- template<typename OtherDerived>
70
- EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE typename internal::rotation_base_generic_product_selector<Derived,OtherDerived,OtherDerived::IsVectorAtCompileTime>::ReturnType
71
- operator*(const EigenBase<OtherDerived>& e) const
72
- { return internal::rotation_base_generic_product_selector<Derived,OtherDerived>::run(derived(), e.derived()); }
73
-
74
- /** \returns the concatenation of a linear transformation \a l with the rotation \a r */
75
- template<typename OtherDerived> friend
76
- EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const EigenBase<OtherDerived>& l, const Derived& r)
77
- { return l.derived() * r.toRotationMatrix(); }
78
-
79
- /** \returns the concatenation of a scaling \a l with the rotation \a r */
80
- EIGEN_DEVICE_FUNC friend inline Transform<Scalar,Dim,Affine> operator*(const DiagonalMatrix<Scalar,Dim>& l, const Derived& r)
81
- {
82
- Transform<Scalar,Dim,Affine> res(r);
83
- res.linear().applyOnTheLeft(l);
84
- return res;
85
- }
86
-
87
- /** \returns the concatenation of the rotation \c *this with a transformation \a t */
88
- template<int Mode, int Options>
89
- EIGEN_DEVICE_FUNC inline Transform<Scalar,Dim,Mode> operator*(const Transform<Scalar,Dim,Mode,Options>& t) const
90
- { return toRotationMatrix() * t; }
91
-
92
- template<typename OtherVectorType>
93
- EIGEN_DEVICE_FUNC inline VectorType _transformVector(const OtherVectorType& v) const
94
- { return toRotationMatrix() * v; }
25
+ *
26
+ * \brief Common base class for compact rotation representations
27
+ *
28
+ * \tparam Derived is the derived type, i.e., a rotation type
29
+ * \tparam Dim_ the dimension of the space
30
+ */
31
+ template <typename Derived, int Dim_>
32
+ class RotationBase {
33
+ public:
34
+ enum { Dim = Dim_ };
35
+ /** the scalar type of the coefficients */
36
+ typedef typename internal::traits<Derived>::Scalar Scalar;
37
+
38
+ /** corresponding linear transformation matrix type */
39
+ typedef Matrix<Scalar, Dim, Dim> RotationMatrixType;
40
+ typedef Matrix<Scalar, Dim, 1> VectorType;
41
+
42
+ public:
43
+ EIGEN_DEVICE_FUNC inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
44
+ EIGEN_DEVICE_FUNC inline Derived& derived() { return *static_cast<Derived*>(this); }
45
+
46
+ /** \returns an equivalent rotation matrix */
47
+ EIGEN_DEVICE_FUNC inline RotationMatrixType toRotationMatrix() const { return derived().toRotationMatrix(); }
48
+
49
+ /** \returns an equivalent rotation matrix
50
+ * This function is added to be conform with the Transform class' naming scheme.
51
+ */
52
+ EIGEN_DEVICE_FUNC inline RotationMatrixType matrix() const { return derived().toRotationMatrix(); }
53
+
54
+ /** \returns the inverse rotation */
55
+ EIGEN_DEVICE_FUNC inline Derived inverse() const { return derived().inverse(); }
56
+
57
+ /** \returns the concatenation of the rotation \c *this with a translation \a t */
58
+ EIGEN_DEVICE_FUNC inline Transform<Scalar, Dim, Isometry> operator*(const Translation<Scalar, Dim>& t) const {
59
+ return Transform<Scalar, Dim, Isometry>(*this) * t;
60
+ }
61
+
62
+ /** \returns the concatenation of the rotation \c *this with a uniform scaling \a s */
63
+ EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const UniformScaling<Scalar>& s) const {
64
+ return toRotationMatrix() * s.factor();
65
+ }
66
+
67
+ /** \returns the concatenation of the rotation \c *this with a generic expression \a e
68
+ * \a e can be:
69
+ * - a DimxDim linear transformation matrix
70
+ * - a DimxDim diagonal matrix (axis aligned scaling)
71
+ * - a vector of size Dim
72
+ */
73
+ template <typename OtherDerived>
74
+ EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
75
+ typename internal::rotation_base_generic_product_selector<Derived, OtherDerived,
76
+ OtherDerived::IsVectorAtCompileTime>::ReturnType
77
+ operator*(const EigenBase<OtherDerived>& e) const {
78
+ return internal::rotation_base_generic_product_selector<Derived, OtherDerived>::run(derived(), e.derived());
79
+ }
80
+
81
+ /** \returns the concatenation of a linear transformation \a l with the rotation \a r */
82
+ template <typename OtherDerived>
83
+ friend EIGEN_DEVICE_FUNC inline RotationMatrixType operator*(const EigenBase<OtherDerived>& l, const Derived& r) {
84
+ return l.derived() * r.toRotationMatrix();
85
+ }
86
+
87
+ /** \returns the concatenation of a scaling \a l with the rotation \a r */
88
+ EIGEN_DEVICE_FUNC friend inline Transform<Scalar, Dim, Affine> operator*(const DiagonalMatrix<Scalar, Dim>& l,
89
+ const Derived& r) {
90
+ Transform<Scalar, Dim, Affine> res(r);
91
+ res.linear().applyOnTheLeft(l);
92
+ return res;
93
+ }
94
+
95
+ /** \returns the concatenation of the rotation \c *this with a transformation \a t */
96
+ template <int Mode, int Options>
97
+ EIGEN_DEVICE_FUNC inline Transform<Scalar, Dim, Mode> operator*(
98
+ const Transform<Scalar, Dim, Mode, Options>& t) const {
99
+ return toRotationMatrix() * t;
100
+ }
101
+
102
+ template <typename OtherVectorType>
103
+ EIGEN_DEVICE_FUNC inline VectorType _transformVector(const OtherVectorType& v) const {
104
+ return toRotationMatrix() * v;
105
+ }
95
106
  };
96
107
 
97
108
  namespace internal {
98
109
 
99
110
  // implementation of the generic product rotation * matrix
100
- template<typename RotationDerived, typename MatrixType>
101
- struct rotation_base_generic_product_selector<RotationDerived,MatrixType,false>
102
- {
111
+ template <typename RotationDerived, typename MatrixType>
112
+ struct rotation_base_generic_product_selector<RotationDerived, MatrixType, false> {
103
113
  enum { Dim = RotationDerived::Dim };
104
- typedef Matrix<typename RotationDerived::Scalar,Dim,Dim> ReturnType;
105
- EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r, const MatrixType& m)
106
- { return r.toRotationMatrix() * m; }
114
+ typedef Matrix<typename RotationDerived::Scalar, Dim, Dim> ReturnType;
115
+ EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r, const MatrixType& m) {
116
+ return r.toRotationMatrix() * m;
117
+ }
107
118
  };
108
119
 
109
- template<typename RotationDerived, typename Scalar, int Dim, int MaxDim>
110
- struct rotation_base_generic_product_selector< RotationDerived, DiagonalMatrix<Scalar,Dim,MaxDim>, false >
111
- {
112
- typedef Transform<Scalar,Dim,Affine> ReturnType;
113
- EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r, const DiagonalMatrix<Scalar,Dim,MaxDim>& m)
114
- {
120
+ template <typename RotationDerived, typename Scalar, int Dim, int MaxDim>
121
+ struct rotation_base_generic_product_selector<RotationDerived, DiagonalMatrix<Scalar, Dim, MaxDim>, false> {
122
+ typedef Transform<Scalar, Dim, Affine> ReturnType;
123
+ EIGEN_DEVICE_FUNC static inline ReturnType run(const RotationDerived& r,
124
+ const DiagonalMatrix<Scalar, Dim, MaxDim>& m) {
115
125
  ReturnType res(r);
116
126
  res.linear() *= m;
117
127
  return res;
118
128
  }
119
129
  };
120
130
 
121
- template<typename RotationDerived,typename OtherVectorType>
122
- struct rotation_base_generic_product_selector<RotationDerived,OtherVectorType,true>
123
- {
131
+ template <typename RotationDerived, typename OtherVectorType>
132
+ struct rotation_base_generic_product_selector<RotationDerived, OtherVectorType, true> {
124
133
  enum { Dim = RotationDerived::Dim };
125
- typedef Matrix<typename RotationDerived::Scalar,Dim,1> ReturnType;
126
- EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE ReturnType run(const RotationDerived& r, const OtherVectorType& v)
127
- {
134
+ typedef Matrix<typename RotationDerived::Scalar, Dim, 1> ReturnType;
135
+ EIGEN_DEVICE_FUNC static EIGEN_STRONG_INLINE ReturnType run(const RotationDerived& r, const OtherVectorType& v) {
128
136
  return r._transformVector(v);
129
137
  }
130
138
  };
131
139
 
132
- } // end namespace internal
140
+ } // end namespace internal
133
141
 
134
142
  /** \geometry_module
135
- *
136
- * \brief Constructs a Dim x Dim rotation matrix from the rotation \a r
137
- */
138
- template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
139
- template<typename OtherDerived>
140
- EIGEN_DEVICE_FUNC Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
141
- ::Matrix(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
142
- {
143
- EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
143
+ *
144
+ * \brief Constructs a Dim x Dim rotation matrix from the rotation \a r
145
+ */
146
+ template <typename Scalar_, int Rows_, int Cols_, int Storage_, int MaxRows_, int MaxCols_>
147
+ template <typename OtherDerived>
148
+ EIGEN_DEVICE_FUNC Matrix<Scalar_, Rows_, Cols_, Storage_, MaxRows_, MaxCols_>::Matrix(
149
+ const RotationBase<OtherDerived, ColsAtCompileTime>& r) {
150
+ EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix, int(OtherDerived::Dim), int(OtherDerived::Dim))
144
151
  *this = r.toRotationMatrix();
145
152
  }
146
153
 
147
154
  /** \geometry_module
148
- *
149
- * \brief Set a Dim x Dim rotation matrix from the rotation \a r
150
- */
151
- template<typename _Scalar, int _Rows, int _Cols, int _Storage, int _MaxRows, int _MaxCols>
152
- template<typename OtherDerived>
153
- EIGEN_DEVICE_FUNC Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>&
154
- Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>
155
- ::operator=(const RotationBase<OtherDerived,ColsAtCompileTime>& r)
156
- {
157
- EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix,int(OtherDerived::Dim),int(OtherDerived::Dim))
155
+ *
156
+ * \brief Set a Dim x Dim rotation matrix from the rotation \a r
157
+ */
158
+ template <typename Scalar_, int Rows_, int Cols_, int Storage_, int MaxRows_, int MaxCols_>
159
+ template <typename OtherDerived>
160
+ EIGEN_DEVICE_FUNC Matrix<Scalar_, Rows_, Cols_, Storage_, MaxRows_, MaxCols_>&
161
+ Matrix<Scalar_, Rows_, Cols_, Storage_, MaxRows_, MaxCols_>::operator=(
162
+ const RotationBase<OtherDerived, ColsAtCompileTime>& r) {
163
+ EIGEN_STATIC_ASSERT_MATRIX_SPECIFIC_SIZE(Matrix, int(OtherDerived::Dim), int(OtherDerived::Dim))
158
164
  return *this = r.toRotationMatrix();
159
165
  }
160
166
 
161
167
  namespace internal {
162
168
 
163
169
  /** \internal
164
- *
165
- * Helper function to return an arbitrary rotation object to a rotation matrix.
166
- *
167
- * \tparam Scalar the numeric type of the matrix coefficients
168
- * \tparam Dim the dimension of the current space
169
- *
170
- * It returns a Dim x Dim fixed size matrix.
171
- *
172
- * Default specializations are provided for:
173
- * - any scalar type (2D),
174
- * - any matrix expression,
175
- * - any type based on RotationBase (e.g., Quaternion, AngleAxis, Rotation2D)
176
- *
177
- * Currently toRotationMatrix is only used by Transform.
178
- *
179
- * \sa class Transform, class Rotation2D, class Quaternion, class AngleAxis
180
- */
181
- template<typename Scalar, int Dim>
182
- EIGEN_DEVICE_FUNC static inline Matrix<Scalar,2,2> toRotationMatrix(const Scalar& s)
183
- {
184
- EIGEN_STATIC_ASSERT(Dim==2,YOU_MADE_A_PROGRAMMING_MISTAKE)
170
+ *
171
+ * Helper function to return an arbitrary rotation object to a rotation matrix.
172
+ *
173
+ * \tparam Scalar the numeric type of the matrix coefficients
174
+ * \tparam Dim the dimension of the current space
175
+ *
176
+ * It returns a Dim x Dim fixed size matrix.
177
+ *
178
+ * Default specializations are provided for:
179
+ * - any scalar type (2D),
180
+ * - any matrix expression,
181
+ * - any type based on RotationBase (e.g., Quaternion, AngleAxis, Rotation2D)
182
+ *
183
+ * Currently toRotationMatrix is only used by Transform.
184
+ *
185
+ * \sa class Transform, class Rotation2D, class Quaternion, class AngleAxis
186
+ */
187
+ template <typename Scalar, int Dim>
188
+ EIGEN_DEVICE_FUNC static inline Matrix<Scalar, 2, 2> toRotationMatrix(const Scalar& s) {
189
+ EIGEN_STATIC_ASSERT(Dim == 2, YOU_MADE_A_PROGRAMMING_MISTAKE)
185
190
  return Rotation2D<Scalar>(s).toRotationMatrix();
186
191
  }
187
192
 
188
- template<typename Scalar, int Dim, typename OtherDerived>
189
- EIGEN_DEVICE_FUNC static inline Matrix<Scalar,Dim,Dim> toRotationMatrix(const RotationBase<OtherDerived,Dim>& r)
190
- {
193
+ template <typename Scalar, int Dim, typename OtherDerived>
194
+ EIGEN_DEVICE_FUNC static inline Matrix<Scalar, Dim, Dim> toRotationMatrix(const RotationBase<OtherDerived, Dim>& r) {
191
195
  return r.toRotationMatrix();
192
196
  }
193
197
 
194
- template<typename Scalar, int Dim, typename OtherDerived>
195
- EIGEN_DEVICE_FUNC static inline const MatrixBase<OtherDerived>& toRotationMatrix(const MatrixBase<OtherDerived>& mat)
196
- {
197
- EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime==Dim && OtherDerived::ColsAtCompileTime==Dim,
198
- YOU_MADE_A_PROGRAMMING_MISTAKE)
198
+ template <typename Scalar, int Dim, typename OtherDerived>
199
+ EIGEN_DEVICE_FUNC static inline const MatrixBase<OtherDerived>& toRotationMatrix(const MatrixBase<OtherDerived>& mat) {
200
+ EIGEN_STATIC_ASSERT(OtherDerived::RowsAtCompileTime == Dim && OtherDerived::ColsAtCompileTime == Dim,
201
+ YOU_MADE_A_PROGRAMMING_MISTAKE)
199
202
  return mat;
200
203
  }
201
204
 
202
- } // end namespace internal
205
+ } // end namespace internal
203
206
 
204
- } // end namespace Eigen
207
+ } // end namespace Eigen
205
208
 
206
- #endif // EIGEN_ROTATIONBASE_H
209
+ #endif // EIGEN_ROTATIONBASE_H