35#ifndef _BLAZE_MATH_SIMD_ATAN2_H_
36#define _BLAZE_MATH_SIMD_ATAN2_H_
72# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
74 return _mm512_atan2_ps( (*a).eval().value, (*b).eval().value );
78 return _mm256_atan2_ps( (*a).eval().value, (*b).eval().value );
82 return _mm_atan2_ps( (*a).eval().value, (*b).eval().value );
86# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
88 return Sleef_atan2f16_u10( (*a).eval().value, (*b).eval().value );
92 return Sleef_atan2f8_u10( (*a).eval().value, (*b).eval().value );
96 return Sleef_atan2f4_u10( (*a).eval().value, (*b).eval().value );
123template<
typename T >
126# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
128 return _mm512_atan2_pd( (*a).eval().value, (*b).eval().value );
132 return _mm256_atan2_pd( (*a).eval().value, (*b).eval().value );
136 return _mm_atan2_pd( (*a).eval().value, (*b).eval().value );
139#elif BLAZE_SLEEF_MODE
140# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
142 return Sleef_atan2d8_u10( (*a).eval().value, (*b).eval().value );
146 return Sleef_atan2d4_u10( (*a).eval().value, (*b).eval().value );
150 return Sleef_atan2d2_u10( (*a).eval().value, (*b).eval().value );
Header file for the basic SIMD types.
SIMD type for 64-bit double precision floating point data values.
SIMD type for 32-bit single precision floating point data values.
BLAZE_ALWAYS_INLINE const SIMDdouble atan2(const SIMDf64< T > &a, const SIMDf64< T > &b) noexcept=delete
Multi-valued inverse tangent of a vector of double precision floating point values.
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
System settings for the inline keywords.
System settings for the SSE mode.