All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Typedefs | Functions
Intrinsics

Classes

class  blaze::IntrinsicTrait< T >
 Intrinsic characteristics of data types.The IntrinsicTrait class template provides the intrinsic characteristics of a specific data type: More...
 
class  blaze::AlignedStorage< T >
 POD data type with a fixed alignment.The AlignedStorage class template represents a POD data type with a fixed alignment. Via this class it is possible to enforce a specific, type-based alignment for static data types. The required alignment is evaluated based on the given data type T. In case T is a built-in, vectorizable data type, AlignedStorage enforces an alignment of 16 or 32 bytes, depending on the active SSE/AVX level. In all other cases, no specific alignment is enforced. More...
 
class  blaze::sse_int8_t
 Intrinsic type for 8-bit integral data values. More...
 
class  blaze::sse_int16_t
 Intrinsic type for 16-bit integral data values. More...
 
class  blaze::sse_int32_t
 Intrinsic type for 32-bit integral data values. More...
 
class  blaze::sse_int64_t
 Intrinsic type for 64-bit integral data values. More...
 
class  blaze::sse_float_t
 Intrinsic type for 32-bit single precision floating point data values. More...
 
class  blaze::sse_double_t
 Intrinsic type for 64-bit double precision floating point data values. More...
 

Typedefs

typedef IntrinsicTrait< short >
::Type 
blaze::sse_short_t
 The intrinsic data type for 'short'.
 
typedef IntrinsicTrait
< unsigned short >::Type 
blaze::sse_ushort_t
 The intrinsic data type for 'unsigned short'.
 
typedef IntrinsicTrait< int >::Type blaze::sse_int_t
 The intrinsic data type for 'int'.
 
typedef IntrinsicTrait
< unsigned int >::Type 
blaze::sse_uint_t
 The intrinsic data type for 'unsigned int'.
 
typedef IntrinsicTrait< long >
::Type 
blaze::sse_long_t
 The intrinsic data type for 'long int'.
 
typedef IntrinsicTrait
< unsigned long >::Type 
blaze::sse_ulong_t
 The intrinsic data type for 'unsigned long int'.
 

Functions

template<typename T >
EnableIf< IsIntegral< T >
, Load< T, sizeof(T)>
>::Type::Type 
blaze::load (const T *address)
 Loads a vector of integral values. More...
 
sse_float_t blaze::load (const float *address)
 Loads a vector of 'float' values. More...
 
sse_double_t blaze::load (const double *address)
 Loads a vector of 'double' values. More...
 
int16_t blaze::sum (const sse_int16_t &a)
 Returns the sum of all elements in the 16-bit integral intrinsic vector. More...
 
int32_t blaze::sum (const sse_int32_t &a)
 Returns the sum of all elements in the 32-bit integral intrinsic vector. More...
 
float blaze::sum (const sse_float_t &a)
 Returns the sum of all elements in the single precision floating point intrinsic vector. More...
 
double blaze::sum (const sse_double_t &a)
 Returns the sum of all elements in the double precision floating point intrinsic vector. More...
 
template<typename T >
EnableIf< IsIntegral< T >, Set
< T, sizeof(T)> >::Type::Type 
blaze::set (T value)
 Sets all values in the vector to the given integral value. More...
 
sse_float_t blaze::set (float value)
 Sets all values in the vector to the given 'float' value. More...
 
sse_double_t blaze::set (double value)
 Sets all values in the vector to the given 'double' value. More...
 
void blaze::setzero (sse_int8_t &value)
 Setting an integral intrinsic type with 16 8-bit data values to zero. More...
 
void blaze::setzero (sse_int16_t &value)
 Setting an integral intrinsic type with 8 16-bit data values to zero. More...
 
void blaze::setzero (sse_int32_t &value)
 Setting an integral intrinsic type with 4 32-bit data values to zero. More...
 
void blaze::setzero (sse_int64_t &value)
 Setting an integral intrinsic type with 2 64-bit data values to zero. More...
 
void blaze::setzero (sse_float_t &value)
 Setting a floating point intrinsic type with 4 32-bit single precision data values to zero. More...
 
void blaze::setzero (sse_double_t &value)
 Setting a floating point intrinsic type with 4 32-bit double precision data values to zero. More...
 
template<typename T >
EnableIf< IsIntegral< T > >::Type blaze::store (T *address, const typename Store< T, sizeof(T)>::Type &value)
 Aligned store of a vector of integral values. More...
 
void blaze::store (float *address, const sse_float_t &value)
 Aligned store of a vector of 'float' values. More...
 
void blaze::store (double *address, const sse_double_t &value)
 Aligned store of a vector of 'double' values. More...
 
template<typename T >
EnableIf< IsIntegral< T > >::Type blaze::stream (T *address, const typename Stream< T, sizeof(T)>::Type &value)
 Aligned, non-temporal store of a vector of integral values. More...
 
void blaze::stream (float *address, const sse_float_t &value)
 Aligned, non-temporal store of a vector of 'float' values. More...
 
void blaze::stream (double *address, const sse_double_t &value)
 Aligned, non-temporal store of a vector of 'double' values. More...
 

Detailed Description

Function Documentation

template<typename T >
EnableIf< IsIntegral<T>, Load<T,sizeof(T)> >::Type::Type blaze::load ( const T *  address)
inline

Loads a vector of integral values.

Parameters
addressThe first integral value to be loaded.
Returns
The loaded vector of integral values.
sse_float_t blaze::load ( const float *  address)
inline

Loads a vector of 'float' values.

Parameters
addressThe first 'float' value to be loaded.
Returns
The loaded vector of 'float' values.
sse_double_t blaze::load ( const double *  address)
inline

Loads a vector of 'double' values.

Parameters
addressThe first 'double' value to be loaded.
Returns
The loaded vector of 'double' values.
template<typename T >
EnableIf< IsIntegral<T>, Set<T,sizeof(T)> >::Type::Type blaze::set ( value)
inline

Sets all values in the vector to the given integral value.

Parameters
valueThe given integral value.
Returns
The set vector of integral values.
sse_float_t blaze::set ( float  value)
inline

Sets all values in the vector to the given 'float' value.

Parameters
valueThe given 'float' value.
Returns
The set vector of 'float' values.
sse_double_t blaze::set ( double  value)
inline

Sets all values in the vector to the given 'double' value.

Parameters
valueThe given 'double' value.
Returns
The set vector of 'double' values.
void blaze::setzero ( sse_int8_t &  value)
inline

Setting an integral intrinsic type with 16 8-bit data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
void blaze::setzero ( sse_int16_t &  value)
inline

Setting an integral intrinsic type with 8 16-bit data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
void blaze::setzero ( sse_int32_t &  value)
inline

Setting an integral intrinsic type with 4 32-bit data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
void blaze::setzero ( sse_int64_t &  value)
inline

Setting an integral intrinsic type with 2 64-bit data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
void blaze::setzero ( sse_float_t &  value)
inline

Setting a floating point intrinsic type with 4 32-bit single precision data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
void blaze::setzero ( sse_double_t &  value)
inline

Setting a floating point intrinsic type with 4 32-bit double precision data values to zero.

Parameters
valueThe value to be set to zero.
Returns
void
template<typename T >
EnableIf< IsIntegral<T> >::Type blaze::store ( T *  address,
const typename Store< T, sizeof(T)>::Type &  value 
)
inline

Aligned store of a vector of integral values.

Parameters
addressThe target address.
valueThe integral vector to be stored.
Returns
void
void blaze::store ( float *  address,
const sse_float_t &  value 
)
inline

Aligned store of a vector of 'float' values.

Parameters
addressThe target address.
valueThe 'float' vector to be stored.
Returns
void
void blaze::store ( double *  address,
const sse_double_t &  value 
)
inline

Aligned store of a vector of 'double' values.

Parameters
addressThe target address.
valueThe 'double' vector to be stored.
Returns
void
template<typename T >
EnableIf< IsIntegral<T> >::Type blaze::stream ( T *  address,
const typename Stream< T, sizeof(T)>::Type &  value 
)
inline

Aligned, non-temporal store of a vector of integral values.

Parameters
addressThe target address.
valueThe integral vector to be streamed.
Returns
void
void blaze::stream ( float *  address,
const sse_float_t &  value 
)
inline

Aligned, non-temporal store of a vector of 'float' values.

Parameters
addressThe target address.
valueThe 'float' vector to be streamed.
Returns
void
void blaze::stream ( double *  address,
const sse_double_t &  value 
)
inline

Aligned, non-temporal store of a vector of 'double' values.

Parameters
addressThe target address.
valueThe 'double' vector to be streamed.
Returns
void
int16_t blaze::sum ( const sse_int16_t &  a)
inline

Returns the sum of all elements in the 16-bit integral intrinsic vector.

Parameters
aThe vector to be sumed up.
Returns
The sum of all vector elements.
int32_t blaze::sum ( const sse_int32_t &  a)
inline

Returns the sum of all elements in the 32-bit integral intrinsic vector.

Parameters
aThe vector to be sumed up.
Returns
The sum of all vector elements.
float blaze::sum ( const sse_float_t &  a)
inline

Returns the sum of all elements in the single precision floating point intrinsic vector.

Parameters
aThe vector to be sumed up.
Returns
The sum of all vector elements.
double blaze::sum ( const sse_double_t &  a)
inline

Returns the sum of all elements in the double precision floating point intrinsic vector.

Parameters
aThe vector to be sumed up.
Returns
The sum of all vector elements.