QUDA  v1.1.0
A library for QCD on GPUs
Functions | Variables
domain_wall_dslash_reference.cpp File Reference
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <complex.h>
#include <quda.h>
#include <host_utils.h>
#include <dslash_reference.h>
#include <domain_wall_dslash_reference.h>
#include <gauge_field.h>
#include <color_spinor_field.h>

Go to the source code of this file.

Functions

int neighborIndex_4d (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
template<typename Float >
Float * gaugeLink_sgpu (int i, int dir, int oddBit, Float **gaugeEven, Float **gaugeOdd)
 
template<typename Float >
Float * gaugeLink_mgpu (int i, int dir, int oddBit, Float **gaugeEven, Float **gaugeOdd, Float **ghostGaugeEven, Float **ghostGaugeOdd, int n_ghost_faces, int nbr_distance)
 
template<typename Float >
void multiplySpinorByDiracProjector5 (Float *res, int projIdx, Float *spinorIn)
 
template<QudaPCType type, typename sFloat , typename gFloat >
void dslashReference_4d_sgpu (sFloat *res, gFloat **gaugeFull, sFloat *spinorField, int oddBit, int daggerBit)
 
template<bool plus, class sFloat >
void axpby_ssp_project (sFloat *z, sFloat a, sFloat *x, sFloat b, sFloat *y, int idx_cb_4d, int s, int sp)
 
template<typename sFloat >
void mdw_eofa_m5_ref (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm, sFloat m5, sFloat b, sFloat c, sFloat mq1, sFloat mq2, sFloat mq3, int eofa_pm, sFloat eofa_shift)
 
void mdw_eofa_m5 (void *res, void *spinorField, int oddBit, int daggerBit, double mferm, double m5, double b, double c, double mq1, double mq2, double mq3, int eofa_pm, double eofa_shift, QudaPrecision precision)
 
template<QudaPCType type, bool zero_initialize = false, typename sFloat >
void dslashReference_5th (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm)
 
template<typename sFloat >
void dslashReference_5th_inv (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm, double *kappa)
 
template<typename sComplex >
sComplex cpow (const sComplex &x, int y)
 
template<typename sFloat , typename sComplex >
void mdslashReference_5th_inv (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm, sComplex *kappa)
 
template<typename sFloat >
void mdw_eofa_m5inv_ref (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm, sFloat m5, sFloat b, sFloat c, sFloat mq1, sFloat mq2, sFloat mq3, int eofa_pm, sFloat eofa_shift)
 
void mdw_eofa_m5inv (void *res, void *spinorField, int oddBit, int daggerBit, double mferm, double m5, double b, double c, double mq1, double mq2, double mq3, int eofa_pm, double eofa_shift, QudaPrecision precision)
 
void dw_dslash (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void dslash_4_4d (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void dw_dslash_5_4d (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, bool zero_initialize)
 
void dslash_5_inv (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double *kappa)
 
void mdw_dslash_5_inv (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *kappa)
 
void mdw_dslash_5 (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *kappa, bool zero_initialize)
 
void mdw_dslash_4_pre (void *out, void **gauge, void *in, int oddBit, int daggerBit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5, bool zero_initialize)
 
void dw_mat (void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void dw_4d_mat (void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void mdw_mat (void *out, void **gauge, void *in, double _Complex *kappa_b, double _Complex *kappa_c, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5)
 
void mdw_eofa_mat (void *out, void **gauge, void *in, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double m5, double b, double c, double mq1, double mq2, double mq3, int eofa_pm, double eofa_shift)
 
void dw_matdagmat (void *out, void **gauge, void *in, double kappa, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void dw_matpc (void *out, void **gauge, void *in, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void dw_4d_matpc (void *out, void **gauge, void *in, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm)
 
void mdw_matpc (void *out, void **gauge, void *in, double _Complex *kappa_b, double _Complex *kappa_c, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5)
 
void mdw_eofa_matpc (void *out, void **gauge, void *in, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double m5, double b, double c, double mq1, double mq2, double mq3, int eofa_pm, double eofa_shift)
 
void mdw_mdagm_local (void *out, void **gauge, void *in, double _Complex *kappa_b, double _Complex *kappa_c, QudaMatPCType matpc_type, QudaPrecision precision, QudaGaugeParam &gauge_param, double mferm, double _Complex *b5, double _Complex *c5)
 
void matpc (void *outEven, void **gauge, void *inEven, double kappa, QudaMatPCType matpc_type, int dagger_bit, QudaPrecision sPrecision, QudaPrecision gPrecision, double 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

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

Function Documentation

◆ axpby_ssp_project()

template<bool plus, class sFloat >
void axpby_ssp_project ( sFloat *  z,
sFloat  a,
sFloat *  x,
sFloat  b,
sFloat *  y,
int  idx_cb_4d,
int  s,
int  sp 
)

Definition at line 376 of file domain_wall_dslash_reference.cpp.

◆ cpow()

template<typename sComplex >
sComplex cpow ( const sComplex &  x,
int  y 
)

Definition at line 601 of file domain_wall_dslash_reference.cpp.

◆ dslash_4_4d()

void dslash_4_4d ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm 
)

Definition at line 862 of file domain_wall_dslash_reference.cpp.

◆ dslash_5_inv()

void dslash_5_inv ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double *  kappa 
)

Definition at line 931 of file domain_wall_dslash_reference.cpp.

◆ dslashReference_4d_sgpu()

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

Definition at line 271 of file domain_wall_dslash_reference.cpp.

◆ dslashReference_5th()

template<QudaPCType type, bool zero_initialize = false, typename sFloat >
void dslashReference_5th ( sFloat *  res,
sFloat *  spinorField,
int  oddBit,
int  daggerBit,
sFloat  mferm 
)

Definition at line 486 of file domain_wall_dslash_reference.cpp.

◆ dslashReference_5th_inv()

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

Definition at line 513 of file domain_wall_dslash_reference.cpp.

◆ dw_4d_mat()

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

Definition at line 1005 of file domain_wall_dslash_reference.cpp.

◆ dw_4d_matpc()

void dw_4d_matpc ( void *  out,
void **  gauge,
void *  in,
double  kappa,
QudaMatPCType  matpc_type,
int  dagger_bit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm 
)

Definition at line 1154 of file domain_wall_dslash_reference.cpp.

◆ dw_dslash()

void dw_dslash ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm 
)

Definition at line 797 of file domain_wall_dslash_reference.cpp.

◆ dw_dslash_5_4d()

void dw_dslash_5_4d ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
bool  zero_initialize 
)

Definition at line 920 of file domain_wall_dslash_reference.cpp.

◆ dw_mat()

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

Definition at line 991 of file domain_wall_dslash_reference.cpp.

◆ dw_matdagmat()

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

Definition at line 1123 of file domain_wall_dslash_reference.cpp.

◆ dw_matpc()

void dw_matpc ( void *  out,
void **  gauge,
void *  in,
double  kappa,
QudaMatPCType  matpc_type,
int  dagger_bit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm 
)

Definition at line 1134 of file domain_wall_dslash_reference.cpp.

◆ gaugeLink_mgpu()

template<typename Float >
Float* gaugeLink_mgpu ( int  i,
int  dir,
int  oddBit,
Float **  gaugeEven,
Float **  gaugeOdd,
Float **  ghostGaugeEven,
Float **  ghostGaugeOdd,
int  n_ghost_faces,
int  nbr_distance 
)

Definition at line 88 of file domain_wall_dslash_reference.cpp.

◆ gaugeLink_sgpu()

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

Definition at line 57 of file domain_wall_dslash_reference.cpp.

◆ matdagmat()

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

Definition at line 1543 of file domain_wall_dslash_reference.cpp.

◆ matpc()

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 1487 of file domain_wall_dslash_reference.cpp.

◆ matpcdagmatpc()

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

Definition at line 1564 of file domain_wall_dslash_reference.cpp.

◆ mdslashReference_5th_inv()

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

Definition at line 613 of file domain_wall_dslash_reference.cpp.

◆ mdw_dslash_4_pre()

void mdw_dslash_4_pre ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  b5,
double _Complex *  c5,
bool  zero_initialize 
)

Definition at line 966 of file domain_wall_dslash_reference.cpp.

◆ mdw_dslash_5()

void mdw_dslash_5 ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  kappa,
bool  zero_initialize 
)

Definition at line 950 of file domain_wall_dslash_reference.cpp.

◆ mdw_dslash_5_inv()

void mdw_dslash_5_inv ( void *  out,
void **  gauge,
void *  in,
int  oddBit,
int  daggerBit,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  kappa 
)

Definition at line 940 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_m5()

void mdw_eofa_m5 ( void *  res,
void *  spinorField,
int  oddBit,
int  daggerBit,
double  mferm,
double  m5,
double  b,
double  c,
double  mq1,
double  mq2,
double  mq3,
int  eofa_pm,
double  eofa_shift,
QudaPrecision  precision 
)

Definition at line 471 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_m5_ref()

template<typename sFloat >
void mdw_eofa_m5_ref ( sFloat *  res,
sFloat *  spinorField,
int  oddBit,
int  daggerBit,
sFloat  mferm,
sFloat  m5,
sFloat  b,
sFloat  c,
sFloat  mq1,
sFloat  mq2,
sFloat  mq3,
int  eofa_pm,
sFloat  eofa_shift 
)

Definition at line 396 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_m5inv()

void mdw_eofa_m5inv ( void *  res,
void *  spinorField,
int  oddBit,
int  daggerBit,
double  mferm,
double  m5,
double  b,
double  c,
double  mq1,
double  mq2,
double  mq3,
int  eofa_pm,
double  eofa_shift,
QudaPrecision  precision 
)

Definition at line 783 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_m5inv_ref()

template<typename sFloat >
void mdw_eofa_m5inv_ref ( sFloat *  res,
sFloat *  spinorField,
int  oddBit,
int  daggerBit,
sFloat  mferm,
sFloat  m5,
sFloat  b,
sFloat  c,
sFloat  mq1,
sFloat  mq2,
sFloat  mq3,
int  eofa_pm,
sFloat  eofa_shift 
)

Definition at line 690 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_mat()

void mdw_eofa_mat ( void *  out,
void **  gauge,
void *  in,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double  m5,
double  b,
double  c,
double  mq1,
double  mq2,
double  mq3,
int  eofa_pm,
double  eofa_shift 
)

Definition at line 1069 of file domain_wall_dslash_reference.cpp.

◆ mdw_eofa_matpc()

void mdw_eofa_matpc ( void *  out,
void **  gauge,
void *  in,
QudaMatPCType  matpc_type,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double  m5,
double  b,
double  c,
double  mq1,
double  mq2,
double  mq3,
int  eofa_pm,
double  eofa_shift 
)

Definition at line 1267 of file domain_wall_dslash_reference.cpp.

◆ mdw_mat()

void mdw_mat ( void *  out,
void **  gauge,
void *  in,
double _Complex *  kappa_b,
double _Complex *  kappa_c,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  b5,
double _Complex *  c5 
)

Definition at line 1022 of file domain_wall_dslash_reference.cpp.

◆ mdw_matpc()

void mdw_matpc ( void *  out,
void **  gauge,
void *  in,
double _Complex *  kappa_b,
double _Complex *  kappa_c,
QudaMatPCType  matpc_type,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  b5,
double _Complex *  c5 
)

Definition at line 1194 of file domain_wall_dslash_reference.cpp.

◆ mdw_mdagm_local()

void mdw_mdagm_local ( void *  out,
void **  gauge,
void *  in,
double _Complex *  kappa_b,
double _Complex *  kappa_c,
QudaMatPCType  matpc_type,
QudaPrecision  precision,
QudaGaugeParam gauge_param,
double  mferm,
double _Complex *  b5,
double _Complex *  c5 
)

Definition at line 1338 of file domain_wall_dslash_reference.cpp.

◆ multiplySpinorByDiracProjector5()

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

Definition at line 237 of file domain_wall_dslash_reference.cpp.

◆ neighborIndex_4d()

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

Definition at line 28 of file domain_wall_dslash_reference.cpp.

Variable Documentation

◆ projector

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

Definition at line 169 of file domain_wall_dslash_reference.cpp.