QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Types | Public Member Functions | Public Attributes | List of all members
quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN > Struct Template Reference
Inheritance diagram for quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >:
Inheritance graph
[legend]
Collaboration diagram for quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >:
Collaboration graph
[legend]

Public Types

typedef scalar< Float2 >::type real
 

Public Member Functions

 multi_axpyBzpcx_ (const coeff_array< double > &a, const coeff_array< double > &b, const coeff_array< double > &c, int NYW)
 
__device__ __host__ void operator() (FloatN &x, FloatN &y, FloatN &z, FloatN &w, const int i, const int j)
 where the reduction is usually computed and any auxiliary operations More...
 
int streams ()
 
int flops ()
 total number of input and output streams More...
 
- Public Member Functions inherited from quda::blas::MultiBlasFunctor< NXZ, Float2, FloatN >
virtual __device__ __host__ void init ()
 pre-computation routine before the main loop More...
 

Public Attributes

const int NYW
 
real a [MAX_MULTI_BLAS_N]
 
real b [MAX_MULTI_BLAS_N]
 
real c [MAX_MULTI_BLAS_N]
 

Detailed Description

template<int NXZ, typename Float2, typename FloatN>
struct quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >

Functor performing the operations: y[i] = a*x[i] + y[i]; x[i] = b*z[i] + c*x[i]

Definition at line 216 of file multi_blas_core.cuh.

Member Typedef Documentation

◆ real

template<int NXZ, typename Float2 , typename FloatN >
typedef scalar<Float2>::type quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::real

Definition at line 217 of file multi_blas_core.cuh.

Constructor & Destructor Documentation

◆ multi_axpyBzpcx_()

template<int NXZ, typename Float2 , typename FloatN >
quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::multi_axpyBzpcx_ ( const coeff_array< double > &  a,
const coeff_array< double > &  b,
const coeff_array< double > &  c,
int  NYW 
)
inline

Member Function Documentation

◆ flops()

template<int NXZ, typename Float2 , typename FloatN >
int quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::flops ( )
inline

total number of input and output streams

Definition at line 240 of file multi_blas_core.cuh.

References quda::blas::MultiBlasArg< NXZ, SpinorX, SpinorY, SpinorZ, SpinorW, Functor >::NYW.

◆ operator()()

template<int NXZ, typename Float2 , typename FloatN >
__device__ __host__ void quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::operator() ( FloatN &  x,
FloatN &  y,
FloatN &  z,
FloatN &  w,
const int  i,
const int  j 
)
inlinevirtual

where the reduction is usually computed and any auxiliary operations

Implements quda::blas::MultiBlasFunctor< NXZ, Float2, FloatN >.

Definition at line 234 of file multi_blas_core.cuh.

◆ streams()

template<int NXZ, typename Float2 , typename FloatN >
int quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::streams ( )
inline

Definition at line 239 of file multi_blas_core.cuh.

Member Data Documentation

◆ a

template<int NXZ, typename Float2 , typename FloatN >
real quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::a[MAX_MULTI_BLAS_N]

Definition at line 219 of file multi_blas_core.cuh.

◆ b

template<int NXZ, typename Float2 , typename FloatN >
real quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::b[MAX_MULTI_BLAS_N]

Definition at line 219 of file multi_blas_core.cuh.

◆ c

template<int NXZ, typename Float2 , typename FloatN >
real quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::c[MAX_MULTI_BLAS_N]

Definition at line 219 of file multi_blas_core.cuh.

◆ NYW

template<int NXZ, typename Float2 , typename FloatN >
const int quda::blas::multi_axpyBzpcx_< NXZ, Float2, FloatN >::NYW

Definition at line 218 of file multi_blas_core.cuh.


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