35 #ifndef _BLAZE_MATH_INTRINSICS_BASICTYPES_H_
36 #define _BLAZE_MATH_INTRINSICS_BASICTYPES_H_
67 BLAZE_ALWAYS_INLINE int8_t operator[](
size_t i )
const {
return reinterpret_cast<const int8_t*
>( &value )[i]; }
74 BLAZE_ALWAYS_INLINE int8_t operator[](
size_t i )
const {
return reinterpret_cast<const int8_t*
>( &value )[i]; }
99 BLAZE_ALWAYS_INLINE int16_t operator[](
size_t i )
const {
return reinterpret_cast<const int16_t*
>( &value )[i]; }
102 #elif BLAZE_SSE2_MODE
106 BLAZE_ALWAYS_INLINE int16_t operator[](
size_t i )
const {
return reinterpret_cast<const int16_t*
>( &value )[i]; }
131 BLAZE_ALWAYS_INLINE int32_t operator[](
size_t i )
const {
return reinterpret_cast<const int32_t*
>( &value )[i]; }
134 #elif BLAZE_AVX2_MODE
138 BLAZE_ALWAYS_INLINE int32_t operator[](
size_t i )
const {
return reinterpret_cast<const int32_t*
>( &value )[i]; }
141 #elif BLAZE_SSE2_MODE
145 BLAZE_ALWAYS_INLINE int32_t operator[](
size_t i )
const {
return reinterpret_cast<const int32_t*
>( &value )[i]; }
170 BLAZE_ALWAYS_INLINE int64_t operator[](
size_t i )
const {
return reinterpret_cast<const int64_t*
>( &value )[i]; }
173 #elif BLAZE_AVX2_MODE
177 BLAZE_ALWAYS_INLINE int64_t operator[](
size_t i )
const {
return reinterpret_cast<const int64_t*
>( &value )[i]; }
180 #elif BLAZE_SSE2_MODE
184 BLAZE_ALWAYS_INLINE int64_t operator[](
size_t i )
const {
return reinterpret_cast<const int64_t*
>( &value )[i]; }
209 BLAZE_ALWAYS_INLINE float operator[](
size_t i )
const {
return reinterpret_cast<const float*
>( &value )[i]; }
216 BLAZE_ALWAYS_INLINE float operator[](
size_t i )
const {
return reinterpret_cast<const float*
>( &value )[i]; }
223 BLAZE_ALWAYS_INLINE float operator[](
size_t i )
const {
return reinterpret_cast<const float*
>( &value )[i]; }
245 struct sse_double_t {
248 BLAZE_ALWAYS_INLINE double operator[](
size_t i )
const {
return reinterpret_cast<const double*
>( &value )[i]; }
252 struct sse_double_t {
255 BLAZE_ALWAYS_INLINE double operator[](
size_t i )
const {
return reinterpret_cast<const double*
>( &value )[i]; }
258 #elif BLAZE_SSE2_MODE
259 struct sse_double_t {
262 BLAZE_ALWAYS_INLINE double operator[](
size_t i )
const {
return reinterpret_cast<const double*
>( &value )[i]; }
266 struct sse_double_t {
284 struct sse_cfloat_t {
287 BLAZE_ALWAYS_INLINE complex<float> operator[](
size_t i )
const {
return reinterpret_cast<const complex<float>*
>( &value )[i]; }
291 struct sse_cfloat_t {
294 BLAZE_ALWAYS_INLINE complex<float> operator[](
size_t i )
const {
return reinterpret_cast<const complex<float>*
>( &value )[i]; }
298 struct sse_cfloat_t {
301 BLAZE_ALWAYS_INLINE complex<float> operator[](
size_t i )
const {
return reinterpret_cast<const complex<float>*
>( &value )[i]; }
305 struct sse_cfloat_t {
309 complex<float> value;
323 struct sse_cdouble_t {
326 BLAZE_ALWAYS_INLINE complex<double> operator[](
size_t i )
const {
return reinterpret_cast<const complex<double>*
>( &value )[i]; }
330 struct sse_cdouble_t {
333 BLAZE_ALWAYS_INLINE complex<double> operator[](
size_t i )
const {
return reinterpret_cast<const complex<double>*
>( &value )[i]; }
336 #elif BLAZE_SSE2_MODE
337 struct sse_cdouble_t {
340 BLAZE_ALWAYS_INLINE complex<double> operator[](
size_t i )
const {
return reinterpret_cast<const complex<double>*
>( &value )[i]; }
344 struct sse_cdouble_t {
348 complex<double> value;
Header file for basic type definitions.
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
System settings for the SSE mode.
Header file for the complex data type.
System settings for the inline keywords.