Blaze 3.9
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
blaze::Join< OP > Struct Template Reference

Generic wrapper for unpacking paired function arguments. More...

#include <Join.h>

Public Member Functions

constexpr Join (const OP &op)
 Constructor of the Join functor. More...
 
template<typename... Args>
BLAZE_ALWAYS_INLINE constexpr decltype(auto) operator() (const Args &... args) const
 Returns the result of the wrapped operation for the given arguments. More...
 
template<typename T1 , typename T2 , typename... Args>
BLAZE_ALWAYS_INLINE constexpr decltype(auto) operator() (const std::pair< T1, T2 > &p, const Args &... args) const
 Returns the result of the wrapped operation for the given arguments. More...
 
template<typename... Args>
BLAZE_ALWAYS_INLINE decltype(auto) load (const Args &... args) const
 Returns the result of the wrapped operation for the given SIMD vectors. More...
 
template<typename T1 , typename T2 , typename... Args>
BLAZE_ALWAYS_INLINE decltype(auto) load (const std::pair< T1, T2 > &p, const Args &... args) const
 Returns the result of the wrapped operation for the given SIMD vectors. More...
 

Static Public Member Functions

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

Private Attributes

OP op_
 The wrapped operation.
 

Detailed Description

template<typename OP>
struct blaze::Join< OP >

Generic wrapper for unpacking paired function arguments.

Constructor & Destructor Documentation

◆ Join()

template<typename OP >
constexpr blaze::Join< OP >::Join ( const OP &  op)
inlineexplicitconstexpr

Constructor of the Join functor.

Parameters
opThe wrapped operation.

Member Function Documentation

◆ load() [1/2]

template<typename OP >
template<typename... Args>
BLAZE_ALWAYS_INLINE decltype(auto) blaze::Join< OP >::load ( const Args &...  args) const
inline

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

Parameters
argsThe given SIMD vectors.
Returns
The result of the wrapped operation for the given SIMD vectors.

◆ load() [2/2]

template<typename OP >
template<typename T1 , typename T2 , typename... Args>
BLAZE_ALWAYS_INLINE decltype(auto) blaze::Join< OP >::load ( const std::pair< T1, T2 > &  p,
const Args &...  args 
) const
inline

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

Parameters
pThe first two SIMD vectors in form of a pair.
argsThe remaining SIMD vectors.
Returns
The result of the wrapped operation for the given SIMD vectors.

◆ operator()() [1/2]

template<typename OP >
template<typename... Args>
BLAZE_ALWAYS_INLINE constexpr decltype(auto) blaze::Join< OP >::operator() ( const Args &...  args) const
inlineconstexpr

Returns the result of the wrapped operation for the given arguments.

Parameters
argsThe given arguments.
Returns
The result of the wrapped operation for the given arguments.

◆ operator()() [2/2]

template<typename OP >
template<typename T1 , typename T2 , typename... Args>
BLAZE_ALWAYS_INLINE constexpr decltype(auto) blaze::Join< OP >::operator() ( const std::pair< T1, T2 > &  p,
const Args &...  args 
) const
inlineconstexpr

Returns the result of the wrapped operation for the given arguments.

Parameters
pThe first two arguments in form of a pair.
argsThe remaining arguments.
Returns
The result of the wrapped operation for the given arguments.

◆ paddingEnabled()

template<typename OP >
static constexpr bool blaze::Join< OP >::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 OP >
template<typename... Args>
static constexpr bool blaze::Join< OP >::simdEnabled ( )
inlinestaticconstexpr

Returns whether SIMD is enabled for the specified data types Args.

Returns
true in case SIMD is enabled for the data types Args, false if not.

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