35 #ifndef _BLAZE_MATH_SIMD_ABS_H_ 36 #define _BLAZE_MATH_SIMD_ABS_H_ 67 #if BLAZE_AVX512BW_MODE 69 return _mm512_abs_epi8( a.value );
73 return _mm256_abs_epi8( a.value );
75 #elif BLAZE_SSSE3_MODE 77 return _mm_abs_epi8( a.value );
103 #if BLAZE_AVX512BW_MODE 105 return _mm512_abs_epi16( a.value );
107 #elif BLAZE_AVX2_MODE 109 return _mm256_abs_epi16( a.value );
111 #elif BLAZE_SSSE3_MODE 113 return _mm_abs_epi16( a.value );
139 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 141 return _mm512_abs_epi32( a.value );
143 #elif BLAZE_AVX2_MODE 145 return _mm256_abs_epi32( a.value );
147 #elif BLAZE_SSSE3_MODE 149 return _mm_abs_epi32( a.value );
175 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 177 return _mm512_abs_epi64( a.value );
202 template<
typename T >
204 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 206 return _mm512_abs_ps( (~a).
eval().value );
210 const __m256 mask( _mm256_castsi256_ps( _mm256_set1_epi32( 0x80000000 ) ) );
211 return _mm256_andnot_ps( mask, (~a).
eval().value );
213 #elif BLAZE_SSE2_MODE 215 const __m128 mask( _mm_castsi128_ps( _mm_set1_epi32( 0x80000000 ) ) );
216 return _mm_andnot_ps( mask, (~a).
eval().value );
241 template<
typename T >
243 #if ( BLAZE_AVX512F_MODE || BLAZE_MIC_MODE ) && BLAZE_GNU_COMPILER 245 #elif BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 247 return _mm512_abs_pd( (~a).
eval().value );
251 const __m256d mask( _mm256_castsi256_pd(
252 _mm256_set_epi32( 0x80000000, 0x0, 0x80000000, 0x0, 0x80000000, 0x0, 0x80000000, 0x0 ) ) );
253 return _mm256_andnot_pd( mask, (~a).
eval().value );
255 #elif BLAZE_SSE2_MODE 257 const __m128d mask( _mm_castsi128_pd( _mm_set_epi32( 0x80000000, 0x0, 0x80000000, 0x0 ) ) );
258 return _mm_andnot_pd( mask, (~a).
eval().value );
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Compiler-specific system settings.
decltype(auto) eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:786
decltype(auto) abs(const DenseMatrix< MT, SO > &dm)
Applies the abs() function to each single element of the dense matrix dm.
Definition: DMatMapExpr.h:1152
Header file for the basic SIMD types.
System settings for the SSE mode.
System settings for the inline keywords.