@smake/eigen 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/README.md +1 -1
  2. package/eigen/Eigen/AccelerateSupport +52 -0
  3. package/eigen/Eigen/Cholesky +18 -21
  4. package/eigen/Eigen/CholmodSupport +28 -28
  5. package/eigen/Eigen/Core +235 -326
  6. package/eigen/Eigen/Eigenvalues +16 -14
  7. package/eigen/Eigen/Geometry +21 -24
  8. package/eigen/Eigen/Householder +9 -8
  9. package/eigen/Eigen/IterativeLinearSolvers +8 -4
  10. package/eigen/Eigen/Jacobi +14 -14
  11. package/eigen/Eigen/KLUSupport +43 -0
  12. package/eigen/Eigen/LU +16 -20
  13. package/eigen/Eigen/MetisSupport +12 -12
  14. package/eigen/Eigen/OrderingMethods +54 -54
  15. package/eigen/Eigen/PaStiXSupport +23 -20
  16. package/eigen/Eigen/PardisoSupport +17 -14
  17. package/eigen/Eigen/QR +18 -21
  18. package/eigen/Eigen/QtAlignedMalloc +5 -13
  19. package/eigen/Eigen/SPQRSupport +21 -14
  20. package/eigen/Eigen/SVD +23 -18
  21. package/eigen/Eigen/Sparse +1 -4
  22. package/eigen/Eigen/SparseCholesky +18 -23
  23. package/eigen/Eigen/SparseCore +18 -17
  24. package/eigen/Eigen/SparseLU +12 -8
  25. package/eigen/Eigen/SparseQR +16 -14
  26. package/eigen/Eigen/StdDeque +5 -2
  27. package/eigen/Eigen/StdList +5 -2
  28. package/eigen/Eigen/StdVector +5 -2
  29. package/eigen/Eigen/SuperLUSupport +30 -24
  30. package/eigen/Eigen/ThreadPool +80 -0
  31. package/eigen/Eigen/UmfPackSupport +19 -17
  32. package/eigen/Eigen/Version +14 -0
  33. package/eigen/Eigen/src/AccelerateSupport/AccelerateSupport.h +423 -0
  34. package/eigen/Eigen/src/AccelerateSupport/InternalHeaderCheck.h +3 -0
  35. package/eigen/Eigen/src/Cholesky/InternalHeaderCheck.h +3 -0
  36. package/eigen/Eigen/src/Cholesky/LDLT.h +377 -401
  37. package/eigen/Eigen/src/Cholesky/LLT.h +332 -360
  38. package/eigen/Eigen/src/Cholesky/LLT_LAPACKE.h +81 -56
  39. package/eigen/Eigen/src/CholmodSupport/CholmodSupport.h +620 -521
  40. package/eigen/Eigen/src/CholmodSupport/InternalHeaderCheck.h +3 -0
  41. package/eigen/Eigen/src/Core/ArithmeticSequence.h +239 -0
  42. package/eigen/Eigen/src/Core/Array.h +341 -294
  43. package/eigen/Eigen/src/Core/ArrayBase.h +190 -203
  44. package/eigen/Eigen/src/Core/ArrayWrapper.h +127 -171
  45. package/eigen/Eigen/src/Core/Assign.h +30 -40
  46. package/eigen/Eigen/src/Core/AssignEvaluator.h +711 -589
  47. package/eigen/Eigen/src/Core/Assign_MKL.h +130 -125
  48. package/eigen/Eigen/src/Core/BandMatrix.h +268 -283
  49. package/eigen/Eigen/src/Core/Block.h +375 -398
  50. package/eigen/Eigen/src/Core/CommaInitializer.h +86 -97
  51. package/eigen/Eigen/src/Core/ConditionEstimator.h +51 -53
  52. package/eigen/Eigen/src/Core/CoreEvaluators.h +1356 -1026
  53. package/eigen/Eigen/src/Core/CoreIterators.h +73 -59
  54. package/eigen/Eigen/src/Core/CwiseBinaryOp.h +114 -132
  55. package/eigen/Eigen/src/Core/CwiseNullaryOp.h +726 -617
  56. package/eigen/Eigen/src/Core/CwiseTernaryOp.h +77 -103
  57. package/eigen/Eigen/src/Core/CwiseUnaryOp.h +56 -68
  58. package/eigen/Eigen/src/Core/CwiseUnaryView.h +132 -95
  59. package/eigen/Eigen/src/Core/DenseBase.h +632 -571
  60. package/eigen/Eigen/src/Core/DenseCoeffsBase.h +511 -624
  61. package/eigen/Eigen/src/Core/DenseStorage.h +512 -509
  62. package/eigen/Eigen/src/Core/DeviceWrapper.h +153 -0
  63. package/eigen/Eigen/src/Core/Diagonal.h +169 -210
  64. package/eigen/Eigen/src/Core/DiagonalMatrix.h +351 -274
  65. package/eigen/Eigen/src/Core/DiagonalProduct.h +12 -10
  66. package/eigen/Eigen/src/Core/Dot.h +172 -222
  67. package/eigen/Eigen/src/Core/EigenBase.h +75 -85
  68. package/eigen/Eigen/src/Core/Fill.h +138 -0
  69. package/eigen/Eigen/src/Core/FindCoeff.h +464 -0
  70. package/eigen/Eigen/src/Core/ForceAlignedAccess.h +90 -109
  71. package/eigen/Eigen/src/Core/Fuzzy.h +82 -105
  72. package/eigen/Eigen/src/Core/GeneralProduct.h +327 -263
  73. package/eigen/Eigen/src/Core/GenericPacketMath.h +1472 -360
  74. package/eigen/Eigen/src/Core/GlobalFunctions.h +194 -151
  75. package/eigen/Eigen/src/Core/IO.h +147 -139
  76. package/eigen/Eigen/src/Core/IndexedView.h +321 -0
  77. package/eigen/Eigen/src/Core/InnerProduct.h +260 -0
  78. package/eigen/Eigen/src/Core/InternalHeaderCheck.h +3 -0
  79. package/eigen/Eigen/src/Core/Inverse.h +56 -66
  80. package/eigen/Eigen/src/Core/Map.h +124 -142
  81. package/eigen/Eigen/src/Core/MapBase.h +256 -281
  82. package/eigen/Eigen/src/Core/MathFunctions.h +1620 -938
  83. package/eigen/Eigen/src/Core/MathFunctionsImpl.h +233 -71
  84. package/eigen/Eigen/src/Core/Matrix.h +491 -416
  85. package/eigen/Eigen/src/Core/MatrixBase.h +468 -453
  86. package/eigen/Eigen/src/Core/NestByValue.h +66 -85
  87. package/eigen/Eigen/src/Core/NoAlias.h +79 -85
  88. package/eigen/Eigen/src/Core/NumTraits.h +235 -148
  89. package/eigen/Eigen/src/Core/PartialReduxEvaluator.h +253 -0
  90. package/eigen/Eigen/src/Core/PermutationMatrix.h +461 -511
  91. package/eigen/Eigen/src/Core/PlainObjectBase.h +871 -894
  92. package/eigen/Eigen/src/Core/Product.h +260 -139
  93. package/eigen/Eigen/src/Core/ProductEvaluators.h +863 -714
  94. package/eigen/Eigen/src/Core/Random.h +161 -136
  95. package/eigen/Eigen/src/Core/RandomImpl.h +262 -0
  96. package/eigen/Eigen/src/Core/RealView.h +250 -0
  97. package/eigen/Eigen/src/Core/Redux.h +366 -336
  98. package/eigen/Eigen/src/Core/Ref.h +308 -209
  99. package/eigen/Eigen/src/Core/Replicate.h +94 -106
  100. package/eigen/Eigen/src/Core/Reshaped.h +398 -0
  101. package/eigen/Eigen/src/Core/ReturnByValue.h +49 -55
  102. package/eigen/Eigen/src/Core/Reverse.h +136 -145
  103. package/eigen/Eigen/src/Core/Select.h +70 -140
  104. package/eigen/Eigen/src/Core/SelfAdjointView.h +262 -285
  105. package/eigen/Eigen/src/Core/SelfCwiseBinaryOp.h +23 -20
  106. package/eigen/Eigen/src/Core/SkewSymmetricMatrix3.h +382 -0
  107. package/eigen/Eigen/src/Core/Solve.h +97 -111
  108. package/eigen/Eigen/src/Core/SolveTriangular.h +131 -129
  109. package/eigen/Eigen/src/Core/SolverBase.h +138 -101
  110. package/eigen/Eigen/src/Core/StableNorm.h +156 -160
  111. package/eigen/Eigen/src/Core/StlIterators.h +619 -0
  112. package/eigen/Eigen/src/Core/Stride.h +91 -88
  113. package/eigen/Eigen/src/Core/Swap.h +70 -38
  114. package/eigen/Eigen/src/Core/Transpose.h +295 -273
  115. package/eigen/Eigen/src/Core/Transpositions.h +272 -317
  116. package/eigen/Eigen/src/Core/TriangularMatrix.h +670 -755
  117. package/eigen/Eigen/src/Core/VectorBlock.h +59 -72
  118. package/eigen/Eigen/src/Core/VectorwiseOp.h +668 -630
  119. package/eigen/Eigen/src/Core/Visitor.h +480 -216
  120. package/eigen/Eigen/src/Core/arch/AVX/Complex.h +407 -293
  121. package/eigen/Eigen/src/Core/arch/AVX/MathFunctions.h +79 -388
  122. package/eigen/Eigen/src/Core/arch/AVX/PacketMath.h +2935 -491
  123. package/eigen/Eigen/src/Core/arch/AVX/Reductions.h +353 -0
  124. package/eigen/Eigen/src/Core/arch/AVX/TypeCasting.h +279 -22
  125. package/eigen/Eigen/src/Core/arch/AVX512/Complex.h +472 -0
  126. package/eigen/Eigen/src/Core/arch/AVX512/GemmKernel.h +1245 -0
  127. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctions.h +85 -333
  128. package/eigen/Eigen/src/Core/arch/AVX512/MathFunctionsFP16.h +75 -0
  129. package/eigen/Eigen/src/Core/arch/AVX512/PacketMath.h +2490 -649
  130. package/eigen/Eigen/src/Core/arch/AVX512/PacketMathFP16.h +1413 -0
  131. package/eigen/Eigen/src/Core/arch/AVX512/Reductions.h +297 -0
  132. package/eigen/Eigen/src/Core/arch/AVX512/TrsmKernel.h +1167 -0
  133. package/eigen/Eigen/src/Core/arch/AVX512/TrsmUnrolls.inc +1219 -0
  134. package/eigen/Eigen/src/Core/arch/AVX512/TypeCasting.h +277 -0
  135. package/eigen/Eigen/src/Core/arch/AVX512/TypeCastingFP16.h +130 -0
  136. package/eigen/Eigen/src/Core/arch/AltiVec/Complex.h +521 -298
  137. package/eigen/Eigen/src/Core/arch/AltiVec/MathFunctions.h +39 -280
  138. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProduct.h +3686 -0
  139. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductCommon.h +205 -0
  140. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMA.h +901 -0
  141. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixProductMMAbfloat16.h +742 -0
  142. package/eigen/Eigen/src/Core/arch/AltiVec/MatrixVectorProduct.inc +2818 -0
  143. package/eigen/Eigen/src/Core/arch/AltiVec/PacketMath.h +3391 -723
  144. package/eigen/Eigen/src/Core/arch/AltiVec/TypeCasting.h +153 -0
  145. package/eigen/Eigen/src/Core/arch/Default/BFloat16.h +866 -0
  146. package/eigen/Eigen/src/Core/arch/Default/ConjHelper.h +113 -14
  147. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctions.h +2634 -0
  148. package/eigen/Eigen/src/Core/arch/Default/GenericPacketMathFunctionsFwd.h +227 -0
  149. package/eigen/Eigen/src/Core/arch/Default/Half.h +1091 -0
  150. package/eigen/Eigen/src/Core/arch/Default/Settings.h +11 -13
  151. package/eigen/Eigen/src/Core/arch/GPU/Complex.h +244 -0
  152. package/eigen/Eigen/src/Core/arch/GPU/MathFunctions.h +104 -0
  153. package/eigen/Eigen/src/Core/arch/GPU/PacketMath.h +1712 -0
  154. package/eigen/Eigen/src/Core/arch/GPU/Tuple.h +268 -0
  155. package/eigen/Eigen/src/Core/arch/GPU/TypeCasting.h +77 -0
  156. package/eigen/Eigen/src/Core/arch/HIP/hcc/math_constants.h +23 -0
  157. package/eigen/Eigen/src/Core/arch/HVX/PacketMath.h +1088 -0
  158. package/eigen/Eigen/src/Core/arch/LSX/Complex.h +520 -0
  159. package/eigen/Eigen/src/Core/arch/LSX/GeneralBlockPanelKernel.h +23 -0
  160. package/eigen/Eigen/src/Core/arch/LSX/MathFunctions.h +43 -0
  161. package/eigen/Eigen/src/Core/arch/LSX/PacketMath.h +2866 -0
  162. package/eigen/Eigen/src/Core/arch/LSX/TypeCasting.h +526 -0
  163. package/eigen/Eigen/src/Core/arch/MSA/Complex.h +620 -0
  164. package/eigen/Eigen/src/Core/arch/MSA/MathFunctions.h +379 -0
  165. package/eigen/Eigen/src/Core/arch/MSA/PacketMath.h +1237 -0
  166. package/eigen/Eigen/src/Core/arch/NEON/Complex.h +531 -289
  167. package/eigen/Eigen/src/Core/arch/NEON/GeneralBlockPanelKernel.h +243 -0
  168. package/eigen/Eigen/src/Core/arch/NEON/MathFunctions.h +50 -73
  169. package/eigen/Eigen/src/Core/arch/NEON/PacketMath.h +5915 -579
  170. package/eigen/Eigen/src/Core/arch/NEON/TypeCasting.h +1642 -0
  171. package/eigen/Eigen/src/Core/arch/NEON/UnaryFunctors.h +57 -0
  172. package/eigen/Eigen/src/Core/arch/SSE/Complex.h +366 -334
  173. package/eigen/Eigen/src/Core/arch/SSE/MathFunctions.h +40 -514
  174. package/eigen/Eigen/src/Core/arch/SSE/PacketMath.h +2164 -675
  175. package/eigen/Eigen/src/Core/arch/SSE/Reductions.h +324 -0
  176. package/eigen/Eigen/src/Core/arch/SSE/TypeCasting.h +188 -35
  177. package/eigen/Eigen/src/Core/arch/SVE/MathFunctions.h +48 -0
  178. package/eigen/Eigen/src/Core/arch/SVE/PacketMath.h +674 -0
  179. package/eigen/Eigen/src/Core/arch/SVE/TypeCasting.h +52 -0
  180. package/eigen/Eigen/src/Core/arch/SYCL/InteropHeaders.h +227 -0
  181. package/eigen/Eigen/src/Core/arch/SYCL/MathFunctions.h +303 -0
  182. package/eigen/Eigen/src/Core/arch/SYCL/PacketMath.h +576 -0
  183. package/eigen/Eigen/src/Core/arch/SYCL/TypeCasting.h +83 -0
  184. package/eigen/Eigen/src/Core/arch/ZVector/Complex.h +434 -261
  185. package/eigen/Eigen/src/Core/arch/ZVector/MathFunctions.h +160 -53
  186. package/eigen/Eigen/src/Core/arch/ZVector/PacketMath.h +1073 -605
  187. package/eigen/Eigen/src/Core/functors/AssignmentFunctors.h +123 -117
  188. package/eigen/Eigen/src/Core/functors/BinaryFunctors.h +594 -322
  189. package/eigen/Eigen/src/Core/functors/NullaryFunctors.h +204 -118
  190. package/eigen/Eigen/src/Core/functors/StlFunctors.h +110 -97
  191. package/eigen/Eigen/src/Core/functors/TernaryFunctors.h +34 -7
  192. package/eigen/Eigen/src/Core/functors/UnaryFunctors.h +1158 -530
  193. package/eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h +2329 -1333
  194. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix.h +328 -364
  195. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +191 -178
  196. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +85 -82
  197. package/eigen/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +154 -73
  198. package/eigen/Eigen/src/Core/products/GeneralMatrixVector.h +396 -542
  199. package/eigen/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +80 -77
  200. package/eigen/Eigen/src/Core/products/Parallelizer.h +208 -92
  201. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +331 -375
  202. package/eigen/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +206 -224
  203. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector.h +139 -146
  204. package/eigen/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +58 -61
  205. package/eigen/Eigen/src/Core/products/SelfadjointProduct.h +71 -71
  206. package/eigen/Eigen/src/Core/products/SelfadjointRank2Update.h +48 -46
  207. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix.h +294 -369
  208. package/eigen/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +246 -238
  209. package/eigen/Eigen/src/Core/products/TriangularMatrixVector.h +244 -247
  210. package/eigen/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +212 -192
  211. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix.h +328 -275
  212. package/eigen/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +108 -109
  213. package/eigen/Eigen/src/Core/products/TriangularSolverVector.h +70 -93
  214. package/eigen/Eigen/src/Core/util/Assert.h +158 -0
  215. package/eigen/Eigen/src/Core/util/BlasUtil.h +413 -290
  216. package/eigen/Eigen/src/Core/util/ConfigureVectorization.h +543 -0
  217. package/eigen/Eigen/src/Core/util/Constants.h +314 -263
  218. package/eigen/Eigen/src/Core/util/DisableStupidWarnings.h +130 -78
  219. package/eigen/Eigen/src/Core/util/EmulateArray.h +270 -0
  220. package/eigen/Eigen/src/Core/util/ForwardDeclarations.h +450 -224
  221. package/eigen/Eigen/src/Core/util/GpuHipCudaDefines.inc +101 -0
  222. package/eigen/Eigen/src/Core/util/GpuHipCudaUndefines.inc +45 -0
  223. package/eigen/Eigen/src/Core/util/IndexedViewHelper.h +487 -0
  224. package/eigen/Eigen/src/Core/util/IntegralConstant.h +279 -0
  225. package/eigen/Eigen/src/Core/util/MKL_support.h +39 -30
  226. package/eigen/Eigen/src/Core/util/Macros.h +939 -646
  227. package/eigen/Eigen/src/Core/util/MaxSizeVector.h +139 -0
  228. package/eigen/Eigen/src/Core/util/Memory.h +1042 -650
  229. package/eigen/Eigen/src/Core/util/Meta.h +618 -426
  230. package/eigen/Eigen/src/Core/util/MoreMeta.h +638 -0
  231. package/eigen/Eigen/src/Core/util/ReenableStupidWarnings.h +32 -19
  232. package/eigen/Eigen/src/Core/util/ReshapedHelper.h +51 -0
  233. package/eigen/Eigen/src/Core/util/Serializer.h +209 -0
  234. package/eigen/Eigen/src/Core/util/StaticAssert.h +51 -164
  235. package/eigen/Eigen/src/Core/util/SymbolicIndex.h +445 -0
  236. package/eigen/Eigen/src/Core/util/XprHelper.h +793 -538
  237. package/eigen/Eigen/src/Eigenvalues/ComplexEigenSolver.h +246 -277
  238. package/eigen/Eigen/src/Eigenvalues/ComplexSchur.h +299 -319
  239. package/eigen/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +52 -48
  240. package/eigen/Eigen/src/Eigenvalues/EigenSolver.h +413 -456
  241. package/eigen/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +309 -325
  242. package/eigen/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +157 -171
  243. package/eigen/Eigen/src/Eigenvalues/HessenbergDecomposition.h +292 -310
  244. package/eigen/Eigen/src/Eigenvalues/InternalHeaderCheck.h +3 -0
  245. package/eigen/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +91 -107
  246. package/eigen/Eigen/src/Eigenvalues/RealQZ.h +539 -606
  247. package/eigen/Eigen/src/Eigenvalues/RealSchur.h +348 -382
  248. package/eigen/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +41 -35
  249. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +579 -600
  250. package/eigen/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +47 -44
  251. package/eigen/Eigen/src/Eigenvalues/Tridiagonalization.h +434 -461
  252. package/eigen/Eigen/src/Geometry/AlignedBox.h +307 -214
  253. package/eigen/Eigen/src/Geometry/AngleAxis.h +135 -137
  254. package/eigen/Eigen/src/Geometry/EulerAngles.h +163 -74
  255. package/eigen/Eigen/src/Geometry/Homogeneous.h +289 -333
  256. package/eigen/Eigen/src/Geometry/Hyperplane.h +152 -161
  257. package/eigen/Eigen/src/Geometry/InternalHeaderCheck.h +3 -0
  258. package/eigen/Eigen/src/Geometry/OrthoMethods.h +168 -145
  259. package/eigen/Eigen/src/Geometry/ParametrizedLine.h +141 -104
  260. package/eigen/Eigen/src/Geometry/Quaternion.h +595 -497
  261. package/eigen/Eigen/src/Geometry/Rotation2D.h +110 -108
  262. package/eigen/Eigen/src/Geometry/RotationBase.h +148 -145
  263. package/eigen/Eigen/src/Geometry/Scaling.h +115 -90
  264. package/eigen/Eigen/src/Geometry/Transform.h +896 -953
  265. package/eigen/Eigen/src/Geometry/Translation.h +100 -98
  266. package/eigen/Eigen/src/Geometry/Umeyama.h +79 -84
  267. package/eigen/Eigen/src/Geometry/arch/Geometry_SIMD.h +154 -0
  268. package/eigen/Eigen/src/Householder/BlockHouseholder.h +54 -42
  269. package/eigen/Eigen/src/Householder/Householder.h +104 -122
  270. package/eigen/Eigen/src/Householder/HouseholderSequence.h +416 -382
  271. package/eigen/Eigen/src/Householder/InternalHeaderCheck.h +3 -0
  272. package/eigen/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +153 -166
  273. package/eigen/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +127 -138
  274. package/eigen/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +95 -124
  275. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +269 -267
  276. package/eigen/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +246 -259
  277. package/eigen/Eigen/src/IterativeLinearSolvers/InternalHeaderCheck.h +3 -0
  278. package/eigen/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +218 -217
  279. package/eigen/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +80 -103
  280. package/eigen/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +59 -63
  281. package/eigen/Eigen/src/Jacobi/InternalHeaderCheck.h +3 -0
  282. package/eigen/Eigen/src/Jacobi/Jacobi.h +256 -291
  283. package/eigen/Eigen/src/KLUSupport/InternalHeaderCheck.h +3 -0
  284. package/eigen/Eigen/src/KLUSupport/KLUSupport.h +339 -0
  285. package/eigen/Eigen/src/LU/Determinant.h +60 -63
  286. package/eigen/Eigen/src/LU/FullPivLU.h +561 -626
  287. package/eigen/Eigen/src/LU/InternalHeaderCheck.h +3 -0
  288. package/eigen/Eigen/src/LU/InverseImpl.h +213 -275
  289. package/eigen/Eigen/src/LU/PartialPivLU.h +407 -435
  290. package/eigen/Eigen/src/LU/PartialPivLU_LAPACKE.h +54 -40
  291. package/eigen/Eigen/src/LU/arch/InverseSize4.h +353 -0
  292. package/eigen/Eigen/src/MetisSupport/InternalHeaderCheck.h +3 -0
  293. package/eigen/Eigen/src/MetisSupport/MetisSupport.h +81 -93
  294. package/eigen/Eigen/src/OrderingMethods/Amd.h +250 -282
  295. package/eigen/Eigen/src/OrderingMethods/Eigen_Colamd.h +950 -1103
  296. package/eigen/Eigen/src/OrderingMethods/InternalHeaderCheck.h +3 -0
  297. package/eigen/Eigen/src/OrderingMethods/Ordering.h +111 -122
  298. package/eigen/Eigen/src/PaStiXSupport/InternalHeaderCheck.h +3 -0
  299. package/eigen/Eigen/src/PaStiXSupport/PaStiXSupport.h +524 -570
  300. package/eigen/Eigen/src/PardisoSupport/InternalHeaderCheck.h +3 -0
  301. package/eigen/Eigen/src/PardisoSupport/PardisoSupport.h +385 -429
  302. package/eigen/Eigen/src/QR/ColPivHouseholderQR.h +494 -473
  303. package/eigen/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +120 -56
  304. package/eigen/Eigen/src/QR/CompleteOrthogonalDecomposition.h +223 -137
  305. package/eigen/Eigen/src/QR/FullPivHouseholderQR.h +517 -460
  306. package/eigen/Eigen/src/QR/HouseholderQR.h +412 -278
  307. package/eigen/Eigen/src/QR/HouseholderQR_LAPACKE.h +32 -23
  308. package/eigen/Eigen/src/QR/InternalHeaderCheck.h +3 -0
  309. package/eigen/Eigen/src/SPQRSupport/InternalHeaderCheck.h +3 -0
  310. package/eigen/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h +263 -261
  311. package/eigen/Eigen/src/SVD/BDCSVD.h +872 -679
  312. package/eigen/Eigen/src/SVD/BDCSVD_LAPACKE.h +174 -0
  313. package/eigen/Eigen/src/SVD/InternalHeaderCheck.h +3 -0
  314. package/eigen/Eigen/src/SVD/JacobiSVD.h +585 -543
  315. package/eigen/Eigen/src/SVD/JacobiSVD_LAPACKE.h +85 -49
  316. package/eigen/Eigen/src/SVD/SVDBase.h +281 -160
  317. package/eigen/Eigen/src/SVD/UpperBidiagonalization.h +202 -237
  318. package/eigen/Eigen/src/SparseCholesky/InternalHeaderCheck.h +3 -0
  319. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky.h +769 -590
  320. package/eigen/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +318 -129
  321. package/eigen/Eigen/src/SparseCore/AmbiVector.h +202 -251
  322. package/eigen/Eigen/src/SparseCore/CompressedStorage.h +184 -236
  323. package/eigen/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +140 -184
  324. package/eigen/Eigen/src/SparseCore/InternalHeaderCheck.h +3 -0
  325. package/eigen/Eigen/src/SparseCore/SparseAssign.h +174 -111
  326. package/eigen/Eigen/src/SparseCore/SparseBlock.h +408 -477
  327. package/eigen/Eigen/src/SparseCore/SparseColEtree.h +100 -112
  328. package/eigen/Eigen/src/SparseCore/SparseCompressedBase.h +531 -280
  329. package/eigen/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +559 -347
  330. package/eigen/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +100 -108
  331. package/eigen/Eigen/src/SparseCore/SparseDenseProduct.h +185 -191
  332. package/eigen/Eigen/src/SparseCore/SparseDiagonalProduct.h +71 -71
  333. package/eigen/Eigen/src/SparseCore/SparseDot.h +49 -47
  334. package/eigen/Eigen/src/SparseCore/SparseFuzzy.h +13 -11
  335. package/eigen/Eigen/src/SparseCore/SparseMap.h +243 -253
  336. package/eigen/Eigen/src/SparseCore/SparseMatrix.h +1614 -1142
  337. package/eigen/Eigen/src/SparseCore/SparseMatrixBase.h +403 -357
  338. package/eigen/Eigen/src/SparseCore/SparsePermutation.h +186 -115
  339. package/eigen/Eigen/src/SparseCore/SparseProduct.h +100 -91
  340. package/eigen/Eigen/src/SparseCore/SparseRedux.h +22 -24
  341. package/eigen/Eigen/src/SparseCore/SparseRef.h +268 -295
  342. package/eigen/Eigen/src/SparseCore/SparseSelfAdjointView.h +371 -414
  343. package/eigen/Eigen/src/SparseCore/SparseSolverBase.h +78 -87
  344. package/eigen/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +81 -95
  345. package/eigen/Eigen/src/SparseCore/SparseTranspose.h +62 -71
  346. package/eigen/Eigen/src/SparseCore/SparseTriangularView.h +132 -144
  347. package/eigen/Eigen/src/SparseCore/SparseUtil.h +146 -115
  348. package/eigen/Eigen/src/SparseCore/SparseVector.h +426 -372
  349. package/eigen/Eigen/src/SparseCore/SparseView.h +164 -193
  350. package/eigen/Eigen/src/SparseCore/TriangularSolver.h +129 -170
  351. package/eigen/Eigen/src/SparseLU/InternalHeaderCheck.h +3 -0
  352. package/eigen/Eigen/src/SparseLU/SparseLU.h +814 -618
  353. package/eigen/Eigen/src/SparseLU/SparseLUImpl.h +61 -48
  354. package/eigen/Eigen/src/SparseLU/SparseLU_Memory.h +102 -118
  355. package/eigen/Eigen/src/SparseLU/SparseLU_Structs.h +38 -35
  356. package/eigen/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +273 -255
  357. package/eigen/Eigen/src/SparseLU/SparseLU_Utils.h +44 -49
  358. package/eigen/Eigen/src/SparseLU/SparseLU_column_bmod.h +104 -108
  359. package/eigen/Eigen/src/SparseLU/SparseLU_column_dfs.h +90 -101
  360. package/eigen/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +57 -58
  361. package/eigen/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +43 -55
  362. package/eigen/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +74 -71
  363. package/eigen/Eigen/src/SparseLU/SparseLU_panel_bmod.h +125 -133
  364. package/eigen/Eigen/src/SparseLU/SparseLU_panel_dfs.h +136 -159
  365. package/eigen/Eigen/src/SparseLU/SparseLU_pivotL.h +51 -52
  366. package/eigen/Eigen/src/SparseLU/SparseLU_pruneL.h +67 -73
  367. package/eigen/Eigen/src/SparseLU/SparseLU_relax_snode.h +24 -26
  368. package/eigen/Eigen/src/SparseQR/InternalHeaderCheck.h +3 -0
  369. package/eigen/Eigen/src/SparseQR/SparseQR.h +451 -490
  370. package/eigen/Eigen/src/StlSupport/StdDeque.h +28 -105
  371. package/eigen/Eigen/src/StlSupport/StdList.h +28 -84
  372. package/eigen/Eigen/src/StlSupport/StdVector.h +28 -108
  373. package/eigen/Eigen/src/StlSupport/details.h +48 -50
  374. package/eigen/Eigen/src/SuperLUSupport/InternalHeaderCheck.h +3 -0
  375. package/eigen/Eigen/src/SuperLUSupport/SuperLUSupport.h +634 -732
  376. package/eigen/Eigen/src/ThreadPool/Barrier.h +70 -0
  377. package/eigen/Eigen/src/ThreadPool/CoreThreadPoolDevice.h +336 -0
  378. package/eigen/Eigen/src/ThreadPool/EventCount.h +241 -0
  379. package/eigen/Eigen/src/ThreadPool/ForkJoin.h +140 -0
  380. package/eigen/Eigen/src/ThreadPool/InternalHeaderCheck.h +4 -0
  381. package/eigen/Eigen/src/ThreadPool/NonBlockingThreadPool.h +587 -0
  382. package/eigen/Eigen/src/ThreadPool/RunQueue.h +230 -0
  383. package/eigen/Eigen/src/ThreadPool/ThreadCancel.h +21 -0
  384. package/eigen/Eigen/src/ThreadPool/ThreadEnvironment.h +43 -0
  385. package/eigen/Eigen/src/ThreadPool/ThreadLocal.h +289 -0
  386. package/eigen/Eigen/src/ThreadPool/ThreadPoolInterface.h +50 -0
  387. package/eigen/Eigen/src/ThreadPool/ThreadYield.h +16 -0
  388. package/eigen/Eigen/src/UmfPackSupport/InternalHeaderCheck.h +3 -0
  389. package/eigen/Eigen/src/UmfPackSupport/UmfPackSupport.h +480 -380
  390. package/eigen/Eigen/src/misc/Image.h +41 -43
  391. package/eigen/Eigen/src/misc/InternalHeaderCheck.h +3 -0
  392. package/eigen/Eigen/src/misc/Kernel.h +39 -41
  393. package/eigen/Eigen/src/misc/RealSvd2x2.h +19 -21
  394. package/eigen/Eigen/src/misc/blas.h +83 -426
  395. package/eigen/Eigen/src/misc/lapacke.h +9976 -16182
  396. package/eigen/Eigen/src/misc/lapacke_helpers.h +163 -0
  397. package/eigen/Eigen/src/misc/lapacke_mangling.h +4 -5
  398. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.inc +344 -0
  399. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.inc +544 -0
  400. package/eigen/Eigen/src/plugins/BlockMethods.inc +1370 -0
  401. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.inc +116 -0
  402. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.inc +167 -0
  403. package/eigen/Eigen/src/plugins/IndexedViewMethods.inc +192 -0
  404. package/eigen/Eigen/src/plugins/InternalHeaderCheck.inc +3 -0
  405. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.inc +331 -0
  406. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.inc +118 -0
  407. package/eigen/Eigen/src/plugins/ReshapedMethods.inc +133 -0
  408. package/lib/LibEigen.d.ts +4 -0
  409. package/lib/LibEigen.js +14 -0
  410. package/lib/index.d.ts +1 -1
  411. package/lib/index.js +7 -3
  412. package/package.json +2 -10
  413. package/eigen/Eigen/CMakeLists.txt +0 -19
  414. package/eigen/Eigen/src/Core/BooleanRedux.h +0 -164
  415. package/eigen/Eigen/src/Core/arch/CUDA/Complex.h +0 -103
  416. package/eigen/Eigen/src/Core/arch/CUDA/Half.h +0 -675
  417. package/eigen/Eigen/src/Core/arch/CUDA/MathFunctions.h +0 -91
  418. package/eigen/Eigen/src/Core/arch/CUDA/PacketMath.h +0 -333
  419. package/eigen/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +0 -1124
  420. package/eigen/Eigen/src/Core/arch/CUDA/TypeCasting.h +0 -212
  421. package/eigen/Eigen/src/Core/util/NonMPL2.h +0 -3
  422. package/eigen/Eigen/src/Geometry/arch/Geometry_SSE.h +0 -161
  423. package/eigen/Eigen/src/LU/arch/Inverse_SSE.h +0 -338
  424. package/eigen/Eigen/src/SparseCore/MappedSparseMatrix.h +0 -67
  425. package/eigen/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +0 -280
  426. package/eigen/Eigen/src/misc/lapack.h +0 -152
  427. package/eigen/Eigen/src/plugins/ArrayCwiseBinaryOps.h +0 -332
  428. package/eigen/Eigen/src/plugins/ArrayCwiseUnaryOps.h +0 -552
  429. package/eigen/Eigen/src/plugins/BlockMethods.h +0 -1058
  430. package/eigen/Eigen/src/plugins/CommonCwiseBinaryOps.h +0 -115
  431. package/eigen/Eigen/src/plugins/CommonCwiseUnaryOps.h +0 -163
  432. package/eigen/Eigen/src/plugins/MatrixCwiseBinaryOps.h +0 -152
  433. package/eigen/Eigen/src/plugins/MatrixCwiseUnaryOps.h +0 -85
  434. package/lib/eigen.d.ts +0 -2
  435. package/lib/eigen.js +0 -15
@@ -10,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,102 +98,104 @@ 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
- {
178
- EIGEN_USING_STD_MATH(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));
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) {
181
+ EIGEN_USING_STD(atan2)
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
- {
190
- EIGEN_USING_STD_MATH(sin)
191
- EIGEN_USING_STD_MATH(cos)
189
+ */
190
+ template <typename Scalar>
191
+ typename Rotation2D<Scalar>::Matrix2 EIGEN_DEVICE_FUNC Rotation2D<Scalar>::toRotationMatrix(void) const {
192
+ EIGEN_USING_STD(sin)
193
+ EIGEN_USING_STD(cos)
192
194
  Scalar sinA = sin(m_angle);
193
195
  Scalar cosA = cos(m_angle);
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