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

Go to the source code of this file.

Functions

template<typename sFloat , typename cFloat >
void cloverReference (sFloat *out, cFloat *clover, sFloat *in, int parity)
 Apply the clover matrix field. More...
 
void apply_clover (void *out, void *clover, void *in, int parity, QudaPrecision precision)
 
void clover_dslash (void *out, void **gauge, void *clover, void *in, int parity, int dagger, QudaPrecision precision, QudaGaugeParam &param)
 
void clover_matpc (void *out, void **gauge, void *clover, void *clover_inv, void *in, double kappa, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void clover_mat (void *out, void **gauge, void *clover, void *in, double kappa, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void applyTwist (void *out, void *in, void *tmpH, double a, QudaPrecision precision)
 
void twistCloverGamma5 (void *out, void *in, void *clover, void *cInv, const int dagger, const double kappa, const double mu, const QudaTwistFlavorType flavor, const int parity, QudaTwistGamma5Type twist, QudaPrecision precision)
 
void tmc_dslash (void *out, void **gauge, void *in, void *clover, void *cInv, double kappa, double mu, QudaTwistFlavorType flavor, int parity, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &param)
 
void tmc_mat (void *out, void **gauge, void *clover, void *in, double kappa, double mu, QudaTwistFlavorType flavor, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param)
 
void tmc_matpc (void *out, void **gauge, void *in, void *clover, void *cInv, double kappa, double mu, QudaTwistFlavorType flavor, QudaMatPCType matpc_type, int dagger, QudaPrecision precision, QudaGaugeParam &gauge_param)
 

Function Documentation

◆ apply_clover()

void apply_clover ( void *  out,
void *  clover,
void *  in,
int  parity,
QudaPrecision  precision 
)

Definition at line 66 of file clover_reference.cpp.

References cloverReference(), errorQuda, QUDA_DOUBLE_PRECISION, and QUDA_SINGLE_PRECISION.

Referenced by clover_dslash(), clover_mat(), clover_matpc(), and twistCloverGamma5().

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

◆ applyTwist()

void applyTwist ( void *  out,
void *  in,
void *  tmpH,
double  a,
QudaPrecision  precision 
)

Definition at line 175 of file clover_reference.cpp.

References errorQuda, QUDA_DOUBLE_PRECISION, QUDA_SINGLE_PRECISION, quda::s, and Vh.

Referenced by twistCloverGamma5().

Here is the caller graph for this function:

◆ clover_dslash()

void clover_dslash ( void *  out,
void **  gauge,
void *  clover,
void *  in,
int  parity,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 81 of file clover_reference.cpp.

References apply_clover(), spinorSiteSize, tmp, Vh, and wil_dslash().

Referenced by dslashRef().

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

◆ clover_mat()

void clover_mat ( void *  out,
void **  gauge,
void *  clover,
void *  in,
double  kappa,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 149 of file clover_reference.cpp.

References apply_clover(), in, out, spinorSiteSize, tmp, 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:

◆ clover_matpc()

void clover_matpc ( void *  out,
void **  gauge,
void *  clover,
void *  clover_inv,
void *  in,
double  kappa,
QudaMatPCType  matpc_type,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 92 of file clover_reference.cpp.

References apply_clover(), errorQuda, kappa, QUDA_MATPC_EVEN_EVEN, QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD, QUDA_MATPC_ODD_ODD_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:

◆ cloverReference()

template<typename sFloat , typename cFloat >
void cloverReference ( sFloat *  out,
cFloat *  clover,
sFloat *  in,
int  parity 
)

Apply the clover matrix field.

Parameters
[out]outResult field (single parity)
[in]cloverClover-matrix field (full field)
[in]inInput field (single parity)
[in]parityParity to which we are applying the clover field

Definition at line 20 of file clover_reference.cpp.

References conj(), nColor, and Vh.

Referenced by apply_clover().

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

◆ tmc_dslash()

void tmc_dslash ( void *  out,
void **  gauge,
void *  in,
void *  clover,
void *  cInv,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
int  parity,
QudaMatPCType  matpc_type,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 234 of file clover_reference.cpp.

References QUDA_MATPC_EVEN_EVEN_ASYMMETRIC, QUDA_MATPC_ODD_ODD_ASYMMETRIC, QUDA_TWIST_GAMMA5_INVERSE, spinorSiteSize, tmp1, tmp2, twistCloverGamma5(), Vh, and wil_dslash().

Referenced by dslashRef().

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

◆ tmc_mat()

void tmc_mat ( void *  out,
void **  gauge,
void *  clover,
void *  in,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 257 of file clover_reference.cpp.

References in, out, QUDA_TWIST_GAMMA5_DIRECT, spinorSiteSize, tmp, twistCloverGamma5(), 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:

◆ tmc_matpc()

void tmc_matpc ( void *  out,
void **  gauge,
void *  in,
void *  clover,
void *  cInv,
double  kappa,
double  mu,
QudaTwistFlavorType  flavor,
QudaMatPCType  matpc_type,
int  dagger,
QudaPrecision  precision,
QudaGaugeParam gauge_param 
)

Definition at line 284 of file clover_reference.cpp.

References errorQuda, 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, tmp1, tmp2, twistCloverGamma5(), 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:

◆ twistCloverGamma5()

void twistCloverGamma5 ( void *  out,
void *  in,
void *  clover,
void *  cInv,
const int  dagger,
const double  kappa,
const double  mu,
const QudaTwistFlavorType  flavor,
const int  parity,
QudaTwistGamma5Type  twist,
QudaPrecision  precision 
)

Definition at line 203 of file clover_reference.cpp.

References apply_clover(), applyTwist(), QUDA_TWIST_GAMMA5_DIRECT, QUDA_TWIST_GAMMA5_INVERSE, spinorSiteSize, tmp1, tmp2, and Vh.

Referenced by tmc_dslash(), tmc_mat(), and tmc_matpc().

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