QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

#define P3   tempmat[1]

Definition at line 1240 of file hisq_force_reference2.cpp.

#define P5   tempmat[2]

Definition at line 1241 of file hisq_force_reference2.cpp.

#define Pmu   tempmat[0]

Definition at line 1239 of file hisq_force_reference2.cpp.

#define Pnumu   tempmat[3]

Definition at line 1242 of file hisq_force_reference2.cpp.

#define Qmu   tempmat[4]

Definition at line 1243 of file hisq_force_reference2.cpp.

#define Qnumu   tempmat[5]

Definition at line 1244 of file hisq_force_reference2.cpp.

#define RETURN_IF_ERR   if(err) return;

Definition at line 13 of file hisq_force_reference2.cpp.

Function Documentation

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 1571 of file hisq_force_reference2.cpp.

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 1543 of file hisq_force_reference2.cpp.

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 1199 of file hisq_force_reference2.cpp.

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 1102 of file hisq_force_reference2.cpp.

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 1482 of file hisq_force_reference2.cpp.

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 1426 of file hisq_force_reference2.cpp.

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 935 of file hisq_force_reference2.cpp.

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 835 of file hisq_force_reference2.cpp.

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

Definition at line 799 of file hisq_force_reference2.cpp.

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 778 of file hisq_force_reference2.cpp.

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 1058 of file hisq_force_reference2.cpp.

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 981 of file hisq_force_reference2.cpp.

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.

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

Definition at line 1259 of file hisq_force_reference2.cpp.

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

Definition at line 1603 of file hisq_force_reference2.cpp.

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

Definition at line 1515 of file hisq_force_reference2.cpp.

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

Definition at line 1366 of file hisq_force_reference2.cpp.

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.

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.

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.

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.

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.

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.

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

int gauge_order

Definition at line 22 of file gauge_force_test.cpp.

int Vh

Definition at line 152 of file dslash_constants.h.

int Vh_ex

Definition at line 198 of file dslash_constants.h.