35#ifndef _BLAZE_MATH_SIMD_POW_H_
36#define _BLAZE_MATH_SIMD_POW_H_
73# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
75 return _mm512_pow_ps( (*a).eval().value, (*b).eval().value );
79 return _mm256_pow_ps( (*a).eval().value, (*b).eval().value );
83 return _mm_pow_ps( (*a).eval().value, (*b).eval().value );
87# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
89 return Sleef_powf16_u10( (*a).eval().value, (*b).eval().value );
93 return Sleef_powf8_u10( (*a).eval().value, (*b).eval().value );
97 return Sleef_powf4_u10( (*a).eval().value, (*b).eval().value );
100#elif BLAZE_XSIMD_MODE
103 xsimd::batch<float>{ (*b).eval().value } ).
data };
133# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
135 return _mm512_pow_pd( (*a).eval().value, (*b).eval().value );
139 return _mm256_pow_pd( (*a).eval().value, (*b).eval().value );
143 return _mm_pow_pd( (*a).eval().value, (*b).eval().value );
146#elif BLAZE_SLEEF_MODE
147# if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE
149 return Sleef_powd8_u10( (*a).eval().value, (*b).eval().value );
153 return Sleef_powd4_u10( (*a).eval().value, (*b).eval().value );
157 return Sleef_powd2_u10( (*a).eval().value, (*b).eval().value );
160#elif BLAZE_XSIMD_MODE
163 xsimd::batch<double>{ (*b).eval().value } ).
data };
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.
MT::ElementType * data(DenseMatrix< MT, SO > &dm) noexcept
Low-level data access to the dense matrix elements.
Definition: DenseMatrix.h:182
BLAZE_ALWAYS_INLINE const SIMDdouble pow(const SIMDf64< T1 > &a, const SIMDf64< T2 > &b) noexcept=delete
Computes the exponential value 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.