QUDA  1.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Functions | Variables
wilson_dslash_reference.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <util_quda.h>
#include <test_util.h>
#include <blas_reference.h>
#include <wilson_dslash_reference.h>
#include <gauge_field.h>
#include <color_spinor_field.h>
#include <dslash_util.h>
#include <string.h>
Include dependency graph for wilson_dslash_reference.cpp:

Go to the source code of this file.

Functions

template<typename Float >
void multiplySpinorByDiracProjector (Float *res, int projIdx, Float *spinorIn)
 
template<typename sFloat , typename gFloat >
void dslashReference (sFloat *res, gFloat **gaugeFull, sFloat *spinorField, int oddBit, int daggerBit)
 
void wil_dslash (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
template<typename sFloat >
void twistGamma5 (sFloat *out, sFloat *in, const int dagger, const sFloat kappa, const sFloat mu, const QudaTwistFlavorType flavor, const int V, QudaTwistGamma5Type twist)
 
void twist_gamma5 (void *out, void *in, int daggerBit, double kappa, double mu, QudaTwistFlavorType flavor, int V, QudaTwistGamma5Type twist, QudaPrecision precision)
 
void tm_dslash (void *res, void **gaugeFull, void *spinorField, double kappa, double mu, QudaTwistFlavorType flavor, int oddBit, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void wil_mat (void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void tm_mat (void *out, void **gauge, void *in, double kappa, double mu, QudaTwistFlavorType flavor, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void wil_matpc (void *outEven, void **gauge, void *inEven, double kappa, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void tm_matpc (void *outEven, void **gauge, void *inEven, double kappa, double mu, QudaTwistFlavorType flavor, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
template<typename sFloat >
void ndegTwistGamma5 (sFloat *out1, sFloat *out2, sFloat *in1, sFloat *in2, const int dagger, const sFloat kappa, const sFloat mu, const sFloat epsilon, const int V, QudaTwistGamma5Type twist)
 
void ndeg_twist_gamma5 (void *outf1, void *outf2, void *inf1, void *inf2, const int dagger, const double kappa, const double mu, const double epsilon, const int Vf, QudaTwistGamma5Type twist, QudaPrecision precision)
 
void tm_ndeg_dslash (void *res1, void *res2, void **gauge, void *spinorField1, void *spinorField2, double kappa, double mu, double epsilon, int oddBit, int daggerBit, QudaMatPCType matpc_type, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void tm_ndeg_matpc (void *outEven1, void *outEven2, void **gauge, void *inEven1, void *inEven2, double kappa, double mu, double epsilon, QudaMatPCType matpc_type, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void tm_ndeg_mat (void *evenOut, void *oddOut, void **gauge, void *evenIn, void *oddIn, double kappa, double mu, double epsilon, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param)
 

Variables

static const double projector [8][4][4][2]
 

Function Documentation

◆ dslashReference()

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

Definition at line 106 of file wilson_dslash_reference.cpp.

References faceVolume, gaugeLink(), gaugeSiteSize, multiplySpinorByDiracProjector(), mySpinorSiteSize, quda::s, spinor, spinorNeighbor(), su3Mul(), su3Tmul(), quda::sum(), and Vh.

Referenced by wil_dslash().

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

◆ multiplySpinorByDiracProjector()

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

Definition at line 74 of file wilson_dslash_reference.cpp.

References projector, and quda::s.

Referenced by dslashReference().

Here is the caller graph for this function:

◆ ndeg_twist_gamma5()

void ndeg_twist_gamma5 ( void *  outf1,
void *  outf2,
void *  inf1,
void *  inf2,
const int  dagger,
const double  kappa,
const double  mu,
const double  epsilon,
const int  Vf,
QudaTwistGamma5Type  twist,
QudaPrecision  precision 
)

Definition at line 455 of file wilson_dslash_reference.cpp.

References ndegTwistGamma5(), and QUDA_DOUBLE_PRECISION.

Referenced by tm_ndeg_dslash(), tm_ndeg_mat(), and tm_ndeg_matpc().

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

◆ ndegTwistGamma5()

template<typename sFloat >
void ndegTwistGamma5 ( sFloat *  out1,
sFloat *  out2,
sFloat *  in1,
sFloat *  in2,
const int  dagger,
const sFloat  kappa,
const sFloat  mu,
const sFloat  epsilon,
const int  V,
QudaTwistGamma5Type  twist 
)

Definition at line 412 of file wilson_dslash_reference.cpp.

References epsilon, mu, QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, quda::s, tmp1, tmp2, and V.

Referenced by ndeg_twist_gamma5().

Here is the caller graph for this function:

◆ tm_dslash()

void tm_dslash ( void *  res,
void **  gaugeFull,
void *  spinorField,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
int  oddBit,
QudaMatPCType  matpc_type,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 277 of file wilson_dslash_reference.cpp.

References QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, twist_gamma5(), Vh, and wil_dslash().

Referenced by dslashRef().

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

◆ tm_mat()

void tm_mat ( void *  out,
void **  gauge,
void *  in,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
int  dagger_bit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 309 of file wilson_dslash_reference.cpp.

References in, out, QUDA_TWIST_GAMMA5_DIRECT, spinorSiteSize, tmp, twist_gamma5(), V, Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

◆ tm_matpc()

void tm_matpc ( void *  outEven,
void **  gauge,
void *  inEven,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
QudaMatPCType  matpc_type,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 356 of file wilson_dslash_reference.cpp.

References kappa, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, spinorSiteSize, tmp, twist_gamma5(), Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

◆ tm_ndeg_dslash()

void tm_ndeg_dslash ( void *  res1,
void *  res2,
void **  gauge,
void *  spinorField1,
void *  spinorField2,
double  kappa,
double  mu,
double  epsilon,
int  oddBit,
int  daggerBit,
QudaMatPCType  matpc_type,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 468 of file wilson_dslash_reference.cpp.

References ndeg_twist_gamma5(), QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_GAMMA5_INVERSE, Vh, and wil_dslash().

Referenced by dslashRef().

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

◆ tm_ndeg_mat()

void tm_ndeg_mat ( void *  evenOut,
void *  oddOut,
void **  gauge,
void *  evenIn,
void *  oddIn,
double  kappa,
double  mu,
double  epsilon,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 554 of file wilson_dslash_reference.cpp.

References ndeg_twist_gamma5(), QUDA_TWIST_GAMMA5_DIRECT, spinorSiteSize, Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

◆ tm_ndeg_matpc()

void tm_ndeg_matpc ( void *  outEven1,
void *  outEven2,
void **  gauge,
void *  inEven1,
void *  inEven2,
double  kappa,
double  mu,
double  epsilon,
QudaMatPCType  matpc_type,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 484 of file wilson_dslash_reference.cpp.

References kappa, ndeg_twist_gamma5(), QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, spinorSiteSize, tmp1, tmp2, Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

◆ twist_gamma5()

void twist_gamma5 ( void *  out,
void *  in,
int  daggerBit,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
int  V,
QudaTwistGamma5Type  twist,
QudaPrecision  precision 
)

Definition at line 266 of file wilson_dslash_reference.cpp.

References QUDA_DOUBLE_PRECISION, and twistGamma5().

Referenced by tm_dslash(), tm_mat(), and tm_matpc().

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

◆ twistGamma5()

template<typename sFloat >
void twistGamma5 ( sFloat *  out,
sFloat *  in,
const int  dagger,
const sFloat  kappa,
const sFloat  mu,
const QudaTwistFlavorType  flavor,
const int  V,
QudaTwistGamma5Type  twist 
)

Definition at line 235 of file wilson_dslash_reference.cpp.

References QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, quda::s, tmp, and V.

Referenced by twist_gamma5().

Here is the caller graph for this function:

◆ wil_dslash()

void wil_dslash ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

◆ wil_mat()

void wil_mat ( void *  out,
void **  gauge,
void *  in,
double  kappa,
int  dagger_bit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 294 of file wilson_dslash_reference.cpp.

References in, out, spinorSiteSize, V, Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

◆ wil_matpc()

void wil_matpc ( void *  outEven,
void **  gauge,
void *  inEven,
double  kappa,
QudaMatPCType  matpc_type,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 332 of file wilson_dslash_reference.cpp.

References kappa, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, spinorSiteSize, tmp, Vh, wil_dslash(), and quda::blas::xpay().

Referenced by dslashRef(), and main().

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

Variable Documentation

◆ projector

const double projector[8][4][4][2]
static

Definition at line 20 of file wilson_dslash_reference.cpp.

Referenced by multiplySpinorByDiracProjector().