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

Public Member Functions

 tripleCGUpdate_ (const Float2 &a, const Float2 &b, const Float2 &c)
 
__device__ __host__ void operator() (FloatN &x, FloatN &y, FloatN &z, FloatN &w, FloatN &v)
 where the reduction is usually computed and any auxiliary operations More...
 
- Public Member Functions inherited from quda::blas::BlasFunctor< Float2, FloatN >
virtual __device__ __host__ void init ()
 pre-computation routine before the main loop More...
 

Static Public Member Functions

static int streams ()
 
static int flops ()
 total number of input and output streams More...
 

Public Attributes

Float2 a
 
Float2 b
 

Detailed Description

template<typename Float2, typename FloatN>
struct quda::blas::tripleCGUpdate_< Float2, FloatN >

double tripleCGUpdate(d a, d b, V x, V y, V z, V w){} First performs the operation y[i] = y[i] + a*w[i] Second performs the operation z[i] = z[i] - a*x[i] Third performs the operation w[i] = z[i] + b*w[i]

Definition at line 386 of file blas_core.cuh.

Constructor & Destructor Documentation

◆ tripleCGUpdate_()

template<typename Float2 , typename FloatN >
quda::blas::tripleCGUpdate_< Float2, FloatN >::tripleCGUpdate_ ( const Float2 &  a,
const Float2 &  b,
const Float2 &  c 
)
inline

Definition at line 388 of file blas_core.cuh.

Member Function Documentation

◆ flops()

template<typename Float2 , typename FloatN >
static int quda::blas::tripleCGUpdate_< Float2, FloatN >::flops ( )
inlinestatic

total number of input and output streams

Definition at line 396 of file blas_core.cuh.

◆ operator()()

template<typename Float2 , typename FloatN >
__device__ __host__ void quda::blas::tripleCGUpdate_< Float2, FloatN >::operator() ( FloatN &  x,
FloatN &  y,
FloatN &  z,
FloatN &  w,
FloatN &  v 
)
inlinevirtual

where the reduction is usually computed and any auxiliary operations

Implements quda::blas::BlasFunctor< Float2, FloatN >.

Definition at line 389 of file blas_core.cuh.

◆ streams()

template<typename Float2 , typename FloatN >
static int quda::blas::tripleCGUpdate_< Float2, FloatN >::streams ( )
inlinestatic

Definition at line 395 of file blas_core.cuh.

Member Data Documentation

◆ a

template<typename Float2 , typename FloatN >
Float2 quda::blas::tripleCGUpdate_< Float2, FloatN >::a

Definition at line 387 of file blas_core.cuh.

◆ b

template<typename Float2 , typename FloatN >
Float2 quda::blas::tripleCGUpdate_< Float2, FloatN >::b

Definition at line 387 of file blas_core.cuh.


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