QUDA  v1.1.0
A library for QCD on GPUs
Classes | Macros | Functions | Variables
hisq_force_reference.cpp File Reference
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <type_traits>
#include <quda.h>
#include <host_utils.h>
#include <misc.h>
#include <hisq_force_reference.h>

Go to the source code of this file.

Classes

struct  fcomplex
 
struct  dcomplex
 
struct  fsu3_matrix
 
struct  fsu3_vector
 
struct  dsu3_matrix
 
struct  dsu3_vector
 
struct  fanti_hermitmat
 
struct  danti_hermitmat
 
struct  fhalf_wilson_vector
 
struct  dhalf_wilson_vector
 

Macros

#define CADD(a, b, c)
 
#define CMUL(a, b, c)
 
#define CSUM(a, b)   { (a).real += (b).real; (a).imag += (b).imag; }
 
#define CMULJ_(a, b, c)
 
#define CMUL_J(a, b, c)
 
#define CONJG(a, b)   { (b).real = (a).real; (b).imag = -(a).imag; }
 
#define Pmu   tempmat[0]
 
#define Pnumu   tempmat[1]
 
#define Prhonumu   tempmat[2]
 
#define P7   tempmat[3]
 
#define P7rho   tempmat[4]
 
#define P5   tempmat[5]
 
#define P3   tempmat[6]
 
#define P5nu   tempmat[3]
 
#define P3mu   tempmat[3]
 
#define Popmu   tempmat[4]
 
#define Pmumumu   tempmat[4]
 
#define Qmu   tempmat[7]
 
#define Qnumu   tempmat[8]
 
#define Qrhonumu   tempmat[2]
 

Functions

template<typename su3_matrix >
su3_matrixget_su3_matrix (int gauge_order, su3_matrix *p, int idx, int dir)
 
void computeLinkOrderedOuterProduct (void *src, void *dst, QudaPrecision precision, int gauge_order)
 
void computeLinkOrderedOuterProduct (void *src, void *dst, QudaPrecision precision, size_t nhops, int gauge_order)
 
void computeHisqOuterProduct (void *src, void *dest, QudaPrecision precision)
 
template<typename Real , typename su3_matrix , typename anti_hermitmat >
void do_color_matrix_hisq_force_reference (Real eps, Real weight, su3_matrix *temp_xx, Real *act_path_coeff, su3_matrix *sitelink, anti_hermitmat *mom)
 
template<typename Real , typename su3_matrix , typename anti_hermitmat , typename half_wilson_vector >
void do_halfwilson_hisq_force_reference (Real eps, Real weight, half_wilson_vector *temp_x, Real *act_path_coeff, su3_matrix *sitelink, anti_hermitmat *mom)
 
void halfwilson_hisq_force_reference (float eps, float weight, void *act_path_coeff, void *temp_x, void *sitelink, void *mom)
 
void halfwilson_hisq_force_reference (double eps, double weight, void *act_path_coeff, void *temp_x, void *sitelink, void *mom)
 
void color_matrix_hisq_force_reference (float eps, float weight, void *act_path_coeff, void *temp_xx, void *sitelink, void *mom)
 

Variables

int Z [4]
 
int V
 
int Vh
 

Macro Definition Documentation

◆ CADD

#define CADD (   a,
  b,
 
)
Value:
{ (c).real = (a).real + (b).real; \
(c).imag = (a).imag + (b).imag; }

Definition at line 17 of file hisq_force_reference.cpp.

◆ CMUL

#define CMUL (   a,
  b,
 
)
Value:
{ (c).real = (a).real*(b).real - (a).imag*(b).imag; \
(c).imag = (a).real*(b).imag + (a).imag*(b).real; }

Definition at line 19 of file hisq_force_reference.cpp.

◆ CMUL_J

#define CMUL_J (   a,
  b,
 
)
Value:
{ (c).real = (a).real*(b).real + (a).imag*(b).imag; \
(c).imag = (a).imag*(b).real - (a).real*(b).imag; }

Definition at line 28 of file hisq_force_reference.cpp.

◆ CMULJ_

#define CMULJ_ (   a,
  b,
 
)
Value:
{ (c).real = (a).real*(b).real + (a).imag*(b).imag; \
(c).imag = (a).real*(b).imag - (a).imag*(b).real; }

Definition at line 24 of file hisq_force_reference.cpp.

◆ CONJG

#define CONJG (   a,
 
)    { (b).real = (a).real; (b).imag = -(a).imag; }

Definition at line 31 of file hisq_force_reference.cpp.

◆ CSUM

#define CSUM (   a,
 
)    { (a).real += (b).real; (a).imag += (b).imag; }

Definition at line 21 of file hisq_force_reference.cpp.

◆ P3

#define P3   tempmat[6]

Definition at line 714 of file hisq_force_reference.cpp.

◆ P3mu

#define P3mu   tempmat[3]

Definition at line 716 of file hisq_force_reference.cpp.

◆ P5

#define P5   tempmat[5]

Definition at line 713 of file hisq_force_reference.cpp.

◆ P5nu

#define P5nu   tempmat[3]

Definition at line 715 of file hisq_force_reference.cpp.

◆ P7

#define P7   tempmat[3]

Definition at line 711 of file hisq_force_reference.cpp.

◆ P7rho

#define P7rho   tempmat[4]

Definition at line 712 of file hisq_force_reference.cpp.

◆ Pmu

#define Pmu   tempmat[0]

Definition at line 708 of file hisq_force_reference.cpp.

◆ Pmumumu

#define Pmumumu   tempmat[4]

Definition at line 718 of file hisq_force_reference.cpp.

◆ Pnumu

#define Pnumu   tempmat[1]

Definition at line 709 of file hisq_force_reference.cpp.

◆ Popmu

#define Popmu   tempmat[4]

Definition at line 717 of file hisq_force_reference.cpp.

◆ Prhonumu

#define Prhonumu   tempmat[2]

Definition at line 710 of file hisq_force_reference.cpp.

◆ Qmu

#define Qmu   tempmat[7]

Definition at line 720 of file hisq_force_reference.cpp.

◆ Qnumu

#define Qnumu   tempmat[8]

Definition at line 721 of file hisq_force_reference.cpp.

◆ Qrhonumu

#define Qrhonumu   tempmat[2]

Definition at line 722 of file hisq_force_reference.cpp.

Function Documentation

◆ color_matrix_hisq_force_reference()

void color_matrix_hisq_force_reference ( float  eps,
float  weight,
void *  act_path_coeff,
void *  temp_xx,
void *  sitelink,
void *  mom 
)

Definition at line 1162 of file hisq_force_reference.cpp.

◆ computeHisqOuterProduct()

void computeHisqOuterProduct ( void *  src,
void *  dest,
QudaPrecision  precision 
)

Definition at line 512 of file hisq_force_reference.cpp.

◆ computeLinkOrderedOuterProduct() [1/2]

void computeLinkOrderedOuterProduct ( void *  src,
void *  dst,
QudaPrecision  precision,
int  gauge_order 
)

Definition at line 475 of file hisq_force_reference.cpp.

◆ computeLinkOrderedOuterProduct() [2/2]

void computeLinkOrderedOuterProduct ( void *  src,
void *  dst,
QudaPrecision  precision,
size_t  nhops,
int  gauge_order 
)

Definition at line 485 of file hisq_force_reference.cpp.

◆ do_color_matrix_hisq_force_reference()

template<typename Real , typename su3_matrix , typename anti_hermitmat >
void do_color_matrix_hisq_force_reference ( Real  eps,
Real  weight,
su3_matrix temp_xx,
Real *  act_path_coeff,
su3_matrix sitelink,
anti_hermitmat *  mom 
)

Definition at line 750 of file hisq_force_reference.cpp.

◆ do_halfwilson_hisq_force_reference()

template<typename Real , typename su3_matrix , typename anti_hermitmat , typename half_wilson_vector >
void do_halfwilson_hisq_force_reference ( Real  eps,
Real  weight,
half_wilson_vector *  temp_x,
Real *  act_path_coeff,
su3_matrix sitelink,
anti_hermitmat *  mom 
)

Definition at line 936 of file hisq_force_reference.cpp.

◆ get_su3_matrix()

template<typename su3_matrix >
su3_matrix* get_su3_matrix ( int  gauge_order,
su3_matrix p,
int  idx,
int  dir 
)

Definition at line 66 of file hisq_force_reference.cpp.

◆ halfwilson_hisq_force_reference() [1/2]

void halfwilson_hisq_force_reference ( double  eps,
double  weight,
void *  act_path_coeff,
void *  temp_x,
void *  sitelink,
void *  mom 
)

Definition at line 1150 of file hisq_force_reference.cpp.

◆ halfwilson_hisq_force_reference() [2/2]

void halfwilson_hisq_force_reference ( float  eps,
float  weight,
void *  act_path_coeff,
void *  temp_x,
void *  sitelink,
void *  mom 
)

Definition at line 1138 of file hisq_force_reference.cpp.

Variable Documentation

◆ V

int V
extern

Definition at line 37 of file host_utils.cpp.

◆ Vh

int Vh
extern

Definition at line 38 of file host_utils.cpp.

◆ Z

int Z[4]
extern

Definition at line 36 of file host_utils.cpp.