11#include " VectorizedTMath.h"
22
3+ #include < cmath>
4+
35#ifdef ROOT_VECTORIZED_TMATH
46
57namespace TMath {
68// //////////////////////////////////////////////////////////////////////////////
79::ROOT::Double_v Log2 (::ROOT::Double_v &x)
810{
9- return vecCore::math::Log2 (x);
11+ return log2 (x);
1012}
1113
1214// //////////////////////////////////////////////////////////////////////////////
@@ -29,9 +31,8 @@ ::ROOT::Double_v Gaus(::ROOT::Double_v &x, Double_t mean, Double_t sigma, Bool_t
2931 ::ROOT::Double_v arg = (x - ::ROOT::Double_v (mean)) * inv_sigma;
3032
3133 // For those entries of |arg| > 39 result is zero in double precision
32- ::ROOT::Double_v out =
33- vecCore::Blend<::ROOT::Double_v>(vecCore::math::Abs (arg) < ::ROOT::Double_v (39.0 ),
34- vecCore::math::Exp (::ROOT::Double_v (-0.5 ) * arg * arg), ::ROOT::Double_v (0.0 ));
34+ ::ROOT::Double_v out = vecCore::Blend<::ROOT::Double_v>(
35+ abs (arg) < ::ROOT::Double_v (39.0 ), exp (::ROOT::Double_v (-0.5 ) * arg * arg), ::ROOT::Double_v (0.0 ));
3536 if (norm)
3637 out *= 0.3989422804014327 * inv_sigma; // 1/sqrt(2*Pi)=0.3989422804014327
3738 return out;
@@ -47,7 +48,7 @@ ::ROOT::Double_v Gaus(::ROOT::Double_v &x, Double_t mean, Double_t sigma, Bool_t
4748::ROOT::Double_v LaplaceDist (::ROOT::Double_v &x, Double_t alpha, Double_t beta)
4849{
4950 ::ROOT::Double_v beta_v_inv = ::ROOT::Double_v (1.0 ) / ::ROOT::Double_v (beta);
50- ::ROOT::Double_v out = vecCore::math::Exp (- vecCore::math::Abs ((x - ::ROOT::Double_v (alpha)) * beta_v_inv));
51+ ::ROOT::Double_v out = exp (- abs ((x - ::ROOT::Double_v (alpha)) * beta_v_inv));
5152 out *= ::ROOT::Double_v (0.5 ) * beta_v_inv;
5253 return out;
5354}
@@ -63,9 +64,8 @@ ::ROOT::Double_v LaplaceDistI(::ROOT::Double_v &x, Double_t alpha, Double_t beta
6364{
6465 ::ROOT::Double_v alpha_v = ::ROOT::Double_v (alpha);
6566 ::ROOT::Double_v beta_v_inv = ::ROOT::Double_v (1.0 ) / ::ROOT::Double_v (beta);
66- return vecCore::Blend<::ROOT::Double_v>(
67- x <= alpha_v, 0.5 * vecCore::math::Exp (-vecCore::math::Abs ((x - alpha_v) * beta_v_inv)),
68- 1 - 0.5 * vecCore::math::Exp (-vecCore::math::Abs ((x - alpha_v) * beta_v_inv)));
67+ return vecCore::Blend<::ROOT::Double_v>(x <= alpha_v, 0.5 * exp (-abs ((x - alpha_v) * beta_v_inv)),
68+ 1 - 0.5 * exp (-abs ((x - alpha_v) * beta_v_inv)));
6969}
7070
7171// //////////////////////////////////////////////////////////////////////////////
@@ -92,7 +92,7 @@ ::ROOT::Double_v Freq(::ROOT::Double_v &x)
9292 q31 = 1.91308926107829841e-1 , p32 = -2.26956593539686930e-1 , q32 = 1.05167510706793207e+0 ,
9393 p33 = -2.78661308609647788e-1 , q33 = 1.98733201817135256e+0 , p34 = -2.23192459734184686e-2 , q34 = 1 ;
9494
95- ::ROOT::Double_v v = vecCore::math::Abs (x) / w2;
95+ ::ROOT::Double_v v = abs (x) / w2;
9696
9797 ::ROOT::Double_v result{};
9898
@@ -114,12 +114,12 @@ ::ROOT::Double_v Freq(::ROOT::Double_v &x)
114114 result, mask2,
115115 ::ROOT::Double_v (1.0 ) -
116116 (p20 + p21 * v + p22 * v2 + p23 * v3 + p24 * v4 + p25 * v5 + p26 * v6 + p27 * v7) /
117- (vecCore::math::Exp (v2) * (q20 + q21 * v + q22 * v2 + q23 * v3 + q24 * v4 + q25 * v5 + q26 * v6 + v7)));
117+ (exp (v2) * (q20 + q21 * v + q22 * v2 + q23 * v3 + q24 * v4 + q25 * v5 + q26 * v6 + v7)));
118118 vecCore::MaskedAssign<::ROOT::Double_v>(result, mask3,
119119 ::ROOT::Double_v (1.0 ) -
120120 (c1 + (p30 * v8 + p31 * v6 + p32 * v4 + p33 * v2 + p34) /
121121 ((q30 * v8 + q31 * v6 + q32 * v4 + q33 * v2 + q34) * v2)) /
122- (v * vecCore::math::Exp (v2)));
122+ (v * exp (v2)));
123123
124124 return vecCore::Blend<::ROOT::Double_v>(x > 0 , ::ROOT::Double_v(0.5 ) + ::ROOT::Double_v(0.5 ) * result,
125125 ::ROOT::Double_v(0.5 ) * (::ROOT::Double_v(1 ) - result));
@@ -130,7 +130,7 @@ ::ROOT::Double_v Freq(::ROOT::Double_v &x)
130130::ROOT::Double_v BesselI0_Split_More (::ROOT::Double_v &ax)
131131{
132132 ::ROOT::Double_v y = 3.75 / ax;
133- return (vecCore::math::Exp (ax) / vecCore::math::Sqrt (ax)) *
133+ return (exp (ax) / sqrt (ax)) *
134134 (0.39894228 +
135135 y * (1.328592e-2 +
136136 y * (2.25319e-3 +
@@ -149,7 +149,7 @@ ::ROOT::Double_v BesselI0_Split_Less(::ROOT::Double_v &x)
149149
150150::ROOT::Double_v BesselI0 (::ROOT::Double_v &x)
151151{
152- ::ROOT::Double_v ax = vecCore::math::Abs (x);
152+ ::ROOT::Double_v ax = abs (x);
153153
154154 return vecCore::Blend<::ROOT::Double_v>(ax <= 3.75 , BesselI0_Split_Less (x), BesselI0_Split_More (ax));
155155}
@@ -160,7 +160,7 @@ ::ROOT::Double_v BesselI1_Split_More(::ROOT::Double_v &ax, ::ROOT::Double_v &x)
160160{
161161 ::ROOT::Double_v y = 3.75 / ax;
162162 ::ROOT::Double_v result =
163- (vecCore::math::Exp (ax) / vecCore::math::Sqrt (ax)) *
163+ (exp (ax) / sqrt (ax)) *
164164 (0.39894228 + y * (-3.988024e-2 +
165165 y * (-3.62018e-3 +
166166 y * (1.63801e-3 + y * (-1.031555e-2 +
@@ -179,7 +179,7 @@ ::ROOT::Double_v BesselI1_Split_Less(::ROOT::Double_v &x)
179179
180180::ROOT::Double_v BesselI1 (::ROOT::Double_v &x)
181181{
182- ::ROOT::Double_v ax = vecCore::math::Abs (x);
182+ ::ROOT::Double_v ax = abs (x);
183183
184184 return vecCore::Blend<::ROOT::Double_v>(ax <= 3.75 , BesselI1_Split_Less (x), BesselI1_Split_More (ax, x));
185185}
@@ -195,8 +195,7 @@ ::ROOT::Double_v BesselJ0_Split1_More(::ROOT::Double_v &ax)
195195 1 + y * (-0.1098628627e-2 + y * (0.2734510407e-4 + y * (-0.2073370639e-5 + y * 0.2093887211e-6 )));
196196 ::ROOT::Double_v result2 =
197197 -0.1562499995e-1 + y * (0.1430488765e-3 + y * (-0.6911147651e-5 + y * (0.7621095161e-6 - y * 0.934935152e-7 )));
198- return vecCore::math::Sqrt (0.636619772 / ax) *
199- (vecCore::math::Cos (xx) * result1 - z * vecCore::math::Sin (xx) * result2);
198+ return sqrt (0.636619772 / ax) * (cos (xx) * result1 - z * sin (xx) * result2);
200199}
201200
202201::ROOT::Double_v BesselJ0_Split1_Less (::ROOT::Double_v &x)
@@ -209,7 +208,7 @@ ::ROOT::Double_v BesselJ0_Split1_Less(::ROOT::Double_v &x)
209208
210209::ROOT::Double_v BesselJ0 (::ROOT::Double_v &x)
211210{
212- ::ROOT::Double_v ax = vecCore::math::Abs (x);
211+ ::ROOT::Double_v ax = abs (x);
213212 return vecCore::Blend<::ROOT::Double_v>(ax < 8 , BesselJ0_Split1_Less (x), BesselJ0_Split1_More (ax));
214213}
215214
@@ -224,8 +223,7 @@ ::ROOT::Double_v BesselJ1_Split1_More(::ROOT::Double_v &ax, ::ROOT::Double_v &x)
224223 1 + y * (0.183105e-2 + y * (-0.3516396496e-4 + y * (0.2457520174e-5 + y * -0.240337019e-6 )));
225224 ::ROOT::Double_v result2 =
226225 0.04687499995 + y * (-0.2002690873e-3 + y * (0.8449199096e-5 + y * (-0.88228987e-6 - y * 0.105787412e-6 )));
227- ::ROOT::Double_v result =
228- vecCore::math::Sqrt (0.636619772 / ax) * (vecCore::math::Cos (xx) * result1 - z * vecCore::math::Sin (xx) * result2);
226+ ::ROOT::Double_v result = sqrt (0.636619772 / ax) * (cos (xx) * result1 - z * sin (xx) * result2);
229227 vecCore::MaskedAssign<::ROOT::Double_v>(result, x < 0 , -result);
230228 return result;
231229}
@@ -241,7 +239,7 @@ ::ROOT::Double_v BesselJ1_Split1_Less(::ROOT::Double_v &x)
241239
242240::ROOT::Double_v BesselJ1 (::ROOT::Double_v &x)
243241{
244- ::ROOT::Double_v ax = vecCore::math::Abs (x);
242+ ::ROOT::Double_v ax = abs (x);
245243 return vecCore::Blend<::ROOT::Double_v>(ax < 8 , BesselJ1_Split1_Less (x), BesselJ1_Split1_More (ax, x));
246244}
247245
0 commit comments