QUDA  0.9.0
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<QudaDWFPCType type>
int neighborIndex_5d (int i, int oddBit, int dxs, int dx4, int dx3, int dx2, int dx1)
 
template<QudaDWFPCType 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.

References a, cnt, fused_exterior_ndeg_tm_dslash_cuda_gen::i, and x.

◆ 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.

References a, fused_exterior_ndeg_tm_dslash_cuda_gen::i, len, x, and y.

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.

References a, b, fused_exterior_ndeg_tm_dslash_cuda_gen::i, len, x, and y.

Referenced by mdw_dslash_4_pre(), quda::RitzMat::operator()(), 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.

References a, fused_exterior_ndeg_tm_dslash_cuda_gen::i, len, x, and y.

◆ dot()

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

◆ 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 d, fused_exterior_ndeg_tm_dslash_cuda_gen::i, and 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.

References fused_exterior_ndeg_tm_dslash_cuda_gen::i, len, and x.

Referenced by dslashReference().

Here is the caller graph for this function:

◆ neighborIndex_5d()

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

Definition at line 158 of file dslash_util.h.

References fullLatticeIndex_5d(), fullLatticeIndex_5d_4dpc(), fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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 fused_exterior_ndeg_tm_dslash_cuda_gen::i, len, and 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 fused_exterior_ndeg_tm_dslash_cuda_gen::i, 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<QudaDWFPCType type, typename Float >
Float* spinorNeighbor_5d ( int  i,
int  dir,
int  oddBit,
Float *  spinorField,
int  neighbor_distance = 1,
int  siteSize = 24 
)

Definition at line 184 of file dslash_util.h.

References fused_exterior_ndeg_tm_dslash_cuda_gen::i.

◆ 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(), mat(), and n.

Referenced by covdevReference(), dslashReference(), dslashReference_4d_sgpu(), 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 mat(), su3Mul(), and su3Transpose().

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

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.

References mat(), and n.

Referenced by su3Tmul().

Here is the call graph for this function:
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.

References a, b, cnt, and fused_exterior_ndeg_tm_dslash_cuda_gen::i.

Referenced by quda::completeKSForceCore(), and 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.

References a, b, cnt, and fused_exterior_ndeg_tm_dslash_cuda_gen::i.

Referenced by norm2().

Here is the caller graph for this function: