35 #ifndef _BLAZE_MATH_SIMD_SET_H_ 36 #define _BLAZE_MATH_SIMD_SET_H_ 72 template<
typename T >
74 , If_t< IsSigned_v<T>, SIMDint8, SIMDuint8 > >
75 set( T value ) noexcept
77 #if BLAZE_AVX512F_MODE 78 return _mm512_set1_epi8( value );
80 return _mm256_set1_epi8( value );
82 return _mm_set1_epi8( value );
97 template<
typename T >
99 , If_t< IsSigned_v<T>, SIMDcint8, SIMDcuint8 > >
100 set( complex<T> value ) noexcept
102 #if BLAZE_AVX512F_MODE 103 return _mm512_set1_epi16( reinterpret_cast<const int16_t&>( value ) );
104 #elif BLAZE_AVX2_MODE 105 return _mm256_set_epi8( value.imag(), value.real(), value.imag(), value.real(),
106 value.imag(), value.real(), value.imag(), value.real(),
107 value.imag(), value.real(), value.imag(), value.real(),
108 value.imag(), value.real(), value.imag(), value.real(),
109 value.imag(), value.real(), value.imag(), value.real(),
110 value.imag(), value.real(), value.imag(), value.real(),
111 value.imag(), value.real(), value.imag(), value.real(),
112 value.imag(), value.real(), value.imag(), value.real() );
113 #elif BLAZE_SSE2_MODE 114 return _mm_set_epi8( value.imag(), value.real(), value.imag(), value.real(),
115 value.imag(), value.real(), value.imag(), value.real(),
116 value.imag(), value.real(), value.imag(), value.real(),
117 value.imag(), value.real(), value.imag(), value.real() );
141 template<
typename T >
143 , If_t< IsSigned_v<T>, SIMDint16, SIMDuint16 > >
146 #if BLAZE_AVX512F_MODE 147 return _mm512_set1_epi16( value );
148 #elif BLAZE_AVX2_MODE 149 return _mm256_set1_epi16( value );
150 #elif BLAZE_SSE2_MODE 151 return _mm_set1_epi16( value );
166 template<
typename T >
168 , If_t< IsSigned_v<T>, SIMDcint16, SIMDcuint16 > >
169 set( complex<T> value ) noexcept
171 #if BLAZE_AVX512F_MODE 172 return _mm512_set1_epi32( reinterpret_cast<const int32_t&>( value ) );
173 #elif BLAZE_AVX2_MODE 174 return _mm256_set_epi16( value.imag(), value.real(), value.imag(), value.real(),
175 value.imag(), value.real(), value.imag(), value.real(),
176 value.imag(), value.real(), value.imag(), value.real(),
177 value.imag(), value.real(), value.imag(), value.real() );
178 #elif BLAZE_SSE2_MODE 179 return _mm_set_epi16( value.imag(), value.real(), value.imag(), value.real(),
180 value.imag(), value.real(), value.imag(), value.real() );
204 template<
typename T >
206 , If_t< IsSigned_v<T>, SIMDint32, SIMDuint32 > >
209 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 210 return _mm512_set1_epi32( value );
211 #elif BLAZE_AVX2_MODE 212 return _mm256_set1_epi32( value );
213 #elif BLAZE_SSE2_MODE 214 return _mm_set1_epi32( value );
229 template<
typename T >
231 , If_t< IsSigned_v<T>, SIMDcint32, SIMDcuint32 > >
232 set( complex<T> value ) noexcept
234 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 235 return _mm512_set_epi32( value.imag(), value.real(), value.imag(), value.real(),
236 value.imag(), value.real(), value.imag(), value.real(),
237 value.imag(), value.real(), value.imag(), value.real(),
238 value.imag(), value.real(), value.imag(), value.real() );
239 #elif BLAZE_AVX2_MODE 240 return _mm256_set_epi32( value.imag(), value.real(), value.imag(), value.real(),
241 value.imag(), value.real(), value.imag(), value.real() );
242 #elif BLAZE_SSE2_MODE 243 return _mm_set_epi32( value.imag(), value.real(), value.imag(), value.real() );
267 template<
typename T >
269 , If_t< IsSigned_v<T>, SIMDint64, SIMDuint64 > >
272 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 273 return _mm512_set1_epi64( value );
274 #elif BLAZE_AVX2_MODE 275 return _mm256_set1_epi64x( value );
276 #elif BLAZE_SSE2_MODE 277 return _mm_set1_epi64x( value );
292 template<
typename T >
294 , If_t< IsSigned_v<T>, SIMDcint64, SIMDcuint64 > >
295 set( complex<T> value ) noexcept
297 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 298 return _mm512_set_epi64( value.imag(), value.real(), value.imag(), value.real(),
299 value.imag(), value.real(), value.imag(), value.real() );
300 #elif BLAZE_AVX2_MODE 301 return _mm256_set_epi64x( value.imag(), value.real(), value.imag(), value.real() );
302 #elif BLAZE_SSE2_MODE 303 return _mm_set_epi64x( value.imag(), value.real() );
329 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 330 return _mm512_set1_ps( value );
332 return _mm256_set1_ps( value );
334 return _mm_set1_ps( value );
351 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 352 return _mm512_set_ps( value.imag(), value.real(), value.imag(), value.real(),
353 value.imag(), value.real(), value.imag(), value.real(),
354 value.imag(), value.real(), value.imag(), value.real(),
355 value.imag(), value.real(), value.imag(), value.real() );
357 return _mm256_set_ps( value.imag(), value.real(), value.imag(), value.real(),
358 value.imag(), value.real(), value.imag(), value.real() );
360 return _mm_set_ps( value.imag(), value.real(), value.imag(), value.real() );
386 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 387 return _mm512_set1_pd( value );
389 return _mm256_set1_pd( value );
390 #elif BLAZE_SSE2_MODE 391 return _mm_set1_pd( value );
408 #if BLAZE_AVX512F_MODE || BLAZE_MIC_MODE 409 return _mm512_set_pd( value.imag(), value.real(), value.imag(), value.real(),
410 value.imag(), value.real(), value.imag(), value.real() );
412 return _mm256_set_pd( value.imag(), value.real(), value.imag(), value.real() );
413 #elif BLAZE_SSE2_MODE 414 return _mm_set_pd( value.imag(), value.real() );
Header file for basic type definitions.
Header file for the IsIntegral type trait.
SIMD type for 64-bit double precision floating point data values.
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
Header file for the If class template.
Constraint on the data type.
Header file for the EnableIf class template.
Header file for the basic SIMD types.
Header file for run time assertion macros.
Header file for the HasSize type trait.
SIMD type for 32-bit single precision complex values.
BLAZE_ALWAYS_INLINE const EnableIf_t< IsIntegral_v< T > &&HasSize_v< T, 1UL >, If_t< IsSigned_v< T >, SIMDint8, SIMDuint8 > > set(T value) noexcept
Sets all values in the vector to the given 1-byte integral value.
Definition: Set.h:75
Header file for the IsSigned type trait.
SIMD type for 32-bit single precision floating point data values.
SIMD type for 64-bit double precision complex values.
System settings for the SSE mode.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:112
System settings for the inline keywords.