QUDA  v0.5.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 i, int oddBit)
 
int neighborIndex (int i, int oddBit, int dx4, int dx3, int dx2, int dx1)
 
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_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 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)
 
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_12
 
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
 

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 1475 of file test_util.cpp.

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

Definition at line 229 of file test_util.cpp.

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

Definition at line 222 of file test_util.cpp.

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

Definition at line 235 of file test_util.cpp.

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

Definition at line 666 of file test_util.cpp.

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

Definition at line 1057 of file test_util.cpp.

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

Definition at line 393 of file test_util.cpp.

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

Definition at line 1355 of file test_util.cpp.

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

Definition at line 1197 of file test_util.cpp.

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

Definition at line 194 of file test_util.cpp.

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

Definition at line 208 of file test_util.cpp.

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

Definition at line 215 of file test_util.cpp.

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

Definition at line 201 of file test_util.cpp.

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

Definition at line 1004 of file test_util.cpp.

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

Definition at line 961 of file test_util.cpp.

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

Definition at line 946 of file test_util.cpp.

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

Definition at line 887 of file test_util.cpp.

void createHwCPU ( void *  hw,
QudaPrecision  precision 
)

Definition at line 1330 of file test_util.cpp.

void createMomCPU ( void *  mom,
QudaPrecision  precision 
)

Definition at line 1292 of file test_util.cpp.

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

Definition at line 1067 of file test_util.cpp.

int dimPartitioned ( int  dim)

Definition at line 1469 of file test_util.cpp.

void dw_setDims ( int *  X,
const int  L5 
)

Definition at line 123 of file test_util.cpp.

void finalizeComms ( )

Definition at line 62 of file test_util.cpp.

int fullLatticeIndex ( int  i,
int  oddBit 
)

Definition at line 402 of file test_util.cpp.

int fullLatticeIndex_4d ( int  i,
int  oddBit 
)

Definition at line 564 of file test_util.cpp.

int fullLatticeIndex_5d ( int  i,
int  oddBit 
)

Definition at line 598 of file test_util.cpp.

int getOddBit ( int  Y)

Definition at line 184 of file test_util.cpp.

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

Definition at line 49 of file test_util.cpp.

void initRand ( )

Definition at line 72 of file test_util.cpp.

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

Definition at line 439 of file test_util.cpp.

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

Definition at line 457 of file test_util.cpp.

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

Definition at line 493 of file test_util.cpp.

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

Definition at line 517 of file test_util.cpp.

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

Definition at line 168 of file test_util.cpp.

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

Definition at line 160 of file test_util.cpp.

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

Definition at line 1519 of file test_util.cpp.

void setDims ( int *  X)

Definition at line 86 of file test_util.cpp.

void setSpinorSiteSize ( int  n)

Definition at line 148 of file test_util.cpp.

double stopwatchReadSeconds ( )

Definition at line 1845 of file test_util.cpp.

void stopwatchStart ( )

Definition at line 1841 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 1266 of file test_util.cpp.

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

Definition at line 1403 of file test_util.cpp.

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

Definition at line 259 of file test_util.cpp.

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

Definition at line 349 of file test_util.cpp.

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

Definition at line 241 of file test_util.cpp.

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

Definition at line 253 of file test_util.cpp.

void usage ( char **  argv)

Definition at line 1477 of file test_util.cpp.

int x4_from_full_index ( int  i)

Definition at line 604 of file test_util.cpp.

Variable Documentation

Definition at line 1459 of file test_util.cpp.

int device = 0

Definition at line 1447 of file test_util.cpp.

Definition at line 1461 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 1460 of file test_util.cpp.

char latfile[256] = ""

Definition at line 1462 of file test_util.cpp.

Definition at line 1450 of file test_util.cpp.

Definition at line 1451 of file test_util.cpp.

int Ls

Definition at line 40 of file test_util.cpp.

int Lsdim = 16

Definition at line 1458 of file test_util.cpp.

int mySpinorSiteSize

Definition at line 44 of file test_util.cpp.

int niter = 10

Definition at line 1464 of file test_util.cpp.

Definition at line 1452 of file test_util.cpp.

Definition at line 1453 of file test_util.cpp.

int tdim = 24

Definition at line 1457 of file test_util.cpp.

int test_type = 0

Definition at line 1465 of file test_util.cpp.

bool tune = true

Definition at line 1463 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.

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 1454 of file test_util.cpp.

int ydim = 24

Definition at line 1455 of file test_util.cpp.

int Z[4]

Definition at line 28 of file test_util.cpp.

int zdim = 24

Definition at line 1456 of file test_util.cpp.