@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
@@ -7,82 +7,128 @@
7
7
  // Public License v. 2.0. If a copy of the MPL was not distributed
8
8
  // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
9
 
10
+ // Function void Eigen::AlignedBox::transform(const Transform& transform)
11
+ // is provided under the following license agreement:
12
+ //
13
+ // Software License Agreement (BSD License)
14
+ //
15
+ // Copyright (c) 2011-2014, Willow Garage, Inc.
16
+ // Copyright (c) 2014-2015, Open Source Robotics Foundation
17
+ // All rights reserved.
18
+ //
19
+ // Redistribution and use in source and binary forms, with or without
20
+ // modification, are permitted provided that the following conditions
21
+ // are met:
22
+ //
23
+ // * Redistributions of source code must retain the above copyright
24
+ // notice, this list of conditions and the following disclaimer.
25
+ // * Redistributions in binary form must reproduce the above
26
+ // copyright notice, this list of conditions and the following
27
+ // disclaimer in the documentation and/or other materials provided
28
+ // with the distribution.
29
+ // * Neither the name of Open Source Robotics Foundation nor the names of its
30
+ // contributors may be used to endorse or promote products derived
31
+ // from this software without specific prior written permission.
32
+ //
33
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
34
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
35
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
36
+ // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
37
+ // COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
38
+ // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
39
+ // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
40
+ // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
41
+ // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
42
+ // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
43
+ // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
44
+ // POSSIBILITY OF SUCH DAMAGE.
45
+
10
46
  #ifndef EIGEN_ALIGNEDBOX_H
11
47
  #define EIGEN_ALIGNEDBOX_H
12
48
 
13
- namespace Eigen {
49
+ // IWYU pragma: private
50
+ #include "./InternalHeaderCheck.h"
51
+
52
+ namespace Eigen {
14
53
 
15
54
  /** \geometry_module \ingroup Geometry_Module
16
- *
17
- *
18
- * \class AlignedBox
19
- *
20
- * \brief An axis aligned box
21
- *
22
- * \tparam _Scalar the type of the scalar coefficients
23
- * \tparam _AmbientDim the dimension of the ambient space, can be a compile time value or Dynamic.
24
- *
25
- * This class represents an axis aligned box as a pair of the minimal and maximal corners.
26
- * \warning The result of most methods is undefined when applied to an empty box. You can check for empty boxes using isEmpty().
27
- * \sa alignedboxtypedefs
28
- */
29
- template <typename _Scalar, int _AmbientDim>
30
- class AlignedBox
31
- {
32
- public:
33
- EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
34
- enum { AmbientDimAtCompileTime = _AmbientDim };
35
- typedef _Scalar Scalar;
36
- typedef NumTraits<Scalar> ScalarTraits;
37
- typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
38
- typedef typename ScalarTraits::Real RealScalar;
39
- typedef typename ScalarTraits::NonInteger NonInteger;
40
- typedef Matrix<Scalar,AmbientDimAtCompileTime,1> VectorType;
55
+ *
56
+ *
57
+ * \class AlignedBox
58
+ *
59
+ * \brief An axis aligned box
60
+ *
61
+ * \tparam Scalar_ the type of the scalar coefficients
62
+ * \tparam AmbientDim_ the dimension of the ambient space, can be a compile time value or Dynamic.
63
+ *
64
+ * This class represents an axis aligned box as a pair of the minimal and maximal corners.
65
+ * \warning The result of most methods is undefined when applied to an empty box. You can check for empty boxes using
66
+ * isEmpty(). \sa alignedboxtypedefs
67
+ */
68
+ template <typename Scalar_, int AmbientDim_>
69
+ class AlignedBox {
70
+ public:
71
+ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar_, AmbientDim_)
72
+ enum { AmbientDimAtCompileTime = AmbientDim_ };
73
+ typedef Scalar_ Scalar;
74
+ typedef NumTraits<Scalar> ScalarTraits;
75
+ typedef Eigen::Index Index; ///< \deprecated since Eigen 3.3
76
+ typedef typename ScalarTraits::Real RealScalar;
77
+ typedef typename ScalarTraits::NonInteger NonInteger;
78
+ typedef Matrix<Scalar, AmbientDimAtCompileTime, 1> VectorType;
41
79
  typedef CwiseBinaryOp<internal::scalar_sum_op<Scalar>, const VectorType, const VectorType> VectorTypeSum;
42
80
 
43
81
  /** Define constants to name the corners of a 1D, 2D or 3D axis aligned bounding box */
44
- enum CornerType
45
- {
82
+ enum CornerType {
46
83
  /** 1D names @{ */
47
- Min=0, Max=1,
84
+ Min = 0,
85
+ Max = 1,
48
86
  /** @} */
49
87
 
50
88
  /** Identifier for 2D corner @{ */
51
- BottomLeft=0, BottomRight=1,
52
- TopLeft=2, TopRight=3,
89
+ BottomLeft = 0,
90
+ BottomRight = 1,
91
+ TopLeft = 2,
92
+ TopRight = 3,
53
93
  /** @} */
54
94
 
55
95
  /** Identifier for 3D corner @{ */
56
- BottomLeftFloor=0, BottomRightFloor=1,
57
- TopLeftFloor=2, TopRightFloor=3,
58
- BottomLeftCeil=4, BottomRightCeil=5,
59
- TopLeftCeil=6, TopRightCeil=7
96
+ BottomLeftFloor = 0,
97
+ BottomRightFloor = 1,
98
+ TopLeftFloor = 2,
99
+ TopRightFloor = 3,
100
+ BottomLeftCeil = 4,
101
+ BottomRightCeil = 5,
102
+ TopLeftCeil = 6,
103
+ TopRightCeil = 7
60
104
  /** @} */
61
105
  };
62
106
 
63
-
64
107
  /** Default constructor initializing a null box. */
65
- EIGEN_DEVICE_FUNC inline AlignedBox()
66
- { if (AmbientDimAtCompileTime!=Dynamic) setEmpty(); }
108
+ EIGEN_DEVICE_FUNC inline AlignedBox() {
109
+ if (EIGEN_CONST_CONDITIONAL(AmbientDimAtCompileTime != Dynamic)) setEmpty();
110
+ }
67
111
 
68
112
  /** Constructs a null box with \a _dim the dimension of the ambient space. */
69
- EIGEN_DEVICE_FUNC inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim)
70
- { setEmpty(); }
113
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(Index _dim) : m_min(_dim), m_max(_dim) { setEmpty(); }
71
114
 
72
115
  /** Constructs a box with extremities \a _min and \a _max.
73
- * \warning If either component of \a _min is larger than the same component of \a _max, the constructed box is empty. */
74
- template<typename OtherVectorType1, typename OtherVectorType2>
75
- EIGEN_DEVICE_FUNC inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max) : m_min(_min), m_max(_max) {}
116
+ * \warning If either component of \a _min is larger than the same component of \a _max, the constructed box is empty.
117
+ */
118
+ template <typename OtherVectorType1, typename OtherVectorType2>
119
+ EIGEN_DEVICE_FUNC inline AlignedBox(const OtherVectorType1& _min, const OtherVectorType2& _max)
120
+ : m_min(_min), m_max(_max) {}
76
121
 
77
122
  /** Constructs a box containing a single point \a p. */
78
- template<typename Derived>
79
- EIGEN_DEVICE_FUNC inline explicit AlignedBox(const MatrixBase<Derived>& p) : m_min(p), m_max(m_min)
80
- { }
123
+ template <typename Derived>
124
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(const MatrixBase<Derived>& p) : m_min(p), m_max(m_min) {}
81
125
 
82
126
  EIGEN_DEVICE_FUNC ~AlignedBox() {}
83
127
 
84
128
  /** \returns the dimension in which the box holds */
85
- EIGEN_DEVICE_FUNC inline Index dim() const { return AmbientDimAtCompileTime==Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime); }
129
+ EIGEN_DEVICE_FUNC inline Index dim() const {
130
+ return AmbientDimAtCompileTime == Dynamic ? m_min.size() : Index(AmbientDimAtCompileTime);
131
+ }
86
132
 
87
133
  /** \deprecated use isEmpty() */
88
134
  EIGEN_DEVICE_FUNC inline bool isNull() const { return isEmpty(); }
@@ -96,64 +142,69 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
96
142
 
97
143
  /** Makes \c *this an empty box.
98
144
  * \sa isEmpty */
99
- EIGEN_DEVICE_FUNC inline void setEmpty()
100
- {
101
- m_min.setConstant( ScalarTraits::highest() );
102
- m_max.setConstant( ScalarTraits::lowest() );
145
+ EIGEN_DEVICE_FUNC inline void setEmpty() {
146
+ m_min.setConstant(ScalarTraits::highest());
147
+ m_max.setConstant(ScalarTraits::lowest());
103
148
  }
104
149
 
105
150
  /** \returns the minimal corner */
106
- EIGEN_DEVICE_FUNC inline const VectorType& (min)() const { return m_min; }
151
+ EIGEN_DEVICE_FUNC inline const VectorType&(min)() const { return m_min; }
107
152
  /** \returns a non const reference to the minimal corner */
108
- EIGEN_DEVICE_FUNC inline VectorType& (min)() { return m_min; }
153
+ EIGEN_DEVICE_FUNC inline VectorType&(min)() { return m_min; }
109
154
  /** \returns the maximal corner */
110
- EIGEN_DEVICE_FUNC inline const VectorType& (max)() const { return m_max; }
155
+ EIGEN_DEVICE_FUNC inline const VectorType&(max)() const { return m_max; }
111
156
  /** \returns a non const reference to the maximal corner */
112
- EIGEN_DEVICE_FUNC inline VectorType& (max)() { return m_max; }
157
+ EIGEN_DEVICE_FUNC inline VectorType&(max)() { return m_max; }
113
158
 
114
159
  /** \returns the center of the box */
115
160
  EIGEN_DEVICE_FUNC inline const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(VectorTypeSum, RealScalar, quotient)
116
- center() const
117
- { return (m_min+m_max)/RealScalar(2); }
161
+ center() const {
162
+ return (m_min + m_max) / RealScalar(2);
163
+ }
118
164
 
119
165
  /** \returns the lengths of the sides of the bounding box.
120
- * Note that this function does not get the same
121
- * result for integral or floating scalar types: see
122
- */
123
- EIGEN_DEVICE_FUNC inline const CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> sizes() const
124
- { return m_max - m_min; }
166
+ * Note that this function does not get the same
167
+ * result for integral or floating scalar types: see
168
+ */
169
+ EIGEN_DEVICE_FUNC inline const CwiseBinaryOp<internal::scalar_difference_op<Scalar, Scalar>, const VectorType,
170
+ const VectorType>
171
+ sizes() const {
172
+ return m_max - m_min;
173
+ }
125
174
 
126
175
  /** \returns the volume of the bounding box */
127
- EIGEN_DEVICE_FUNC inline Scalar volume() const
128
- { return sizes().prod(); }
176
+ EIGEN_DEVICE_FUNC inline Scalar volume() const { return isEmpty() ? Scalar(0) : sizes().prod(); }
129
177
 
130
178
  /** \returns an expression for the bounding box diagonal vector
131
- * if the length of the diagonal is needed: diagonal().norm()
132
- * will provide it.
133
- */
134
- EIGEN_DEVICE_FUNC inline CwiseBinaryOp< internal::scalar_difference_op<Scalar,Scalar>, const VectorType, const VectorType> diagonal() const
135
- { return sizes(); }
179
+ * if the length of the diagonal is needed: diagonal().norm()
180
+ * will provide it.
181
+ */
182
+ EIGEN_DEVICE_FUNC inline CwiseBinaryOp<internal::scalar_difference_op<Scalar, Scalar>, const VectorType,
183
+ const VectorType>
184
+ diagonal() const {
185
+ return sizes();
186
+ }
136
187
 
137
188
  /** \returns the vertex of the bounding box at the corner defined by
138
- * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
139
- * For 1D bounding boxes corners are named by 2 enum constants:
140
- * BottomLeft and BottomRight.
141
- * For 2D bounding boxes, corners are named by 4 enum constants:
142
- * BottomLeft, BottomRight, TopLeft, TopRight.
143
- * For 3D bounding boxes, the following names are added:
144
- * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
145
- */
146
- EIGEN_DEVICE_FUNC inline VectorType corner(CornerType corner) const
147
- {
148
- EIGEN_STATIC_ASSERT(_AmbientDim <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
189
+ * the corner-id corner. It works only for a 1D, 2D or 3D bounding box.
190
+ * For 1D bounding boxes corners are named by 2 enum constants:
191
+ * BottomLeft and BottomRight.
192
+ * For 2D bounding boxes, corners are named by 4 enum constants:
193
+ * BottomLeft, BottomRight, TopLeft, TopRight.
194
+ * For 3D bounding boxes, the following names are added:
195
+ * BottomLeftCeil, BottomRightCeil, TopLeftCeil, TopRightCeil.
196
+ */
197
+ EIGEN_DEVICE_FUNC inline VectorType corner(CornerType corner) const {
198
+ EIGEN_STATIC_ASSERT(AmbientDim_ <= 3, THIS_METHOD_IS_ONLY_FOR_VECTORS_OF_A_SPECIFIC_SIZE);
149
199
 
150
200
  VectorType res;
151
201
 
152
202
  Index mult = 1;
153
- for(Index d=0; d<dim(); ++d)
154
- {
155
- if( mult & corner ) res[d] = m_max[d];
156
- else res[d] = m_min[d];
203
+ for (Index d = 0; d < dim(); ++d) {
204
+ if (mult & corner)
205
+ res[d] = m_max[d];
206
+ else
207
+ res[d] = m_min[d];
157
208
  mult *= 2;
158
209
  }
159
210
  return res;
@@ -161,45 +212,40 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
161
212
 
162
213
  /** \returns a random point inside the bounding box sampled with
163
214
  * a uniform distribution */
164
- EIGEN_DEVICE_FUNC inline VectorType sample() const
165
- {
215
+ EIGEN_DEVICE_FUNC inline VectorType sample() const {
166
216
  VectorType r(dim());
167
- for(Index d=0; d<dim(); ++d)
168
- {
169
- if(!ScalarTraits::IsInteger)
170
- {
171
- r[d] = m_min[d] + (m_max[d]-m_min[d])
172
- * internal::random<Scalar>(Scalar(0), Scalar(1));
173
- }
174
- else
217
+ for (Index d = 0; d < dim(); ++d) {
218
+ if (!ScalarTraits::IsInteger) {
219
+ r[d] = m_min[d] + (m_max[d] - m_min[d]) * internal::random<Scalar>(Scalar(0), Scalar(1));
220
+ } else
175
221
  r[d] = internal::random(m_min[d], m_max[d]);
176
222
  }
177
223
  return r;
178
224
  }
179
225
 
180
226
  /** \returns true if the point \a p is inside the box \c *this. */
181
- template<typename Derived>
182
- EIGEN_DEVICE_FUNC inline bool contains(const MatrixBase<Derived>& p) const
183
- {
184
- typename internal::nested_eval<Derived,2>::type p_n(p.derived());
185
- return (m_min.array()<=p_n.array()).all() && (p_n.array()<=m_max.array()).all();
227
+ template <typename Derived>
228
+ EIGEN_DEVICE_FUNC inline bool contains(const MatrixBase<Derived>& p) const {
229
+ typename internal::nested_eval<Derived, 2>::type p_n(p.derived());
230
+ return (m_min.array() <= p_n.array()).all() && (p_n.array() <= m_max.array()).all();
186
231
  }
187
232
 
188
233
  /** \returns true if the box \a b is entirely inside the box \c *this. */
189
- EIGEN_DEVICE_FUNC inline bool contains(const AlignedBox& b) const
190
- { return (m_min.array()<=(b.min)().array()).all() && ((b.max)().array()<=m_max.array()).all(); }
234
+ EIGEN_DEVICE_FUNC inline bool contains(const AlignedBox& b) const {
235
+ return (m_min.array() <= (b.min)().array()).all() && ((b.max)().array() <= m_max.array()).all();
236
+ }
191
237
 
192
238
  /** \returns true if the box \a b is intersecting the box \c *this.
193
239
  * \sa intersection, clamp */
194
- EIGEN_DEVICE_FUNC inline bool intersects(const AlignedBox& b) const
195
- { return (m_min.array()<=(b.max)().array()).all() && ((b.min)().array()<=m_max.array()).all(); }
240
+ EIGEN_DEVICE_FUNC inline bool intersects(const AlignedBox& b) const {
241
+ return (m_min.array() <= (b.max)().array()).all() && ((b.min)().array() <= m_max.array()).all();
242
+ }
196
243
 
197
244
  /** Extends \c *this such that it contains the point \a p and returns a reference to \c *this.
198
245
  * \sa extend(const AlignedBox&) */
199
- template<typename Derived>
200
- EIGEN_DEVICE_FUNC inline AlignedBox& extend(const MatrixBase<Derived>& p)
201
- {
202
- typename internal::nested_eval<Derived,2>::type p_n(p.derived());
246
+ template <typename Derived>
247
+ EIGEN_DEVICE_FUNC inline AlignedBox& extend(const MatrixBase<Derived>& p) {
248
+ typename internal::nested_eval<Derived, 2>::type p_n(p.derived());
203
249
  m_min = m_min.cwiseMin(p_n);
204
250
  m_max = m_max.cwiseMax(p_n);
205
251
  return *this;
@@ -207,8 +253,7 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
207
253
 
208
254
  /** Extends \c *this such that it contains the box \a b and returns a reference to \c *this.
209
255
  * \sa merged, extend(const MatrixBase&) */
210
- EIGEN_DEVICE_FUNC inline AlignedBox& extend(const AlignedBox& b)
211
- {
256
+ EIGEN_DEVICE_FUNC inline AlignedBox& extend(const AlignedBox& b) {
212
257
  m_min = m_min.cwiseMin(b.m_min);
213
258
  m_max = m_max.cwiseMax(b.m_max);
214
259
  return *this;
@@ -217,8 +262,7 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
217
262
  /** Clamps \c *this by the box \a b and returns a reference to \c *this.
218
263
  * \note If the boxes don't intersect, the resulting box is empty.
219
264
  * \sa intersection(), intersects() */
220
- EIGEN_DEVICE_FUNC inline AlignedBox& clamp(const AlignedBox& b)
221
- {
265
+ EIGEN_DEVICE_FUNC inline AlignedBox& clamp(const AlignedBox& b) {
222
266
  m_min = m_min.cwiseMax(b.m_min);
223
267
  m_max = m_max.cwiseMin(b.m_max);
224
268
  return *this;
@@ -227,166 +271,215 @@ EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(_Scalar,_AmbientDim)
227
271
  /** Returns an AlignedBox that is the intersection of \a b and \c *this
228
272
  * \note If the boxes don't intersect, the resulting box is empty.
229
273
  * \sa intersects(), clamp, contains() */
230
- EIGEN_DEVICE_FUNC inline AlignedBox intersection(const AlignedBox& b) const
231
- {return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max)); }
274
+ EIGEN_DEVICE_FUNC inline AlignedBox intersection(const AlignedBox& b) const {
275
+ return AlignedBox(m_min.cwiseMax(b.m_min), m_max.cwiseMin(b.m_max));
276
+ }
232
277
 
233
278
  /** Returns an AlignedBox that is the union of \a b and \c *this.
234
- * \note Merging with an empty box may result in a box bigger than \c *this.
279
+ * \note Merging with an empty box may result in a box bigger than \c *this.
235
280
  * \sa extend(const AlignedBox&) */
236
- EIGEN_DEVICE_FUNC inline AlignedBox merged(const AlignedBox& b) const
237
- { return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max)); }
281
+ EIGEN_DEVICE_FUNC inline AlignedBox merged(const AlignedBox& b) const {
282
+ return AlignedBox(m_min.cwiseMin(b.m_min), m_max.cwiseMax(b.m_max));
283
+ }
238
284
 
239
285
  /** Translate \c *this by the vector \a t and returns a reference to \c *this. */
240
- template<typename Derived>
241
- EIGEN_DEVICE_FUNC inline AlignedBox& translate(const MatrixBase<Derived>& a_t)
242
- {
243
- const typename internal::nested_eval<Derived,2>::type t(a_t.derived());
286
+ template <typename Derived>
287
+ EIGEN_DEVICE_FUNC inline AlignedBox& translate(const MatrixBase<Derived>& a_t) {
288
+ const typename internal::nested_eval<Derived, 2>::type t(a_t.derived());
244
289
  m_min += t;
245
290
  m_max += t;
246
291
  return *this;
247
292
  }
248
293
 
294
+ /** \returns a copy of \c *this translated by the vector \a t. */
295
+ template <typename Derived>
296
+ EIGEN_DEVICE_FUNC inline AlignedBox translated(const MatrixBase<Derived>& a_t) const {
297
+ AlignedBox result(m_min, m_max);
298
+ result.translate(a_t);
299
+ return result;
300
+ }
301
+
249
302
  /** \returns the squared distance between the point \a p and the box \c *this,
250
- * and zero if \a p is inside the box.
251
- * \sa exteriorDistance(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)
252
- */
253
- template<typename Derived>
303
+ * and zero if \a p is inside the box.
304
+ * \sa exteriorDistance(const MatrixBase&), squaredExteriorDistance(const AlignedBox&)
305
+ */
306
+ template <typename Derived>
254
307
  EIGEN_DEVICE_FUNC inline Scalar squaredExteriorDistance(const MatrixBase<Derived>& p) const;
255
308
 
256
309
  /** \returns the squared distance between the boxes \a b and \c *this,
257
- * and zero if the boxes intersect.
258
- * \sa exteriorDistance(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)
259
- */
310
+ * and zero if the boxes intersect.
311
+ * \sa exteriorDistance(const AlignedBox&), squaredExteriorDistance(const MatrixBase&)
312
+ */
260
313
  EIGEN_DEVICE_FUNC inline Scalar squaredExteriorDistance(const AlignedBox& b) const;
261
314
 
262
315
  /** \returns the distance between the point \a p and the box \c *this,
263
- * and zero if \a p is inside the box.
264
- * \sa squaredExteriorDistance(const MatrixBase&), exteriorDistance(const AlignedBox&)
265
- */
266
- template<typename Derived>
267
- EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const
268
- { EIGEN_USING_STD_MATH(sqrt) return sqrt(NonInteger(squaredExteriorDistance(p))); }
316
+ * and zero if \a p is inside the box.
317
+ * \sa squaredExteriorDistance(const MatrixBase&), exteriorDistance(const AlignedBox&)
318
+ */
319
+ template <typename Derived>
320
+ EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const MatrixBase<Derived>& p) const {
321
+ EIGEN_USING_STD(sqrt) return sqrt(NonInteger(squaredExteriorDistance(p)));
322
+ }
269
323
 
270
324
  /** \returns the distance between the boxes \a b and \c *this,
271
- * and zero if the boxes intersect.
272
- * \sa squaredExteriorDistance(const AlignedBox&), exteriorDistance(const MatrixBase&)
273
- */
274
- EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const AlignedBox& b) const
275
- { EIGEN_USING_STD_MATH(sqrt) return sqrt(NonInteger(squaredExteriorDistance(b))); }
325
+ * and zero if the boxes intersect.
326
+ * \sa squaredExteriorDistance(const AlignedBox&), exteriorDistance(const MatrixBase&)
327
+ */
328
+ EIGEN_DEVICE_FUNC inline NonInteger exteriorDistance(const AlignedBox& b) const {
329
+ EIGEN_USING_STD(sqrt) return sqrt(NonInteger(squaredExteriorDistance(b)));
330
+ }
331
+
332
+ /**
333
+ * Specialization of transform for pure translation.
334
+ */
335
+ template <int Mode, int Options>
336
+ EIGEN_DEVICE_FUNC inline void transform(
337
+ const typename Transform<Scalar, AmbientDimAtCompileTime, Mode, Options>::TranslationType& translation) {
338
+ this->translate(translation);
339
+ }
340
+
341
+ /**
342
+ * Transforms this box by \a transform and recomputes it to
343
+ * still be an axis-aligned box.
344
+ *
345
+ * \note This method is provided under BSD license (see the top of this file).
346
+ */
347
+ template <int Mode, int Options>
348
+ EIGEN_DEVICE_FUNC inline void transform(const Transform<Scalar, AmbientDimAtCompileTime, Mode, Options>& transform) {
349
+ // Only Affine and Isometry transforms are currently supported.
350
+ EIGEN_STATIC_ASSERT(Mode == Affine || Mode == AffineCompact || Mode == Isometry,
351
+ THIS_METHOD_IS_ONLY_FOR_SPECIFIC_TRANSFORMATIONS);
352
+
353
+ // Method adapted from FCL src/shape/geometric_shapes_utility.cpp#computeBV<AABB, Box>(...)
354
+ // https://github.com/flexible-collision-library/fcl/blob/fcl-0.4/src/shape/geometric_shapes_utility.cpp#L292
355
+ //
356
+ // Here's a nice explanation why it works: https://zeuxcg.org/2010/10/17/aabb-from-obb-with-component-wise-abs/
357
+
358
+ // two times rotated extent
359
+ const VectorType rotated_extent_2 = transform.linear().cwiseAbs() * sizes();
360
+ // two times new center
361
+ const VectorType rotated_center_2 =
362
+ transform.linear() * (this->m_max + this->m_min) + Scalar(2) * transform.translation();
363
+
364
+ this->m_max = (rotated_center_2 + rotated_extent_2) / Scalar(2);
365
+ this->m_min = (rotated_center_2 - rotated_extent_2) / Scalar(2);
366
+ }
367
+
368
+ /**
369
+ * \returns a copy of \c *this transformed by \a transform and recomputed to
370
+ * still be an axis-aligned box.
371
+ */
372
+ template <int Mode, int Options>
373
+ EIGEN_DEVICE_FUNC AlignedBox
374
+ transformed(const Transform<Scalar, AmbientDimAtCompileTime, Mode, Options>& transform) const {
375
+ AlignedBox result(m_min, m_max);
376
+ result.transform(transform);
377
+ return result;
378
+ }
276
379
 
277
380
  /** \returns \c *this with scalar type casted to \a NewScalarType
278
- *
279
- * Note that if \a NewScalarType is equal to the current scalar type of \c *this
280
- * then this function smartly returns a const reference to \c *this.
281
- */
282
- template<typename NewScalarType>
283
- EIGEN_DEVICE_FUNC inline typename internal::cast_return_type<AlignedBox,
284
- AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type cast() const
285
- {
286
- return typename internal::cast_return_type<AlignedBox,
287
- AlignedBox<NewScalarType,AmbientDimAtCompileTime> >::type(*this);
381
+ *
382
+ * Note that if \a NewScalarType is equal to the current scalar type of \c *this
383
+ * then this function smartly returns a const reference to \c *this.
384
+ */
385
+ template <typename NewScalarType>
386
+ EIGEN_DEVICE_FUNC inline
387
+ typename internal::cast_return_type<AlignedBox, AlignedBox<NewScalarType, AmbientDimAtCompileTime> >::type
388
+ cast() const {
389
+ return typename internal::cast_return_type<AlignedBox, AlignedBox<NewScalarType, AmbientDimAtCompileTime> >::type(
390
+ *this);
288
391
  }
289
392
 
290
393
  /** Copy constructor with scalar type conversion */
291
- template<typename OtherScalarType>
292
- EIGEN_DEVICE_FUNC inline explicit AlignedBox(const AlignedBox<OtherScalarType,AmbientDimAtCompileTime>& other)
293
- {
394
+ template <typename OtherScalarType>
395
+ EIGEN_DEVICE_FUNC inline explicit AlignedBox(const AlignedBox<OtherScalarType, AmbientDimAtCompileTime>& other) {
294
396
  m_min = (other.min)().template cast<Scalar>();
295
397
  m_max = (other.max)().template cast<Scalar>();
296
398
  }
297
399
 
298
400
  /** \returns \c true if \c *this is approximately equal to \a other, within the precision
299
- * determined by \a prec.
300
- *
301
- * \sa MatrixBase::isApprox() */
302
- EIGEN_DEVICE_FUNC bool isApprox(const AlignedBox& other, const RealScalar& prec = ScalarTraits::dummy_precision()) const
303
- { return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec); }
304
-
305
- protected:
401
+ * determined by \a prec.
402
+ *
403
+ * \sa MatrixBase::isApprox() */
404
+ EIGEN_DEVICE_FUNC bool isApprox(const AlignedBox& other,
405
+ const RealScalar& prec = ScalarTraits::dummy_precision()) const {
406
+ return m_min.isApprox(other.m_min, prec) && m_max.isApprox(other.m_max, prec);
407
+ }
306
408
 
409
+ protected:
307
410
  VectorType m_min, m_max;
308
411
  };
309
412
 
310
-
311
-
312
- template<typename Scalar,int AmbientDim>
313
- template<typename Derived>
314
- EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const MatrixBase<Derived>& a_p) const
315
- {
316
- typename internal::nested_eval<Derived,2*AmbientDim>::type p(a_p.derived());
413
+ template <typename Scalar, int AmbientDim>
414
+ template <typename Derived>
415
+ EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar, AmbientDim>::squaredExteriorDistance(
416
+ const MatrixBase<Derived>& a_p) const {
417
+ typename internal::nested_eval<Derived, 2 * AmbientDim>::type p(a_p.derived());
317
418
  Scalar dist2(0);
318
419
  Scalar aux;
319
- for (Index k=0; k<dim(); ++k)
320
- {
321
- if( m_min[k] > p[k] )
322
- {
420
+ for (Index k = 0; k < dim(); ++k) {
421
+ if (m_min[k] > p[k]) {
323
422
  aux = m_min[k] - p[k];
324
- dist2 += aux*aux;
325
- }
326
- else if( p[k] > m_max[k] )
327
- {
423
+ dist2 += aux * aux;
424
+ } else if (p[k] > m_max[k]) {
328
425
  aux = p[k] - m_max[k];
329
- dist2 += aux*aux;
426
+ dist2 += aux * aux;
330
427
  }
331
428
  }
332
429
  return dist2;
333
430
  }
334
431
 
335
- template<typename Scalar,int AmbientDim>
336
- EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar,AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const
337
- {
432
+ template <typename Scalar, int AmbientDim>
433
+ EIGEN_DEVICE_FUNC inline Scalar AlignedBox<Scalar, AmbientDim>::squaredExteriorDistance(const AlignedBox& b) const {
338
434
  Scalar dist2(0);
339
435
  Scalar aux;
340
- for (Index k=0; k<dim(); ++k)
341
- {
342
- if( m_min[k] > b.m_max[k] )
343
- {
436
+ for (Index k = 0; k < dim(); ++k) {
437
+ if (m_min[k] > b.m_max[k]) {
344
438
  aux = m_min[k] - b.m_max[k];
345
- dist2 += aux*aux;
346
- }
347
- else if( b.m_min[k] > m_max[k] )
348
- {
439
+ dist2 += aux * aux;
440
+ } else if (b.m_min[k] > m_max[k]) {
349
441
  aux = b.m_min[k] - m_max[k];
350
- dist2 += aux*aux;
442
+ dist2 += aux * aux;
351
443
  }
352
444
  }
353
445
  return dist2;
354
446
  }
355
447
 
356
448
  /** \defgroup alignedboxtypedefs Global aligned box typedefs
357
- *
358
- * \ingroup Geometry_Module
359
- *
360
- * Eigen defines several typedef shortcuts for most common aligned box types.
361
- *
362
- * The general patterns are the following:
363
- *
364
- * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
365
- * and where \c Type can be \c i for integer, \c f for float, \c d for double.
366
- *
367
- * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size aligned box of floats.
368
- *
369
- * \sa class AlignedBox
370
- */
371
-
372
- #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
373
- /** \ingroup alignedboxtypedefs */ \
374
- typedef AlignedBox<Type, Size> AlignedBox##SizeSuffix##TypeSuffix;
449
+ *
450
+ * \ingroup Geometry_Module
451
+ *
452
+ * Eigen defines several typedef shortcuts for most common aligned box types.
453
+ *
454
+ * The general patterns are the following:
455
+ *
456
+ * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,
457
+ * and where \c Type can be \c i for integer, \c f for float, \c d for double.
458
+ *
459
+ * For example, \c AlignedBox3d is a fixed-size 3x3 aligned box type of doubles, and \c AlignedBoxXf is a dynamic-size
460
+ * aligned box of floats.
461
+ *
462
+ * \sa class AlignedBox
463
+ */
464
+
465
+ #define EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Size, SizeSuffix) \
466
+ /** \ingroup alignedboxtypedefs */ \
467
+ typedef AlignedBox<Type, Size> AlignedBox##SizeSuffix##TypeSuffix;
375
468
 
376
469
  #define EIGEN_MAKE_TYPEDEFS_ALL_SIZES(Type, TypeSuffix) \
377
- EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
378
- EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
379
- EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
380
- EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
381
- EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
470
+ EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 1, 1) \
471
+ EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 2, 2) \
472
+ EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 3, 3) \
473
+ EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, 4, 4) \
474
+ EIGEN_MAKE_TYPEDEFS(Type, TypeSuffix, Dynamic, X)
382
475
 
383
- EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int, i)
384
- EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float, f)
385
- EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double, d)
476
+ EIGEN_MAKE_TYPEDEFS_ALL_SIZES(int, i)
477
+ EIGEN_MAKE_TYPEDEFS_ALL_SIZES(float, f)
478
+ EIGEN_MAKE_TYPEDEFS_ALL_SIZES(double, d)
386
479
 
387
480
  #undef EIGEN_MAKE_TYPEDEFS_ALL_SIZES
388
481
  #undef EIGEN_MAKE_TYPEDEFS
389
482
 
390
- } // end namespace Eigen
483
+ } // end namespace Eigen
391
484
 
392
- #endif // EIGEN_ALIGNEDBOX_H
485
+ #endif // EIGEN_ALIGNEDBOX_H