QUDA
1.0.0
|
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <complex.h>
#include <quda.h>
#include <test_util.h>
#include <dslash_util.h>
#include <domain_wall_dslash_reference.h>
#include <blas_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<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 sFloat , typename sComplex > | |
void | mdslashReference_5th_inv (sFloat *res, sFloat *spinorField, int oddBit, int daggerBit, sFloat mferm, sComplex *kappa) |
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 | 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 | 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] |
void dslash_4_4d | ( | void * | out, |
void ** | gauge, | ||
void * | in, | ||
int | oddBit, | ||
int | daggerBit, | ||
QudaPrecision | precision, | ||
QudaGaugeParam & | gauge_param, | ||
double | mferm | ||
) |
Definition at line 637 of file domain_wall_dslash_reference.cpp.
References quda::cpuColorSpinorField::backGhostFaceBuffer, quda::ColorSpinorParam::create, csParam, errorQuda, quda::cpuColorSpinorField::exchangeGhost(), quda::ColorSpinorParam::fieldOrder, quda::cpuColorSpinorField::fwdGhostFaceBuffer, quda::ColorSpinorParam::gammaBasis, quda::GaugeField::Ghost(), quda::LatticeFieldParam::ghostExchange, in, Ls, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::ColorSpinorParam::nSpin, quda::LatticeFieldParam::pad, quda::ColorSpinorParam::pc_type, QUDA_4D_PC, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DOUBLE_PRECISION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_EVEN_PARITY, QUDA_GHOST_EXCHANGE_PAD, QUDA_INVALID_PARITY, QUDA_ODD_PARITY, QUDA_PARITY_SITE_SUBSET, QUDA_REFERENCE_FIELD_CREATE, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, quda::ColorSpinorParam::v, quda::LatticeFieldParam::x, and Z.
Referenced by dslashRef(), dw_4d_mat(), dw_4d_matpc(), mdw_mat(), and mdw_matpc().
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 706 of file domain_wall_dslash_reference.cpp.
References dslashReference_5th_inv(), and QUDA_DOUBLE_PRECISION.
Referenced by dslashRef(), and dw_4d_matpc().
void dslashReference_4d_sgpu | ( | sFloat * | res, |
gFloat ** | gaugeFull, | ||
sFloat * | spinorField, | ||
int | oddBit, | ||
int | daggerBit | ||
) |
Definition at line 272 of file domain_wall_dslash_reference.cpp.
References faceVolume, gaugeLink_mgpu(), gaugeLink_sgpu(), gaugeSiteSize, Ls, multiplySpinorByDiracProjector5(), mySpinorSiteSize, printSpinorElement(), QUDA_4D_PC, QUDA_DOUBLE_PRECISION, quda::s, spinor, su3Mul(), su3Tmul(), quda::sum(), V5h, and Vh.
void dslashReference_5th | ( | sFloat * | res, |
sFloat * | spinorField, | ||
int | oddBit, | ||
int | daggerBit, | ||
sFloat | mferm | ||
) |
Definition at line 378 of file domain_wall_dslash_reference.cpp.
References quda::ax(), fullLatticeIndex_5d(), fullLatticeIndex_5d_4dpc(), Ls, multiplySpinorByDiracProjector5(), QUDA_5D_PC, spinor, quda::sum(), V5h, X, and Z.
void dslashReference_5th_inv | ( | sFloat * | res, |
sFloat * | spinorField, | ||
int | oddBit, | ||
int | daggerBit, | ||
sFloat | mferm, | ||
double * | kappa | ||
) |
Definition at line 405 of file domain_wall_dslash_reference.cpp.
References quda::ax(), quda::axpy(), Ls, quda::pow(), and Vh.
Referenced by dslash_5_inv().
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 780 of file domain_wall_dslash_reference.cpp.
References dslash_4_4d(), dw_dslash_5_4d(), in, out, spinorSiteSize, V5, V5h, and quda::blas::xpay().
Referenced by dslashRef(), and main().
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 865 of file domain_wall_dslash_reference.cpp.
References dslash_4_4d(), dslash_5_inv(), dw_dslash_5_4d(), kappa, kappa5, Ls, parity, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, spinorSiteSize, tmp, V5h, and quda::blas::xpay().
Referenced by dslashRef(), and main().
void dw_dslash | ( | void * | out, |
void ** | gauge, | ||
void * | in, | ||
int | oddBit, | ||
int | daggerBit, | ||
QudaPrecision | precision, | ||
QudaGaugeParam & | gauge_param, | ||
double | mferm | ||
) |
Definition at line 572 of file domain_wall_dslash_reference.cpp.
References quda::cpuColorSpinorField::backGhostFaceBuffer, quda::ColorSpinorParam::create, csParam, errorQuda, quda::cpuColorSpinorField::exchangeGhost(), quda::ColorSpinorParam::fieldOrder, quda::cpuColorSpinorField::fwdGhostFaceBuffer, quda::ColorSpinorParam::gammaBasis, quda::GaugeField::Ghost(), quda::LatticeFieldParam::ghostExchange, in, Ls, quda::ColorSpinorParam::nColor, quda::LatticeFieldParam::nDim, quda::ColorSpinorParam::nSpin, quda::LatticeFieldParam::pad, quda::ColorSpinorParam::pc_type, QUDA_5D_PC, QUDA_DEGRAND_ROSSI_GAMMA_BASIS, QUDA_DOUBLE_PRECISION, QUDA_EVEN_ODD_SITE_ORDER, QUDA_EVEN_PARITY, QUDA_GHOST_EXCHANGE_PAD, QUDA_INVALID_PARITY, QUDA_ODD_PARITY, QUDA_PARITY_SITE_SUBSET, QUDA_REFERENCE_FIELD_CREATE, QUDA_SPACE_SPIN_COLOR_FIELD_ORDER, quda::ColorSpinorParam::setPrecision(), quda::ColorSpinorParam::siteOrder, quda::LatticeFieldParam::siteSubset, quda::ColorSpinorParam::v, quda::LatticeFieldParam::x, and Z.
Referenced by dslashRef(), dw_mat(), and dw_matpc().
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 695 of file domain_wall_dslash_reference.cpp.
References in, and QUDA_DOUBLE_PRECISION.
Referenced by dslashRef(), dw_4d_mat(), and dw_4d_matpc().
void dw_mat | ( | void * | out, |
void ** | gauge, | ||
void * | in, | ||
double | kappa, | ||
int | dagger_bit, | ||
QudaPrecision | precision, | ||
QudaGaugeParam & | gauge_param, | ||
double | mferm | ||
) |
Definition at line 766 of file domain_wall_dslash_reference.cpp.
References dw_dslash(), in, out, spinorSiteSize, V5, V5h, and quda::blas::xpay().
Referenced by dslashRef(), dw_matdagmat(), and main().
void dw_matdagmat | ( | void * | out, |
void ** | gauge, | ||
void * | in, | ||
double | kappa, | ||
int | dagger_bit, | ||
QudaPrecision | precision, | ||
QudaGaugeParam & | gauge_param, | ||
double | mferm | ||
) |
Definition at line 834 of file domain_wall_dslash_reference.cpp.
References dw_mat(), spinorSiteSize, tmp, and V5.
Referenced by dslashRef().
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 845 of file domain_wall_dslash_reference.cpp.
References dw_dslash(), kappa, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, spinorSiteSize, tmp, V5h, and quda::blas::xpay().
Referenced by dslashRef(), and main().
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 89 of file domain_wall_dslash_reference.cpp.
References comm_dim_partitioned(), fullLatticeIndex(), X1, X2, X3, X4, and Z.
Referenced by dslashReference_4d_sgpu().
Float* gaugeLink_sgpu | ( | int | i, |
int | dir, | ||
int | oddBit, | ||
Float ** | gaugeEven, | ||
Float ** | gaugeOdd | ||
) |
Definition at line 58 of file domain_wall_dslash_reference.cpp.
References neighborIndex_4d().
Referenced by dslashReference_4d_sgpu().
void matdagmat | ( | void * | out, |
void ** | gauge, | ||
void * | in, | ||
double | kappa, | ||
QudaPrecision | sPrecision, | ||
QudaPrecision | gPrecision, | ||
double | mferm | ||
) |
Definition at line 1088 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 1032 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 1109 of file domain_wall_dslash_reference.cpp.
void mdslashReference_5th_inv | ( | sFloat * | res, |
sFloat * | spinorField, | ||
int | oddBit, | ||
int | daggerBit, | ||
sFloat | mferm, | ||
sComplex * | kappa | ||
) |
Definition at line 495 of file domain_wall_dslash_reference.cpp.
References quda::ax(), quda::axpy(), Ls, and Vh.
Referenced by mdw_dslash_5_inv().
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 741 of file domain_wall_dslash_reference.cpp.
References axpby(), in, Ls, QUDA_DOUBLE_PRECISION, spinorSiteSize, and Vh.
Referenced by dslashRef(), mdw_mat(), and mdw_matpc().
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 725 of file domain_wall_dslash_reference.cpp.
References cxpay(), in, Ls, QUDA_DOUBLE_PRECISION, spinorSiteSize, and Vh.
Referenced by dslashRef(), mdw_mat(), and mdw_matpc().
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 715 of file domain_wall_dslash_reference.cpp.
References mdslashReference_5th_inv(), and QUDA_DOUBLE_PRECISION.
Referenced by dslashRef(), and mdw_matpc().
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 797 of file domain_wall_dslash_reference.cpp.
References cxpay(), dslash_4_4d(), in, kappa5, Ls, mdw_dslash_4_pre(), mdw_dslash_5(), out, spinorSiteSize, tmp, V5h, and Vh.
Referenced by dslashRef(), and main().
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 906 of file domain_wall_dslash_reference.cpp.
References cxpay(), dslash_4_4d(), errorQuda, kappa5, Ls, mdw_dslash_4_pre(), mdw_dslash_5(), mdw_dslash_5_inv(), parity, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_ASYMMETRIC, spinorSiteSize, tmp, V5h, and Vh.
Referenced by dslashRef(), and main().
void multiplySpinorByDiracProjector5 | ( | Float * | res, |
int | projIdx, | ||
Float * | spinorIn | ||
) |
Definition at line 238 of file domain_wall_dslash_reference.cpp.
References projector, and quda::s.
Referenced by dslashReference_4d_sgpu(), and dslashReference_5th().
int neighborIndex_4d | ( | int | i, |
int | oddBit, | ||
int | dx4, | ||
int | dx3, | ||
int | dx2, | ||
int | dx1 | ||
) |
Definition at line 29 of file domain_wall_dslash_reference.cpp.
References fullLatticeIndex_4d(), X, and Z.
Referenced by gaugeLink_sgpu().
const double projector[10][4][4][2] |
Definition at line 170 of file domain_wall_dslash_reference.cpp.
Referenced by multiplySpinorByDiracProjector5().