From 9b4f1ccb75e6ae7502dbdc1f0c3bb3080f0f28c6 Mon Sep 17 00:00:00 2001 From: Felix Schlepper Date: Wed, 19 Aug 2026 14:53:41 +0200 Subject: [PATCH] Rotation2D: use sincos The compiler already used sincos here but unqualified sin/cos promotes to double even if value_t is float --- Common/MathUtils/include/MathUtils/Cartesian.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Common/MathUtils/include/MathUtils/Cartesian.h b/Common/MathUtils/include/MathUtils/Cartesian.h index d7e421ecd965b..fd745dac99562 100644 --- a/Common/MathUtils/include/MathUtils/Cartesian.h +++ b/Common/MathUtils/include/MathUtils/Cartesian.h @@ -38,6 +38,7 @@ #include "GPUROOTCartesianFwd.h" #include "GPUROOTSMatrixFwd.h" +#include "MathUtils/detail/trigonometric.h" namespace o2 { @@ -68,7 +69,7 @@ class Rotation2D Rotation2D() = default; Rotation2D(value_t cs, value_t sn) : mCos(cs), mSin(sn) {} - Rotation2D(value_t phiZ) : mCos(cos(phiZ)), mSin(sin(phiZ)) {} + Rotation2D(value_t phiZ) { detail::sincos(phiZ, mSin, mCos); } ~Rotation2D() = default; Rotation2D(const Rotation2D& src) = default; Rotation2D(Rotation2D&& src) = default; @@ -77,8 +78,7 @@ class Rotation2D void set(value_t phiZ) { - mCos = cos(phiZ); - mSin = sin(phiZ); + detail::sincos(phiZ, mSin, mCos); } void set(value_t cs, value_t sn)