QUDA  v0.7.0
A library for QCD on GPUs
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Macros | Functions | Variables
test_util.cpp File Reference
#include <complex>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <short.h>
#include <wilson_dslash_reference.h>
#include <test_util.h>
#include <face_quda.h>
#include <dslash_quda.h>
#include "misc.h"

Go to the source code of this file.

Macros

#define XUP   0
 
#define YUP   1
 
#define ZUP   2
 
#define TUP   3
 

Functions

void initComms (int argc, char **argv, const int *commDims)
 
void finalizeComms ()
 
void initRand ()
 
void setDims (int *X)
 
void dw_setDims (int *X, const int L5)
 
void setSpinorSiteSize (int n)
 
void printSpinorElement (void *spinor, int X, QudaPrecision precision)
 
void printGaugeElement (void *gauge, int X, QudaPrecision precision)
 
int getOddBit (int Y)
 
template<typename Float >
void complexAddTo (Float *a, Float *b)
 
template<typename Float >
void complexProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void complexConjugateProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void complexDotProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void accumulateComplexProduct (Float *a, Float *b, Float *c, Float sign)
 
template<typename Float >
void accumulateComplexDotProduct (Float *a, Float *b, Float *c)
 
template<typename Float >
void accumulateConjugateProduct (Float *a, Float *b, Float *c, int sign)
 
template<typename Float >
void su3Construct12 (Float *mat)
 
template<typename Float >
void su3Construct8 (Float *mat)
 
void su3_construct (void *mat, QudaReconstructType reconstruct, QudaPrecision precision)
 
void su3_reconstruct (void *mat, int dir, int ga_idx, QudaReconstructType reconstruct, QudaPrecision precision, QudaGaugeParam *param)
 
int compare_floats (void *a, void *b, int len, double epsilon, QudaPrecision precision)
 
int fullLatticeIndex (int dim[4], int index, int oddBit)
 
int fullLatticeIndex (int i, int oddBit)
 
int neighborIndex (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndex (int dim[4], int index, int oddBit, int dx[4])
 
int neighborIndex_mg (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndexFullLattice (int i, int dx4, int dx3, int dx2, int dx1)
 
int neighborIndexFullLattice (int dim[4], int index, int dx[4])
 
int neighborIndexFullLattice_mg (int i, int dx4, int dx3, int dx2, int dx1)
 
int fullLatticeIndex_4d (int i, int oddBit)
 
int fullLatticeIndex_5d (int i, int oddBit)
 
int fullLatticeIndex_5d_4dpc (int i, int oddBit)
 
int x4_from_full_index (int i)
 
template<typename Float >
void applyGaugeFieldScaling_long (Float **gauge, int Vh, QudaGaugeParam *param)
 
template<typename Float >
void constructUnitaryGaugeField (Float **res)
 
void construct_gauge_field (void **gauge, int type, QudaPrecision precision, QudaGaugeParam *param)
 
void construct_fat_long_gauge_field (void **fatlink, void **longlink, int type, QudaPrecision precision, QudaGaugeParam *param, QudaDslashType dslash_type)
 
void construct_clover_field (void *clover, double norm, double diag, QudaPrecision precision)
 
void check_gauge (void **oldG, void **newG, double epsilon, QudaPrecision precision)
 
void createSiteLinkCPU (void **link, QudaPrecision precision, int phase)
 
template<typename Float >
int compareLink (Float **linkA, Float **linkB, int len)
 
int strong_check_link (void **linkA, const char *msgA, void **linkB, const char *msgB, int len, QudaPrecision prec)
 
void createMomCPU (void *mom, QudaPrecision precision)
 
void createHwCPU (void *hw, QudaPrecision precision)
 
template<typename Float >
int compare_mom (Float *momA, Float *momB, int len)
 
int strong_check_mom (void *momA, void *momB, int len, QudaPrecision prec)
 
int dimPartitioned (int dim)
 
void __attribute__ ((weak)) usage_extra(char **argv)
 
void usage (char **argv)
 
int process_command_line_option (int argc, char **argv, int *idx)
 
void stopwatchStart ()
 
double stopwatchReadSeconds ()
 

Variables

int Z [4]
 
int V
 
int Vh
 
int Vs_x
 
int Vs_y
 
int Vs_z
 
int Vs_t
 
int Vsh_x
 
int Vsh_y
 
int Vsh_z
 
int Vsh_t
 
int faceVolume [4]
 
int E1
 
int E1h
 
int E2
 
int E3
 
int E4
 
int E [4]
 
int V_ex
 
int Vh_ex
 
int Ls
 
int V5
 
int V5h
 
int mySpinorSiteSize
 
float fat_link_max
 
int device = 0
 
QudaReconstructType link_recon = QUDA_RECONSTRUCT_NO
 
QudaReconstructType link_recon_sloppy = QUDA_RECONSTRUCT_INVALID
 
QudaPrecision prec = QUDA_SINGLE_PRECISION
 
QudaPrecision prec_sloppy = QUDA_INVALID_PRECISION
 
int xdim = 24
 
int ydim = 24
 
int zdim = 24
 
int tdim = 24
 
int Lsdim = 16
 
QudaDagType dagger = QUDA_DAG_NO
 
int gridsize_from_cmdline [4] = {1,1,1,1}
 
QudaDslashType dslash_type = QUDA_WILSON_DSLASH
 
char latfile [256] = ""
 
bool tune = true
 
int niter = 10
 
int test_type = 0
 
QudaInverterType inv_type
 
QudaInverterType precon_type = QUDA_INVALID_INVERTER
 
int multishift = 0
 
bool verify_results = true
 
double mass = 0.1
 
QudaTwistFlavorType twist_flavor = QUDA_TWIST_MINUS
 
bool kernel_pack_t = false
 
QudaMassNormalization normalization = QUDA_KAPPA_NORMALIZATION
 
QudaMatPCType matpc_type = QUDA_MATPC_EVEN_EVEN
 

Macro Definition Documentation

#define TUP   3

Definition at line 25 of file test_util.cpp.

#define XUP   0

Definition at line 22 of file test_util.cpp.

#define YUP   1

Definition at line 23 of file test_util.cpp.

#define ZUP   2

Definition at line 24 of file test_util.cpp.

Function Documentation

void __attribute__ ( (weak)  )

Definition at line 1582 of file test_util.cpp.

template<typename Float >
void accumulateComplexDotProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 231 of file test_util.cpp.

template<typename Float >
void accumulateComplexProduct ( Float *  a,
Float *  b,
Float *  c,
Float  sign 
)
inline

Definition at line 224 of file test_util.cpp.

template<typename Float >
void accumulateConjugateProduct ( Float *  a,
Float *  b,
Float *  c,
int  sign 
)
inline

Definition at line 237 of file test_util.cpp.

template<typename Float >
void applyGaugeFieldScaling_long ( Float **  gauge,
int  Vh,
QudaGaugeParam param 
)

Definition at line 723 of file test_util.cpp.

void check_gauge ( void **  oldG,
void **  newG,
double  epsilon,
QudaPrecision  precision 
)

Definition at line 1156 of file test_util.cpp.

int compare_floats ( void *  a,
void *  b,
int  len,
double  epsilon,
QudaPrecision  precision 
)

Definition at line 395 of file test_util.cpp.

template<typename Float >
int compare_mom ( Float *  momA,
Float *  momB,
int  len 
)

Definition at line 1454 of file test_util.cpp.

template<typename Float >
int compareLink ( Float **  linkA,
Float **  linkB,
int  len 
)

Definition at line 1296 of file test_util.cpp.

template<typename Float >
void complexAddTo ( Float *  a,
Float *  b 
)
inline

Definition at line 196 of file test_util.cpp.

template<typename Float >
void complexConjugateProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 210 of file test_util.cpp.

template<typename Float >
void complexDotProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 217 of file test_util.cpp.

template<typename Float >
void complexProduct ( Float *  a,
Float *  b,
Float *  c 
)
inline

Definition at line 203 of file test_util.cpp.

void construct_clover_field ( void *  clover,
double  norm,
double  diag,
QudaPrecision  precision 
)

Definition at line 1103 of file test_util.cpp.

void construct_fat_long_gauge_field ( void **  fatlink,
void **  longlink,
int  type,
QudaPrecision  precision,
QudaGaugeParam param,
QudaDslashType  dslash_type 
)

Definition at line 1018 of file test_util.cpp.

void construct_gauge_field ( void **  gauge,
int  type,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 1003 of file test_util.cpp.

template<typename Float >
void constructUnitaryGaugeField ( Float **  res)

Definition at line 944 of file test_util.cpp.

void createHwCPU ( void *  hw,
QudaPrecision  precision 
)

Definition at line 1429 of file test_util.cpp.

void createMomCPU ( void *  mom,
QudaPrecision  precision 
)

Definition at line 1391 of file test_util.cpp.

void createSiteLinkCPU ( void **  link,
QudaPrecision  precision,
int  phase 
)

Definition at line 1166 of file test_util.cpp.

int dimPartitioned ( int  dim)

Definition at line 1577 of file test_util.cpp.

void dw_setDims ( int *  X,
const int  L5 
)

Definition at line 125 of file test_util.cpp.

void finalizeComms ( )

Definition at line 65 of file test_util.cpp.

int fullLatticeIndex ( int  dim[4],
int  index,
int  oddBit 
)

Definition at line 400 of file test_util.cpp.

int fullLatticeIndex ( int  i,
int  oddBit 
)

Definition at line 413 of file test_util.cpp.

int fullLatticeIndex_4d ( int  i,
int  oddBit 
)

Definition at line 616 of file test_util.cpp.

int fullLatticeIndex_5d ( int  i,
int  oddBit 
)

Definition at line 650 of file test_util.cpp.

int fullLatticeIndex_5d_4dpc ( int  i,
int  oddBit 
)

Definition at line 655 of file test_util.cpp.

int getOddBit ( int  Y)

Definition at line 186 of file test_util.cpp.

void initComms ( int  argc,
char **  argv,
const int *  commDims 
)

Definition at line 48 of file test_util.cpp.

void initRand ( )

Definition at line 75 of file test_util.cpp.

int neighborIndex ( int  i,
int  oddBit,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 450 of file test_util.cpp.

int neighborIndex ( int  dim[4],
int  index,
int  oddBit,
int  dx[4] 
)

Definition at line 468 of file test_util.cpp.

int neighborIndex_mg ( int  i,
int  oddBit,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 485 of file test_util.cpp.

int neighborIndexFullLattice ( int  i,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 521 of file test_util.cpp.

int neighborIndexFullLattice ( int  dim[4],
int  index,
int  dx[4] 
)

Definition at line 544 of file test_util.cpp.

int neighborIndexFullLattice_mg ( int  i,
int  dx4,
int  dx3,
int  dx2,
int  dx1 
)

Definition at line 569 of file test_util.cpp.

void printGaugeElement ( void *  gauge,
int  X,
QudaPrecision  precision 
)

Definition at line 170 of file test_util.cpp.

void printSpinorElement ( void *  spinor,
int  X,
QudaPrecision  precision 
)

Definition at line 162 of file test_util.cpp.

int process_command_line_option ( int  argc,
char **  argv,
int *  idx 
)

Definition at line 1635 of file test_util.cpp.

void setDims ( int *  X)

Definition at line 88 of file test_util.cpp.

void setSpinorSiteSize ( int  n)

Definition at line 150 of file test_util.cpp.

double stopwatchReadSeconds ( )

Definition at line 2059 of file test_util.cpp.

void stopwatchStart ( )

Definition at line 2055 of file test_util.cpp.

int strong_check_link ( void **  linkA,
const char *  msgA,
void **  linkB,
const char *  msgB,
int  len,
QudaPrecision  prec 
)

Definition at line 1365 of file test_util.cpp.

int strong_check_mom ( void *  momA,
void *  momB,
int  len,
QudaPrecision  prec 
)

Definition at line 1502 of file test_util.cpp.

void su3_construct ( void *  mat,
QudaReconstructType  reconstruct,
QudaPrecision  precision 
)

Definition at line 261 of file test_util.cpp.

void su3_reconstruct ( void *  mat,
int  dir,
int  ga_idx,
QudaReconstructType  reconstruct,
QudaPrecision  precision,
QudaGaugeParam param 
)

Definition at line 351 of file test_util.cpp.

template<typename Float >
void su3Construct12 ( Float *  mat)
inline

Definition at line 243 of file test_util.cpp.

template<typename Float >
void su3Construct8 ( Float *  mat)
inline

Definition at line 255 of file test_util.cpp.

void usage ( char **  argv)

Definition at line 1584 of file test_util.cpp.

int x4_from_full_index ( int  i)

Definition at line 661 of file test_util.cpp.

Variable Documentation

Definition at line 1558 of file test_util.cpp.

int device = 0

Definition at line 1546 of file test_util.cpp.

Definition at line 1560 of file test_util.cpp.

int E[4]

Definition at line 37 of file test_util.cpp.

int E1

Definition at line 36 of file test_util.cpp.

int E1h

Definition at line 36 of file test_util.cpp.

int E2

Definition at line 36 of file test_util.cpp.

int E3

Definition at line 36 of file test_util.cpp.

int E4

Definition at line 36 of file test_util.cpp.

int faceVolume[4]

Definition at line 33 of file test_util.cpp.

float fat_link_max
int gridsize_from_cmdline[4] = {1,1,1,1}

Definition at line 1559 of file test_util.cpp.

QudaInverterType inv_type

Definition at line 1565 of file test_util.cpp.

bool kernel_pack_t = false

Definition at line 1571 of file test_util.cpp.

char latfile[256] = ""

Definition at line 1561 of file test_util.cpp.

Definition at line 1549 of file test_util.cpp.

Definition at line 1550 of file test_util.cpp.

int Ls

Definition at line 40 of file test_util.cpp.

int Lsdim = 16

Definition at line 1557 of file test_util.cpp.

double mass = 0.1

Definition at line 1569 of file test_util.cpp.

Definition at line 1573 of file test_util.cpp.

int multishift = 0

Definition at line 1567 of file test_util.cpp.

int mySpinorSiteSize

Definition at line 44 of file test_util.cpp.

int niter = 10

Definition at line 1563 of file test_util.cpp.

Definition at line 1572 of file test_util.cpp.

Definition at line 1551 of file test_util.cpp.

Definition at line 1552 of file test_util.cpp.

Definition at line 1566 of file test_util.cpp.

int tdim = 24

Definition at line 1556 of file test_util.cpp.

int test_type = 0

Definition at line 1564 of file test_util.cpp.

bool tune = true

Definition at line 1562 of file test_util.cpp.

Definition at line 1570 of file test_util.cpp.

int V

Definition at line 29 of file test_util.cpp.

int V5

Definition at line 41 of file test_util.cpp.

int V5h

Definition at line 42 of file test_util.cpp.

int V_ex

Definition at line 38 of file test_util.cpp.

bool verify_results = true

Definition at line 1568 of file test_util.cpp.

int Vh

Definition at line 30 of file test_util.cpp.

int Vh_ex

Definition at line 38 of file test_util.cpp.

int Vs_t

Definition at line 31 of file test_util.cpp.

int Vs_x

Definition at line 31 of file test_util.cpp.

int Vs_y

Definition at line 31 of file test_util.cpp.

int Vs_z

Definition at line 31 of file test_util.cpp.

int Vsh_t

Definition at line 32 of file test_util.cpp.

int Vsh_x

Definition at line 32 of file test_util.cpp.

int Vsh_y

Definition at line 32 of file test_util.cpp.

int Vsh_z

Definition at line 32 of file test_util.cpp.

int xdim = 24

Definition at line 1553 of file test_util.cpp.

int ydim = 24

Definition at line 1554 of file test_util.cpp.

int Z[4]

Definition at line 28 of file test_util.cpp.

int zdim = 24

Definition at line 1555 of file test_util.cpp.