13#ifndef ROOT_MathHeaders_H
14#define ROOT_MathHeaders_H
24#if defined(ROOT_MATH_SYCL)
25template <
class Scalar>
28 return sycl::fmod(
x,
y);
31template <
class Scalar>
37template <
class Scalar>
43template <
class Scalar>
49template <
class Scalar>
55template <
class Scalar>
61template <
class Scalar>
67template <
class Scalar>
70 return sycl::atan2(
x,
y);
73template <
class Scalar>
79template <
class Scalar>
85template <
class Scalar>
88 return sycl::floor(
x);
91template <
class Scalar>
97template <
class Scalar>
103inline long double math_log(
long double x)
110template <
class Scalar>
116template <
class Scalar>
119 return sycl::fabs(
x);
122template <
class Scalar>
125 return sycl::pow(
x,
y);
180#elif defined(ROOT_MATH_CUDA)
181template <
class Scalar>
184 return std::fmod(
x,
y);
187template <
class Scalar>
193template <
class Scalar>
199template <
class Scalar>
205template <
class Scalar>
211template <
class Scalar>
217template <
class Scalar>
223template <
class Scalar>
226 return std::atan2(
x,
y);
229template <
class Scalar>
235template <
class Scalar>
241template <
class Scalar>
244 return std::floor(
x);
247template <
class Scalar>
253template <
class Scalar>
259template <
class Scalar>
265template <
class Scalar>
271template <
class Scalar>
274 return std::pow(
x,
y);
280 return static_cast<T
>(22756.0);
283template <
typename Scalar>
289 Scalar epsilon =
static_cast<Scalar
>(2
e-16);
290 const Scalar
big_z_scaled = pow(epsilon,
static_cast<Scalar
>(-.25));
316template <
typename Scalar>
322 }
else if (
tanThetaOver2 > std::numeric_limits<Scalar>::max()) {
331template <
class Scalar>
334 return std::fmod(
x,
y);
337template <
class Scalar>
343template <
class Scalar>
349template <
class Scalar>
355template <
class Scalar>
361template <
class Scalar>
367template <
class Scalar>
373template <
class Scalar>
376 return std::atan2(
x,
y);
379template <
class Scalar>
385template <
class Scalar>
391template <
class Scalar>
394 return std::floor(
x);
397template <
class Scalar>
403template <
class Scalar>
409template <
class Scalar>
415template <
class Scalar>
421template <
class Scalar>
424 return std::pow(
x,
y);
430 return static_cast<T
>(22756.0);
433template <
typename Scalar>
464template <
typename Scalar>
470 }
else if (
tanThetaOver2 > std::numeric_limits<Scalar>::max()) {
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t r
VecExpr< UnaryOp< Fabs< T >, VecExpr< A, T, D >, T >, T, D > fabs(const VecExpr< A, T, D > &rhs)
Scalar Eta_FromRhoZ(Scalar rho, Scalar z)
Scalar math_log(Scalar x)
Scalar math_floor(Scalar x)
Scalar math_pow(Scalar x, Scalar y)
Scalar math_cos(Scalar x)
Rotation3D::Scalar Scalar
Scalar math_atan(Scalar x)
Scalar math_sqrt(Scalar x)
Scalar math_tan(Scalar x)
Scalar math_sinh(Scalar x)
Scalar math_asin(Scalar x)
Scalar math_acos(Scalar x)
Scalar math_exp(Scalar x)
Scalar Eta_FromTheta(Scalar theta, Scalar r)
Implementation of eta from -log(tan(theta/2)).
Scalar math_atan2(Scalar x, Scalar y)
Scalar math_fabs(Scalar x)
Scalar math_cosh(Scalar x)
Scalar math_fmod(Scalar x, Scalar y)
Scalar math_sin(Scalar x)