Blaze 3.9
Public Member Functions | Static Public Member Functions | List of all members
blaze::MAC Struct Reference

Generic wrapper for the multiply-accumulate ( $ (a*b)+c $; MAC) operation. More...

#include <MAC.h>

Public Member Functions

template<typename T1 , typename T2 , typename T3 >
BLAZE_ALWAYS_INLINE BLAZE_DEVICE_CALLABLE decltype(auto) operator() (T1 &&a, T2 &&b, T3 &&c) const
 Returns the result of the MAC operation for the given objects/values. More...
 
template<typename T1 , typename T2 , typename T3 >
BLAZE_ALWAYS_INLINE decltype(auto) load (const T1 &a, const T2 &b, const T3 &c) const
 Returns the result of the MAC operation for the given SIMD vectors. More...
 

Static Public Member Functions

template<typename T1 , typename T2 , typename T3 >
static constexpr bool simdEnabled ()
 Returns whether SIMD is enabled for the specified data types T1, T2, and T3. More...
 
static constexpr bool paddingEnabled ()
 Returns whether the operation supports padding, i.e. whether it can deal with zeros. More...
 

Detailed Description

Generic wrapper for the multiply-accumulate ( $ (a*b)+c $; MAC) operation.

Member Function Documentation

◆ load()

template<typename T1 , typename T2 , typename T3 >
BLAZE_ALWAYS_INLINE decltype(auto) blaze::MAC::load ( const T1 &  a,
const T2 &  b,
const T3 &  c 
) const
inline

Returns the result of the MAC operation for the given SIMD vectors.

Parameters
aThe first SIMD vector.
bThe second SIMD vector.
cThe third SIMD vector.
Returns
The result of the MAC operation for the given SIMD vectors.

◆ operator()()

template<typename T1 , typename T2 , typename T3 >
BLAZE_ALWAYS_INLINE BLAZE_DEVICE_CALLABLE decltype(auto) blaze::MAC::operator() ( T1 &&  a,
T2 &&  b,
T3 &&  c 
) const
inline

Returns the result of the MAC operation for the given objects/values.

Parameters
aThe first MAC operand.
bThe second MAC operand.
cThe third MAC operand
Returns
The result of the MAC operation for the given objects/values.

◆ paddingEnabled()

static constexpr bool blaze::MAC::paddingEnabled ( )
inlinestaticconstexpr

Returns whether the operation supports padding, i.e. whether it can deal with zeros.

Returns
true in case padding is supported, false if not.

◆ simdEnabled()

template<typename T1 , typename T2 , typename T3 >
static constexpr bool blaze::MAC::simdEnabled ( )
inlinestaticconstexpr

Returns whether SIMD is enabled for the specified data types T1, T2, and T3.

Returns
true in case SIMD is enabled for the data types T1, T2, and T3, false if not.

The documentation for this struct was generated from the following file: