Skip to content

Commit 9b4f1cc

Browse files
authored
Rotation2D: use sincos
The compiler already used sincos here but unqualified sin/cos promotes to double even if value_t is float
1 parent 0f02172 commit 9b4f1cc

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

Common/MathUtils/include/MathUtils/Cartesian.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838

3939
#include "GPUROOTCartesianFwd.h"
4040
#include "GPUROOTSMatrixFwd.h"
41+
#include "MathUtils/detail/trigonometric.h"
4142

4243
namespace o2
4344
{
@@ -68,7 +69,7 @@ class Rotation2D
6869

6970
Rotation2D() = default;
7071
Rotation2D(value_t cs, value_t sn) : mCos(cs), mSin(sn) {}
71-
Rotation2D(value_t phiZ) : mCos(cos(phiZ)), mSin(sin(phiZ)) {}
72+
Rotation2D(value_t phiZ) { detail::sincos<value_t>(phiZ, mSin, mCos); }
7273
~Rotation2D() = default;
7374
Rotation2D(const Rotation2D& src) = default;
7475
Rotation2D(Rotation2D&& src) = default;
@@ -77,8 +78,7 @@ class Rotation2D
7778

7879
void set(value_t phiZ)
7980
{
80-
mCos = cos(phiZ);
81-
mSin = sin(phiZ);
81+
detail::sincos<value_t>(phiZ, mSin, mCos);
8282
}
8383

8484
void set(value_t cs, value_t sn)

0 commit comments

Comments
 (0)