QUDA v0.4.0
A library for QCD on GPUs
Functions | Variables
quda/tests/domain_wall_dslash_reference.cpp File Reference
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <quda.h>
#include <test_util.h>
#include <domain_wall_dslash_reference.h>
#include <blas_reference.h>

Go to the source code of this file.

Functions

void setDims (int *X, const int L5)
template<typename Float >
void sum (Float *dst, Float *a, Float *b, int cnt)
template<typename Float >
void product (Float *dst, Float a, Float *b, int cnt)
template<typename Float >
void xpay (Float *x, Float a, Float *y, int len)
int neighborIndex_5d (int i, int oddBit, int dxs, int dx4, int dx3, int dx2, int dx1)
int neighborIndex_4d (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
template<typename Float >
Float * gaugeLink (int i, int dir, int oddBit, Float **gaugeEven, Float **gaugeOdd)
template<typename Float >
Float * spinorNeighbor_5d (int i, int dir, int oddBit, Float *spinorField)
template<typename sFloat , typename gFloat >
void dot (sFloat *res, gFloat *a, sFloat *b)
template<typename Float >
void su3Transpose (Float *res, Float *mat)
template<typename sFloat , typename gFloat >
void su3Mul (sFloat *res, gFloat *mat, sFloat *vec)
template<typename sFloat , typename gFloat >
void su3Tmul (sFloat *res, gFloat *mat, sFloat *vec)
template<typename Float >
void multiplySpinorByDiracProjector (Float *res, int projIdx, Float *spinorIn)
template<typename sFloat , typename gFloat >
void dslashReference_4d (sFloat *res, gFloat **gaugeFull, sFloat *spinorField, int oddBit, int daggerBit)
template<typename sFloat >
void dslashReference_5th (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm)
void dslash (void *res, void **gaugeFull, void *spinorField, int oddBit, int daggerBit, QudaPrecision sPrecision, QudaPrecision gPrecision, double mferm)
template<typename sFloat , typename gFloat >
void Mat (sFloat *out, gFloat **gauge, sFloat *in, sFloat kappa, sFloat mferm)
template<typename sFloat , typename gFloat >
void MatDag (sFloat *out, gFloat **gauge, sFloat *in, sFloat kappa, sFloat mferm)
void mat (void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision sPrecision, QudaPrecision gPrecision, double mferm)
template<typename sFloat , typename gFloat >
void MatPC (sFloat *outEven, gFloat **gauge, sFloat *inEven, sFloat kappa, QudaMatPCType matpc_type, sFloat mferm)
template<typename sFloat , typename gFloat >
void MatPCDag (sFloat *outEven, gFloat **gauge, sFloat *inEven, sFloat kappa, QudaMatPCType matpc_type, sFloat mferm)
void matpc (void *outEven, void **gauge, void *inEven, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision sPrecision, QudaPrecision gPrecision, double mferm)
template<typename sFloat , typename gFloat >
void MatDagMat (sFloat *out, gFloat **gauge, sFloat *in, sFloat kappa, sFloat mferm)
template<typename sFloat , typename gFloat >
void MatPCDagMatPC (sFloat *out, gFloat **gauge, sFloat *in, sFloat kappa, QudaMatPCType matpc_type, sFloat mferm)
void matdagmat (void *out, void **gauge, void *in, double kappa, QudaPrecision sPrecision, QudaPrecision gPrecision, double mferm)
void matpcdagmatpc (void *out, void **gauge, void *in, double kappa, QudaPrecision sPrecision, QudaPrecision gPrecision, double mferm, QudaMatPCType matpc_type)

Variables

int Z [4]
int V
int Vh
int Ls
int V5
int V5h
const double projector [10][4][4][2]

Function Documentation

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

Definition at line 169 of file domain_wall_dslash_reference.cpp.

void dslash ( void *  res,
void **  gaugeFull,
void *  spinorField,
int  oddBit,
int  daggerBit,
QudaPrecision  sPrecision,
QudaPrecision  gPrecision,
double  mferm 
)

Definition at line 391 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void dslashReference_4d ( sFloat *  res,
gFloat **  gaugeFull,
sFloat *  spinorField,
int  oddBit,
int  daggerBit 
)

Definition at line 308 of file domain_wall_dslash_reference.cpp.

template<typename sFloat >
void dslashReference_5th ( sFloat *  res,
sFloat *  spinorField,
int  oddBit,
int  daggerBit,
sFloat  mferm 
)

Definition at line 367 of file domain_wall_dslash_reference.cpp.

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

Definition at line 121 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void Mat ( sFloat *  out,
gFloat **  gauge,
sFloat *  in,
sFloat  kappa,
sFloat  mferm 
)

Definition at line 427 of file domain_wall_dslash_reference.cpp.

void mat ( void *  out,
void **  gauge,
void *  in,
double  kappa,
int  dagger_bit,
QudaPrecision  sPrecision,
QudaPrecision  gPrecision,
double  mferm 
)

Definition at line 460 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void MatDag ( sFloat *  out,
gFloat **  gauge,
sFloat *  in,
sFloat  kappa,
sFloat  mferm 
)

Definition at line 444 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void MatDagMat ( sFloat *  out,
gFloat **  gauge,
sFloat *  in,
sFloat  kappa,
sFloat  mferm 
)

Definition at line 564 of file domain_wall_dslash_reference.cpp.

void matdagmat ( void *  out,
void **  gauge,
void *  in,
double  kappa,
QudaPrecision  sPrecision,
QudaPrecision  gPrecision,
double  mferm 
)

Definition at line 588 of file domain_wall_dslash_reference.cpp.

void matpc ( void *  outEven,
void **  gauge,
void *  inEven,
double  kappa,
QudaMatPCType  matpc_type,
int  dagger_bit,
QudaPrecision  sPrecision,
QudaPrecision  gPrecision,
double  mferm 
)

Definition at line 534 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void MatPC ( sFloat *  outEven,
gFloat **  gauge,
sFloat *  inEven,
sFloat  kappa,
QudaMatPCType  matpc_type,
sFloat  mferm 
)

Definition at line 485 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void MatPCDag ( sFloat *  outEven,
gFloat **  gauge,
sFloat *  inEven,
sFloat  kappa,
QudaMatPCType  matpc_type,
sFloat  mferm 
)

Definition at line 511 of file domain_wall_dslash_reference.cpp.

template<typename sFloat , typename gFloat >
void MatPCDagMatPC ( sFloat *  out,
gFloat **  gauge,
sFloat *  in,
sFloat  kappa,
QudaMatPCType  matpc_type,
sFloat  mferm 
)

Definition at line 575 of file domain_wall_dslash_reference.cpp.

void matpcdagmatpc ( void *  out,
void **  gauge,
void *  in,
double  kappa,
QudaPrecision  sPrecision,
QudaPrecision  gPrecision,
double  mferm,
QudaMatPCType  matpc_type 
)

Definition at line 607 of file domain_wall_dslash_reference.cpp.

template<typename Float >
void multiplySpinorByDiracProjector ( Float *  res,
int  projIdx,
Float *  spinorIn 
)

Definition at line 274 of file domain_wall_dslash_reference.cpp.

int neighborIndex_4d ( int  i,
int  oddBit,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 95 of file domain_wall_dslash_reference.cpp.

int neighborIndex_5d ( int  i,
int  oddBit,
int  dxs,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 61 of file domain_wall_dslash_reference.cpp.

template<typename Float >
void product ( Float *  dst,
Float  a,
Float *  b,
int  cnt 
)

Definition at line 39 of file domain_wall_dslash_reference.cpp.

void setDims ( int *  X,
const int  L5 
)

Definition at line 19 of file domain_wall_dslash_reference.cpp.

template<typename Float >
Float* spinorNeighbor_5d ( int  i,
int  dir,
int  oddBit,
Float *  spinorField 
)

Definition at line 148 of file domain_wall_dslash_reference.cpp.

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

Definition at line 192 of file domain_wall_dslash_reference.cpp.

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

Definition at line 197 of file domain_wall_dslash_reference.cpp.

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

Definition at line 182 of file domain_wall_dslash_reference.cpp.

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

Definition at line 33 of file domain_wall_dslash_reference.cpp.

template<typename Float >
void xpay ( Float *  x,
Float  a,
Float *  y,
int  len 
)

Definition at line 46 of file domain_wall_dslash_reference.cpp.


Variable Documentation

int Ls

Definition at line 15 of file domain_wall_dslash_reference.cpp.

const double projector[10][4][4][2]

Definition at line 206 of file domain_wall_dslash_reference.cpp.

int V

Definition at line 12 of file domain_wall_dslash_reference.cpp.

int V5

Definition at line 16 of file domain_wall_dslash_reference.cpp.

int V5h

Definition at line 17 of file domain_wall_dslash_reference.cpp.

int Vh

Definition at line 13 of file domain_wall_dslash_reference.cpp.

int Z[4]

Definition at line 11 of file domain_wall_dslash_reference.cpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines