QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Functions
dslash_util.h File Reference
#include <test_util.h>
#include <comm_quda.h>
Include dependency graph for dslash_util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

template<typename Float >
static void sum (Float *dst, Float *a, Float *b, int cnt)
 
template<typename Float >
static void sub (Float *dst, Float *a, Float *b, int cnt)
 
template<typename Float >
static void ax (Float *dst, Float a, Float *x, int cnt)
 
template<typename Float >
static void axpy (Float a, Float *x, Float *y, int len)
 
template<typename Float >
static void axpby (Float a, Float *x, Float b, Float *y, int len)
 
template<typename Float >
static void axmy (Float *x, Float a, Float *y, int len)
 
template<typename Float >
static double norm2 (Float *v, int len)
 
template<typename Float >
static void negx (Float *x, int len)
 
template<typename sFloat , typename gFloat >
static void dot (sFloat *res, gFloat *a, sFloat *b)
 
template<typename Float >
static void su3Transpose (Float *res, Float *mat)
 
template<typename sFloat , typename gFloat >
static void su3Mul (sFloat *res, gFloat *mat, sFloat *vec)
 
template<typename sFloat , typename gFloat >
static void su3Tmul (sFloat *res, gFloat *mat, sFloat *vec)
 
template<typename Float >
static Float * gaugeLink (int i, int dir, int oddBit, Float **gaugeEven, Float **gaugeOdd, int nbr_distance)
 
template<typename Float >
static Float * spinorNeighbor (int i, int dir, int oddBit, Float *spinorField, int neighbor_distance)
 
template<QudaPCType type>
int neighborIndex_5d (int i, int oddBit, int dxs, int dx4, int dx3, int dx2, int dx1)
 
template<QudaPCType type, typename Float >
Float * spinorNeighbor_5d (int i, int dir, int oddBit, Float *spinorField, int neighbor_distance=1, int siteSize=24)
 

Function Documentation

◆ ax()

template<typename Float >
static void ax ( Float *  dst,
Float  a,
Float *  x,
int  cnt 
)
inlinestatic

Definition at line 20 of file dslash_util.h.

◆ axmy()

template<typename Float >
static void axmy ( Float *  x,
Float  a,
Float *  y,
int  len 
)
inlinestatic

Definition at line 39 of file dslash_util.h.

Referenced by matdagmat().

Here is the caller graph for this function:

◆ axpby()

template<typename Float >
static void axpby ( Float  a,
Float *  x,
Float  b,
Float *  y,
int  len 
)
inlinestatic

Definition at line 33 of file dslash_util.h.

Referenced by mdw_dslash_4_pre(), and quda::MG::operator()().

Here is the caller graph for this function:

◆ axpy()

template<typename Float >
static void axpy ( Float  a,
Float *  x,
Float *  y,
int  len 
)
inlinestatic

Definition at line 27 of file dslash_util.h.

◆ dot()

template<typename sFloat , typename gFloat >
static void dot ( sFloat *  res,
gFloat *  a,
sFloat *  b 
)
inlinestatic

Definition at line 56 of file dslash_util.h.

Referenced by quda::__launch_bounds__(), quda::blockOrthoCPU(), quda::innerProduct(), orthogonalize(), su3Mul(), and quda::MG::verify().

Here is the caller graph for this function:

◆ gaugeLink()

template<typename Float >
static Float* gaugeLink ( int  i,
int  dir,
int  oddBit,
Float **  gaugeEven,
Float **  gaugeOdd,
int  nbr_distance 
)
inlinestatic

Definition at line 104 of file dslash_util.h.

References quda::neighborIndex().

Referenced by covdevReference(), and dslashReference().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ negx()

template<typename Float >
static void negx ( Float *  x,
int  len 
)
inlinestatic

Definition at line 51 of file dslash_util.h.

Referenced by dslashReference().

Here is the caller graph for this function:

◆ neighborIndex_5d()

template<QudaPCType type>
int neighborIndex_5d ( int  i,
int  oddBit,
int  dxs,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 157 of file dslash_util.h.

References fullLatticeIndex_5d(), fullLatticeIndex_5d_4dpc(), Ls, QUDA_5D_PC, X, and Z.

Here is the call graph for this function:

◆ norm2()

template<typename Float >
static double norm2 ( Float *  v,
int  len 
)
static

Definition at line 44 of file dslash_util.h.

References sum().

Here is the call graph for this function:

◆ spinorNeighbor()

template<typename Float >
static Float* spinorNeighbor ( int  i,
int  dir,
int  oddBit,
Float *  spinorField,
int  neighbor_distance 
)
inlinestatic

Definition at line 127 of file dslash_util.h.

References mySpinorSiteSize, and quda::neighborIndex().

Referenced by covdevReference(), and dslashReference().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ spinorNeighbor_5d()

template<QudaPCType type, typename Float >
Float* spinorNeighbor_5d ( int  i,
int  dir,
int  oddBit,
Float *  spinorField,
int  neighbor_distance = 1,
int  siteSize = 24 
)

Definition at line 183 of file dslash_util.h.

References comm_dim_partitioned(), fullLatticeIndex(), fullLatticeIndex_5d(), fullLatticeIndex_5d_4dpc(), Ls, mySpinorSiteSize, neighborIndex_mg(), QUDA_5D_PC, Vsh_t, X1, X2, X3, X4, and Z.

Here is the call graph for this function:

◆ su3Mul()

template<typename sFloat , typename gFloat >
static void su3Mul ( sFloat *  res,
gFloat *  mat,
sFloat *  vec 
)
inlinestatic

Definition at line 80 of file dslash_util.h.

References dot().

Referenced by covdevReference(), dslashReference(), dslashReference_4d_sgpu(), matdagmat(), and su3Tmul().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ su3Tmul()

template<typename sFloat , typename gFloat >
static void su3Tmul ( sFloat *  res,
gFloat *  mat,
sFloat *  vec 
)
inlinestatic

Definition at line 85 of file dslash_util.h.

References su3Mul(), and su3Transpose().

Referenced by covdevReference(), dslashReference(), dslashReference_4d_sgpu(), and matdagmat().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ su3Transpose()

template<typename Float >
static void su3Transpose ( Float *  res,
Float *  mat 
)
inlinestatic

Definition at line 69 of file dslash_util.h.

Referenced by su3Tmul().

Here is the caller graph for this function:

◆ sub()

template<typename Float >
static void sub ( Float *  dst,
Float *  a,
Float *  b,
int  cnt 
)
inlinestatic

Definition at line 14 of file dslash_util.h.

Referenced by dslashReference().

Here is the caller graph for this function:

◆ sum()

template<typename Float >
static void sum ( Float *  dst,
Float *  a,
Float *  b,
int  cnt 
)
inlinestatic

Definition at line 8 of file dslash_util.h.

Referenced by covdevReference(), dslashReference(), genericReduce(), matdagmat(), norm2(), and normalize().

Here is the caller graph for this function: