35 #ifndef _BLAZE_MATH_SIMD_INVSQRT_H_
36 #define _BLAZE_MATH_SIMD_INVSQRT_H_
65 template<
typename T >
67 #if BLAZE_SVML_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_invsqrt_ps( (~a).
eval().value );
102 template<
typename T >
104 #if BLAZE_SVML_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 );
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the basic SIMD types.
const DMatForEachExpr< MT, InvSqrt, SO > invsqrt(const DenseMatrix< MT, SO > &dm)
Computes the inverse square root of each single element of the dense matrix dm.
Definition: DMatForEachExpr.h:1313
const DMatEvalExpr< MT, SO > eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:705
System settings for the SSE mode.
System settings for the inline keywords.