QUDA  v1.1.0
A library for QCD on GPUs
Classes | Macros | Functions | Variables
hisq_force_reference2.cpp File Reference
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <complex>
#include <quda.h>
#include <gauge_field.h>

Go to the source code of this file.

Classes

struct  Sign< N >
 
struct  Sign< 1 >
 
struct  Promote< T, U >
 
struct  Promote< int, float >
 
struct  Promote< float, int >
 
struct  Promote< int, double >
 
struct  Promote< double, int >
 
struct  Promote< float, double >
 
struct  Promote< double, float >
 
struct  Promote< int, std::complex< float > >
 
struct  Promote< std::complex< float >, int >
 
struct  Promote< float, std::complex< float > >
 
struct  Promote< int, std::complex< double > >
 
struct  Promote< std::complex< double >, int >
 
struct  Promote< float, std::complex< double > >
 
struct  Promote< std::complex< double >, float >
 
struct  Promote< double, std::complex< double > >
 
struct  Promote< std::complex< double >, double >
 
class  Matrix< N, T >
 
struct  Identity< N, T >
 
struct  Zero< N, T >
 
class  LoadStore< Real >
 
struct  Locator< oddBit >
 
struct  ColorMatrix< Real >
 
struct  PathCoefficients< Real >
 

Macros

#define RETURN_IF_ERR   if(err) return;
 
#define Pmu   tempmat[0]
 
#define P3   tempmat[1]
 
#define P5   tempmat[2]
 
#define Pnumu   tempmat[3]
 
#define Qmu   tempmat[4]
 
#define Qnumu   tempmat[5]
 

Functions

template<int N, class T >
Matrix< N, T > operator+ (const Matrix< N, T > &a, const Matrix< N, T > &b)
 
template<int N, class T >
Matrix< N, T > operator- (const Matrix< N, T > &a, const Matrix< N, T > &b)
 
template<int N, class T >
Matrix< N, T > operator* (const Matrix< N, T > &a, const Matrix< N, T > &b)
 
template<int N, class T >
Matrix< N, std::complex< T > > conj (const Matrix< N, std::complex< T > > &mat)
 
template<int N, class T >
Matrix< N, T > transpose (const Matrix< N, std::complex< T > > &mat)
 
template<int N, class T , class U >
Matrix< N, typename Promote< T, U >::Type > operator* (const Matrix< N, T > &mat, const U &scalar)
 
template<int N, class T , class U >
Matrix< N, typename Promote< T, U >::Type > operator* (const U &scalar, const Matrix< N, T > &mat)
 
template<int N, class T >
std::ostream & operator<< (std::ostream &os, const Matrix< N, T > &m)
 
template<class Real , int oddBit>
void computeOneLinkSite (const int dim[4], int half_lattice_index, const Real *const oprod, int sig, Real coeff, const LoadStore< Real > &ls, Real *const output)
 
template<class Real >
void computeOneLinkField (const int dim[4], const Real *const oprod, int sig, Real coeff, Real *const output)
 
template<class Real , int oddBit>
void computeMiddleLinkSite (int half_lattice_index, const int dim[4], const Real *const oprod, const Real *const Qprev, const Real *const link, int sig, int mu, Real coeff, const LoadStore< Real > &ls, Real *const Pmu, Real *const P3, Real *const Qmu, Real *const newOprod)
 
template<class Real >
void computeMiddleLinkField (const int dim[4], const Real *const oprod, const Real *const Qprev, const Real *const link, int sig, int mu, Real coeff, Real *const Pmu, Real *const P3, Real *const Qmu, Real *const newOprod)
 
template<class Real , int oddBit>
void computeSideLinkSite (int half_lattice_index, const int dim[4], const Real *const P3, const Real *const Qprod, const Real *const link, int sig, int mu, Real coeff, Real accumu_coeff, const LoadStore< Real > &ls, Real *const shortP, Real *const newOprod)
 
template<class Real >
void computeSideLinkField (const int dim[4], const Real *const P3, const Real *const Qprod, const Real *const link, int sig, int mu, Real coeff, Real accumu_coeff, Real *const shortP, Real *const newOprod)
 
template<class Real , int oddBit>
void computeAllLinkSite (int half_lattice_index, const int dim[4], const Real *const oprod, const Real *const Qprev, const Real *const link, int sig, int mu, Real coeff, Real accumu_coeff, const LoadStore< Real > &ls, Real *const shortP, Real *const newOprod)
 
template<class Real >
void computeAllLinkField (const int dim[4], const Real *const oprod, const Real *const Qprev, const Real *const link, int sig, int mu, Real coeff, Real accumu_coeff, Real *const shortP, Real *const newOprod)
 
template<class Real >
void doHisqStaplesForceCPU (const int dim[4], PathCoefficients< double > staple_coeff, Real *oprod, Real *link, Real **tempmat, Real *newOprod)
 
void hisqStaplesForceCPU (const double *path_coeff, const QudaGaugeParam &param, cpuGaugeField &oprod, cpuGaugeField &link, cpuGaugeField *newOprod)
 
template<class Real , int oddBit>
void computeLongLinkSite (int half_lattice_index, const int dim[4], const Real *const oprod, const Real *const link, int sig, Real coeff, const LoadStore< Real > &ls, Real *const output)
 
template<class Real >
void computeLongLinkField (const int dim[4], const Real *const oprod, const Real *const link, int sig, Real coeff, Real *const output)
 
void hisqLongLinkForceCPU (double coeff, const QudaGaugeParam &param, cpuGaugeField &oprod, cpuGaugeField &link, cpuGaugeField *newOprod)
 
template<class Real , int oddBit>
void completeForceSite (int half_lattice_index, const int dim[4], const Real *const oprod, const Real *const link, int sig, const LoadStore< Real > &ls, Real *const mom)
 
template<class Real >
void completeForceField (const int dim[4], const Real *const oprod, const Real *const link, int sig, Real *const mom)
 
void hisqCompleteForceCPU (const QudaGaugeParam &param, cpuGaugeField &oprod, cpuGaugeField &link, cpuGaugeField *mom)
 

Variables

int gauge_order
 
int Vh
 
int Vh_ex
 

Macro Definition Documentation

◆ P3

#define P3   tempmat[1]

Definition at line 1239 of file hisq_force_reference2.cpp.

◆ P5

#define P5   tempmat[2]

Definition at line 1240 of file hisq_force_reference2.cpp.

◆ Pmu

#define Pmu   tempmat[0]

Definition at line 1238 of file hisq_force_reference2.cpp.

◆ Pnumu

#define Pnumu   tempmat[3]

Definition at line 1241 of file hisq_force_reference2.cpp.

◆ Qmu

#define Qmu   tempmat[4]

Definition at line 1242 of file hisq_force_reference2.cpp.

◆ Qnumu

#define Qnumu   tempmat[5]

Definition at line 1243 of file hisq_force_reference2.cpp.

◆ RETURN_IF_ERR

#define RETURN_IF_ERR   if(err) return;

Definition at line 13 of file hisq_force_reference2.cpp.

Function Documentation

◆ completeForceField()

template<class Real >
void completeForceField ( const int  dim[4],
const Real *const  oprod,
const Real *const  link,
int  sig,
Real *const  mom 
)

Definition at line 1570 of file hisq_force_reference2.cpp.

◆ completeForceSite()

template<class Real , int oddBit>
void completeForceSite ( int  half_lattice_index,
const int  dim[4],
const Real *const  oprod,
const Real *const  link,
int  sig,
const LoadStore< Real > &  ls,
Real *const  mom 
)

Definition at line 1542 of file hisq_force_reference2.cpp.

◆ computeAllLinkField()

template<class Real >
void computeAllLinkField ( const int  dim[4],
const Real *const  oprod,
const Real *const  Qprev,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
Real  accumu_coeff,
Real *const  shortP,
Real *const  newOprod 
)

Definition at line 1198 of file hisq_force_reference2.cpp.

◆ computeAllLinkSite()

template<class Real , int oddBit>
void computeAllLinkSite ( int  half_lattice_index,
const int  dim[4],
const Real *const  oprod,
const Real *const  Qprev,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
Real  accumu_coeff,
const LoadStore< Real > &  ls,
Real *const  shortP,
Real *const  newOprod 
)

Definition at line 1101 of file hisq_force_reference2.cpp.

◆ computeLongLinkField()

template<class Real >
void computeLongLinkField ( const int  dim[4],
const Real *const  oprod,
const Real *const  link,
int  sig,
Real  coeff,
Real *const  output 
)

Definition at line 1481 of file hisq_force_reference2.cpp.

◆ computeLongLinkSite()

template<class Real , int oddBit>
void computeLongLinkSite ( int  half_lattice_index,
const int  dim[4],
const Real *const  oprod,
const Real *const  link,
int  sig,
Real  coeff,
const LoadStore< Real > &  ls,
Real *const  output 
)

Definition at line 1425 of file hisq_force_reference2.cpp.

◆ computeMiddleLinkField()

template<class Real >
void computeMiddleLinkField ( const int  dim[4],
const Real *const  oprod,
const Real *const  Qprev,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
Real *const  Pmu,
Real *const  P3,
Real *const  Qmu,
Real *const  newOprod 
)

Definition at line 934 of file hisq_force_reference2.cpp.

◆ computeMiddleLinkSite()

template<class Real , int oddBit>
void computeMiddleLinkSite ( int  half_lattice_index,
const int  dim[4],
const Real *const  oprod,
const Real *const  Qprev,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
const LoadStore< Real > &  ls,
Real *const  Pmu,
Real *const  P3,
Real *const  Qmu,
Real *const  newOprod 
)

Definition at line 834 of file hisq_force_reference2.cpp.

◆ computeOneLinkField()

template<class Real >
void computeOneLinkField ( const int  dim[4],
const Real *const  oprod,
int  sig,
Real  coeff,
Real *const  output 
)

Definition at line 798 of file hisq_force_reference2.cpp.

◆ computeOneLinkSite()

template<class Real , int oddBit>
void computeOneLinkSite ( const int  dim[4],
int  half_lattice_index,
const Real *const  oprod,
int  sig,
Real  coeff,
const LoadStore< Real > &  ls,
Real *const  output 
)

Definition at line 777 of file hisq_force_reference2.cpp.

◆ computeSideLinkField()

template<class Real >
void computeSideLinkField ( const int  dim[4],
const Real *const  P3,
const Real *const  Qprod,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
Real  accumu_coeff,
Real *const  shortP,
Real *const  newOprod 
)

Definition at line 1057 of file hisq_force_reference2.cpp.

◆ computeSideLinkSite()

template<class Real , int oddBit>
void computeSideLinkSite ( int  half_lattice_index,
const int  dim[4],
const Real *const  P3,
const Real *const  Qprod,
const Real *const  link,
int  sig,
int  mu,
Real  coeff,
Real  accumu_coeff,
const LoadStore< Real > &  ls,
Real *const  shortP,
Real *const  newOprod 
)

Definition at line 980 of file hisq_force_reference2.cpp.

◆ conj()

template<int N, class T >
Matrix<N,std::complex<T> > conj ( const Matrix< N, std::complex< T > > &  mat)

Definition at line 231 of file hisq_force_reference2.cpp.

◆ doHisqStaplesForceCPU()

template<class Real >
void doHisqStaplesForceCPU ( const int  dim[4],
PathCoefficients< double >  staple_coeff,
Real *  oprod,
Real *  link,
Real **  tempmat,
Real *  newOprod 
)

Definition at line 1258 of file hisq_force_reference2.cpp.

◆ hisqCompleteForceCPU()

void hisqCompleteForceCPU ( const QudaGaugeParam param,
cpuGaugeField oprod,
cpuGaugeField link,
cpuGaugeField mom 
)

Definition at line 1602 of file hisq_force_reference2.cpp.

◆ hisqLongLinkForceCPU()

void hisqLongLinkForceCPU ( double  coeff,
const QudaGaugeParam param,
cpuGaugeField oprod,
cpuGaugeField link,
cpuGaugeField newOprod 
)

Definition at line 1514 of file hisq_force_reference2.cpp.

◆ hisqStaplesForceCPU()

void hisqStaplesForceCPU ( const double *  path_coeff,
const QudaGaugeParam param,
cpuGaugeField oprod,
cpuGaugeField link,
cpuGaugeField newOprod 
)

Definition at line 1365 of file hisq_force_reference2.cpp.

◆ operator*() [1/3]

template<int N, class T >
Matrix<N,T> operator* ( const Matrix< N, T > &  a,
const Matrix< N, T > &  b 
)

Definition at line 216 of file hisq_force_reference2.cpp.

◆ operator*() [2/3]

template<int N, class T , class U >
Matrix<N, typename Promote<T,U>::Type> operator* ( const Matrix< N, T > &  mat,
const U &  scalar 
)

Definition at line 255 of file hisq_force_reference2.cpp.

◆ operator*() [3/3]

template<int N, class T , class U >
Matrix<N, typename Promote<T,U>::Type> operator* ( const U &  scalar,
const Matrix< N, T > &  mat 
)

Definition at line 269 of file hisq_force_reference2.cpp.

◆ operator+()

template<int N, class T >
Matrix<N,T> operator+ ( const Matrix< N, T > &  a,
const Matrix< N, T > &  b 
)

Definition at line 200 of file hisq_force_reference2.cpp.

◆ operator-()

template<int N, class T >
Matrix<N,T> operator- ( const Matrix< N, T > &  a,
const Matrix< N, T > &  b 
)

Definition at line 208 of file hisq_force_reference2.cpp.

◆ operator<<()

template<int N, class T >
std::ostream& operator<< ( std::ostream &  os,
const Matrix< N, T > &  m 
)

Definition at line 297 of file hisq_force_reference2.cpp.

◆ transpose()

template<int N, class T >
Matrix<N,T> transpose ( const Matrix< N, std::complex< T > > &  mat)

Definition at line 243 of file hisq_force_reference2.cpp.

Variable Documentation

◆ gauge_order

int gauge_order
extern

Definition at line 34 of file hisq_paths_force_test.cpp.

◆ Vh

int Vh
extern

Definition at line 38 of file host_utils.cpp.

◆ Vh_ex

int Vh_ex
extern

Definition at line 46 of file host_utils.cpp.