10#ifndef VEC_PARAMETRIZED_SINCOS_H
11#define VEC_PARAMETRIZED_SINCOS_H
22#if HAVE_FUNCTION_MULTIVERSIONING
23#if defined(__x86_64__)
24 [[gnu::target(
"avx2")]]
30 const double r2 =
r *
r;
39 [[gnu::target(
"default")]]
48 const double r2 =
r *
r;
51 sin_a =
r *
P[1] +
P[0];
52 cos_a =
r *
P[3] +
P[2];
std::pair< std::vector< unsigned int >, bool > res
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Macro wrapping the nonstandard restrict keyword.
vectorized version of parametrized sincos see ATLASSIM-4753 for details
void eval(const double r, double &ATH_RESTRICT sin_a, double &ATH_RESTRICT cos_a) const ATH_RESTRICT
CxxUtils::vec< double, 4 > param_1
CxxUtils::vec< double, 4 > param_0
CxxUtils::vec< double, 4 > param_2