35#ifndef _BLAZE_MATH_SIMD_INVSQRT_H_
36#define _BLAZE_MATH_SIMD_INVSQRT_H_
67#if BLAZE_SVML_MODE && ( BLAZE_AVX512F_MODE || BLAZE_MIC_MODE )
69 return _mm512_invsqrt_ps( (*a).eval().value );
71#elif BLAZE_SVML_MODE && BLAZE_AVX_MODE
73 return _mm256_invsqrt_ps( (*a).eval().value );
75#elif BLAZE_SVML_MODE && BLAZE_SSE_MODE
77 return _mm_rsqrt_ps( (*a).eval().value );
102template<
typename T >
104#if BLAZE_SVML_MODE && ( BLAZE_AVX512F_MODE || BLAZE_MIC_MODE )
106 return _mm512_invsqrt_pd( (*a).eval().value );
108#elif BLAZE_SVML_MODE && BLAZE_AVX_MODE
110 return _mm256_invsqrt_pd( (*a).eval().value );
112#elif BLAZE_SVML_MODE && BLAZE_SSE_MODE
114 return _mm_invsqrt_pd( (*a).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 invsqrt(const SIMDf64< T > &a) noexcept=delete
Computes the inverse square root for 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.