QUDA v0.4.0
A library for QCD on GPUs
Defines
quda/lib/force_common.h File Reference

Go to the source code of this file.

Defines

#define XUP   0
#define YUP   1
#define ZUP   2
#define TUP   3
#define TDOWN   4
#define ZDOWN   5
#define YDOWN   6
#define XDOWN   7
#define OPP_DIR(dir)   (7-(dir))
#define GOES_FORWARDS(dir)   (dir<=3)
#define GOES_BACKWARDS(dir)   (dir>3)
#define linkaT00_re   (+linka00_re)
#define linkaT00_im   (-linka00_im)
#define linkaT01_re   (+linka10_re)
#define linkaT01_im   (-linka10_im)
#define linkaT02_re   (+linka20_re)
#define linkaT02_im   (-linka20_im)
#define linkaT10_re   (+linka01_re)
#define linkaT10_im   (-linka01_im)
#define linkaT11_re   (+linka11_re)
#define linkaT11_im   (-linka11_im)
#define linkaT12_re   (+linka21_re)
#define linkaT12_im   (-linka21_im)
#define linkaT20_re   (+linka02_re)
#define linkaT20_im   (-linka02_im)
#define linkaT21_re   (+linka12_re)
#define linkaT21_im   (-linka12_im)
#define linkaT22_re   (+linka22_re)
#define linkaT22_im   (-linka22_im)
#define linkbT00_re   (+linkb00_re)
#define linkbT00_im   (-linkb00_im)
#define linkbT01_re   (+linkb10_re)
#define linkbT01_im   (-linkb10_im)
#define linkbT02_re   (+linkb20_re)
#define linkbT02_im   (-linkb20_im)
#define linkbT10_re   (+linkb01_re)
#define linkbT10_im   (-linkb01_im)
#define linkbT11_re   (+linkb11_re)
#define linkbT11_im   (-linkb11_im)
#define linkbT12_re   (+linkb21_re)
#define linkbT12_im   (-linkb21_im)
#define linkbT20_re   (+linkb02_re)
#define linkbT20_im   (-linkb02_im)
#define linkbT21_re   (+linkb12_re)
#define linkbT21_im   (-linkb12_im)
#define linkbT22_re   (+linkb22_re)
#define linkbT22_im   (-linkb22_im)
#define linkc00_re   LINKC0.x
#define linkc00_im   LINKC0.y
#define linkc01_re   LINKC0.z
#define linkc01_im   LINKC0.w
#define linkc02_re   LINKC1.x
#define linkc02_im   LINKC1.y
#define linkc10_re   LINKC1.z
#define linkc10_im   LINKC1.w
#define linkc11_re   LINKC2.x
#define linkc11_im   LINKC2.y
#define linkc12_re   LINKC2.z
#define linkc12_im   LINKC2.w
#define linkc20_re   LINKC3.x
#define linkc20_im   LINKC3.y
#define linkc21_re   LINKC3.z
#define linkc21_im   LINKC3.w
#define linkc22_re   LINKC4.x
#define linkc22_im   LINKC4.y
#define linkcT00_re   (+linkc00_re)
#define linkcT00_im   (-linkc00_im)
#define linkcT01_re   (+linkc10_re)
#define linkcT01_im   (-linkc10_im)
#define linkcT02_re   (+linkc20_re)
#define linkcT02_im   (-linkc20_im)
#define linkcT10_re   (+linkc01_re)
#define linkcT10_im   (-linkc01_im)
#define linkcT11_re   (+linkc11_re)
#define linkcT11_im   (-linkc11_im)
#define linkcT12_re   (+linkc21_re)
#define linkcT12_im   (-linkc21_im)
#define linkcT20_re   (+linkc02_re)
#define linkcT20_im   (-linkc02_im)
#define linkcT21_re   (+linkc12_re)
#define linkcT21_im   (-linkc12_im)
#define linkcT22_re   (+linkc22_re)
#define linkcT22_im   (-linkc22_im)
#define staple00_re   STAPLE0.x
#define staple00_im   STAPLE0.y
#define staple01_re   STAPLE1.x
#define staple01_im   STAPLE1.y
#define staple02_re   STAPLE2.x
#define staple02_im   STAPLE2.y
#define staple10_re   STAPLE3.x
#define staple10_im   STAPLE3.y
#define staple11_re   STAPLE4.x
#define staple11_im   STAPLE4.y
#define staple12_re   STAPLE5.x
#define staple12_im   STAPLE5.y
#define staple20_re   STAPLE6.x
#define staple20_im   STAPLE6.y
#define staple21_re   STAPLE7.x
#define staple21_im   STAPLE7.y
#define staple22_re   STAPLE8.x
#define staple22_im   STAPLE8.y
#define stapleT00_re   (+staple00_re)
#define stapleT00_im   (-staple00_im)
#define stapleT01_re   (+staple10_re)
#define stapleT01_im   (-staple10_im)
#define stapleT02_re   (+staple20_re)
#define stapleT02_im   (-staple20_im)
#define stapleT10_re   (+staple01_re)
#define stapleT10_im   (-staple01_im)
#define stapleT11_re   (+staple11_re)
#define stapleT11_im   (-staple11_im)
#define stapleT12_re   (+staple21_re)
#define stapleT12_im   (-staple21_im)
#define stapleT20_re   (+staple02_re)
#define stapleT20_im   (-staple02_im)
#define stapleT21_re   (+staple12_re)
#define stapleT21_im   (-staple12_im)
#define stapleT22_re   (+staple22_re)
#define stapleT22_im   (-staple22_im)
#define READ_DOUBLE2_TEXTURE(x_tex, x, i)   fetch_double2(x_tex, i)
#define LOAD_MATRIX_12_SINGLE(gauge, dir, idx, var, stride)
#define LOAD_MATRIX_12_SINGLE_TEX(gauge, dir, idx, var, stride)
#define LOAD_MATRIX_12_DOUBLE(gauge, dir, idx, var, stride)
#define LOAD_MATRIX_12_DOUBLE_TEX(gauge_tex, gauge, dir, idx, var, stride)
#define LOAD_MATRIX_18(gauge, dir, idx, var, stride)
#define LOAD_MATRIX_18_SINGLE_TEX(gauge, dir, idx, var, stride)
#define LOAD_MATRIX_18_DOUBLE_TEX(gauge_tex, gauge, dir, idx, var, stride)
#define MULT_SU3_NN(ma, mb, mc)
#define MULT_SU3_NA(ma, mb, mc)
#define MULT_SU3_AN(ma, mb, mc)
#define SET_SU3_MATRIX(a, value)
#define SCALAR_MULT_ADD_SU3_MATRIX(ma, mb, s, mc)
#define SCALAR_MULT_SUB_SU3_MATRIX(ma, mb, s, mc)
#define ah01_re   AH0.x
#define ah01_im   AH0.y
#define ah02_re   AH1.x
#define ah02_im   AH1.y
#define ah12_re   AH2.x
#define ah12_im   AH2.y
#define ah00_im   AH3.x
#define ah11_im   AH3.y
#define ah22_im   AH4.x
#define ahspace   AH4.y
#define UNCOMPRESS_ANTI_HERMITIAN(ah, m)
#define MAKE_ANTI_HERMITIAN(m, ah)
#define LOAD_ANTI_HERMITIAN_DIRECT(src, dir, idx, var, stride)
#define LOAD_ANTI_HERMITIAN_SINGLE_TEX(src, dir, idx, var)
#define WRITE_ANTI_HERMITIAN(mem, dir, idx, var, stride)
#define COPY_SU3_MATRIX(a, b)
#define SU3_ADJOINT(a, b)
#define SET_UNIT_SU3_MATRIX(a)
#define ACC_CONJ_PROD_ASSIGN(a, b, c)
#define RECONSTRUCT_LINK_12(sign, var)
#define COMPUTE_NEW_IDX_PLUS(mydir, idx)
#define COMPUTE_NEW_IDX_MINUS(mydir, idx)
#define COMPUTE_NEW_FULL_IDX_PLUS(mydir, idx)
#define COMPUTE_NEW_FULL_IDX_MINUS(mydir, idx)

Define Documentation

#define ACC_CONJ_PROD_ASSIGN (   a,
  b,
 
)
Value:
a##_re = b##_re * c##_re;                       \
  a##_re -= b##_im * c##_im;                    \
  a##_im = - b##_re * c##_im;                   \
  a##_im -= b##_im * c##_re

Definition at line 635 of file force_common.h.

#define ah00_im   AH3.x

Definition at line 505 of file force_common.h.

#define ah01_im   AH0.y

Definition at line 500 of file force_common.h.

#define ah01_re   AH0.x

Definition at line 499 of file force_common.h.

#define ah02_im   AH1.y

Definition at line 502 of file force_common.h.

#define ah02_re   AH1.x

Definition at line 501 of file force_common.h.

#define ah11_im   AH3.y

Definition at line 506 of file force_common.h.

#define ah12_im   AH2.y

Definition at line 504 of file force_common.h.

#define ah12_re   AH2.x

Definition at line 503 of file force_common.h.

#define ah22_im   AH4.x

Definition at line 507 of file force_common.h.

#define ahspace   AH4.y

Definition at line 508 of file force_common.h.

#define COMPUTE_NEW_FULL_IDX_MINUS (   mydir,
  idx 
)
Value:
do {                    \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (x1==0)?idx+X1m1:X-1);                      \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (x2==0)?idx+X2X1mX1:X-X1);                  \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (x3==0)?idx+X3X2X1mX2X1:X-X2X1);            \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (x4==0)?idx+X4X3X2X1mX3X2X1:X-X3X2X1);      \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 704 of file force_common.h.

#define COMPUTE_NEW_FULL_IDX_PLUS (   mydir,
  idx 
)
Value:
do {                    \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (x1==X1m1)?idx-X1m1:idx+1);                 \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (x2==X2m1)?idx-X2X1mX1:idx+X1);             \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (x3==X3m1)?idx-X3X2X1mX2X1:idx+X2X1);       \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (x4==X4m1)?idx-X4X3X2X1mX3X2X1:idx+X3X2X1); \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 687 of file force_common.h.

#define COMPUTE_NEW_IDX_MINUS (   mydir,
  idx 
)
Value:
do {                            \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (x1==0)?idx+X1m1:X-1);                      \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (x2==0)?idx+X2X1mX1:X-X1);                  \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (x3==0)?idx+X3X2X1mX2X1:X-X2X1);            \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (x4==0)?idx+X4X3X2X1mX3X2X1:X-X3X2X1);      \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 669 of file force_common.h.

#define COMPUTE_NEW_IDX_PLUS (   mydir,
  idx 
)
Value:
do {                            \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_mem_idx = ( (x1==X1m1)?idx-X1m1:idx+1)>> 1;             \
            break;                                                      \
        case 1:                                                         \
            new_mem_idx = ( (x2==X2m1)?idx-X2X1mX1:idx+X1) >> 1;        \
            break;                                                      \
        case 2:                                                         \
            new_mem_idx = ( (x3==X3m1)?idx-X3X2X1mX2X1:idx+X2X1) >> 1;  \
            break;                                                      \
        case 3:                                                         \
            new_mem_idx = ( (x4==X4m1)?idx-X4X3X2X1mX3X2X1:idx+X3X2X1) >> 1; \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 652 of file force_common.h.

#define COPY_SU3_MATRIX (   a,
 
)
Value:
b##00_re = a##00_re;            \
    b##00_im = a##00_im;                \
    b##01_re = a##01_re;                \
    b##01_im = a##01_im;                \
    b##02_re = a##02_re;                \
    b##02_im = a##02_im;                \
    b##10_re = a##10_re;                \
    b##10_im = a##10_im;                \
    b##11_re = a##11_re;                \
    b##11_im = a##11_im;                \
    b##12_re = a##12_re;                \
    b##12_im = a##12_im;                \
    b##20_re = a##20_re;                \
    b##20_im = a##20_im;                \
    b##21_re = a##21_re;                \
    b##21_im = a##21_im;                \
    b##22_re = a##22_re;                \
    b##22_im = a##22_im;

Definition at line 574 of file force_common.h.

#define GOES_BACKWARDS (   dir)    (dir>3)

Definition at line 15 of file force_common.h.

#define GOES_FORWARDS (   dir)    (dir<=3)

Definition at line 14 of file force_common.h.

#define linkaT00_im   (-linka00_im)

Definition at line 19 of file force_common.h.

#define linkaT00_re   (+linka00_re)

Definition at line 18 of file force_common.h.

#define linkaT01_im   (-linka10_im)

Definition at line 21 of file force_common.h.

#define linkaT01_re   (+linka10_re)

Definition at line 20 of file force_common.h.

#define linkaT02_im   (-linka20_im)

Definition at line 23 of file force_common.h.

#define linkaT02_re   (+linka20_re)

Definition at line 22 of file force_common.h.

#define linkaT10_im   (-linka01_im)

Definition at line 25 of file force_common.h.

#define linkaT10_re   (+linka01_re)

Definition at line 24 of file force_common.h.

#define linkaT11_im   (-linka11_im)

Definition at line 27 of file force_common.h.

#define linkaT11_re   (+linka11_re)

Definition at line 26 of file force_common.h.

#define linkaT12_im   (-linka21_im)

Definition at line 29 of file force_common.h.

#define linkaT12_re   (+linka21_re)

Definition at line 28 of file force_common.h.

#define linkaT20_im   (-linka02_im)

Definition at line 31 of file force_common.h.

#define linkaT20_re   (+linka02_re)

Definition at line 30 of file force_common.h.

#define linkaT21_im   (-linka12_im)

Definition at line 33 of file force_common.h.

#define linkaT21_re   (+linka12_re)

Definition at line 32 of file force_common.h.

#define linkaT22_im   (-linka22_im)

Definition at line 35 of file force_common.h.

#define linkaT22_re   (+linka22_re)

Definition at line 34 of file force_common.h.

#define linkbT00_im   (-linkb00_im)

Definition at line 39 of file force_common.h.

#define linkbT00_re   (+linkb00_re)

Definition at line 38 of file force_common.h.

#define linkbT01_im   (-linkb10_im)

Definition at line 41 of file force_common.h.

#define linkbT01_re   (+linkb10_re)

Definition at line 40 of file force_common.h.

#define linkbT02_im   (-linkb20_im)

Definition at line 43 of file force_common.h.

#define linkbT02_re   (+linkb20_re)

Definition at line 42 of file force_common.h.

#define linkbT10_im   (-linkb01_im)

Definition at line 45 of file force_common.h.

#define linkbT10_re   (+linkb01_re)

Definition at line 44 of file force_common.h.

#define linkbT11_im   (-linkb11_im)

Definition at line 47 of file force_common.h.

#define linkbT11_re   (+linkb11_re)

Definition at line 46 of file force_common.h.

#define linkbT12_im   (-linkb21_im)

Definition at line 49 of file force_common.h.

#define linkbT12_re   (+linkb21_re)

Definition at line 48 of file force_common.h.

#define linkbT20_im   (-linkb02_im)

Definition at line 51 of file force_common.h.

#define linkbT20_re   (+linkb02_re)

Definition at line 50 of file force_common.h.

#define linkbT21_im   (-linkb12_im)

Definition at line 53 of file force_common.h.

#define linkbT21_re   (+linkb12_re)

Definition at line 52 of file force_common.h.

#define linkbT22_im   (-linkb22_im)

Definition at line 55 of file force_common.h.

#define linkbT22_re   (+linkb22_re)

Definition at line 54 of file force_common.h.

#define linkc00_im   LINKC0.y

Definition at line 61 of file force_common.h.

#define linkc00_re   LINKC0.x

Definition at line 60 of file force_common.h.

#define linkc01_im   LINKC0.w

Definition at line 63 of file force_common.h.

#define linkc01_re   LINKC0.z

Definition at line 62 of file force_common.h.

#define linkc02_im   LINKC1.y

Definition at line 65 of file force_common.h.

#define linkc02_re   LINKC1.x

Definition at line 64 of file force_common.h.

#define linkc10_im   LINKC1.w

Definition at line 67 of file force_common.h.

#define linkc10_re   LINKC1.z

Definition at line 66 of file force_common.h.

#define linkc11_im   LINKC2.y

Definition at line 69 of file force_common.h.

#define linkc11_re   LINKC2.x

Definition at line 68 of file force_common.h.

#define linkc12_im   LINKC2.w

Definition at line 71 of file force_common.h.

#define linkc12_re   LINKC2.z

Definition at line 70 of file force_common.h.

#define linkc20_im   LINKC3.y

Definition at line 73 of file force_common.h.

#define linkc20_re   LINKC3.x

Definition at line 72 of file force_common.h.

#define linkc21_im   LINKC3.w

Definition at line 75 of file force_common.h.

#define linkc21_re   LINKC3.z

Definition at line 74 of file force_common.h.

#define linkc22_im   LINKC4.y

Definition at line 77 of file force_common.h.

#define linkc22_re   LINKC4.x

Definition at line 76 of file force_common.h.

#define linkcT00_im   (-linkc00_im)

Definition at line 80 of file force_common.h.

#define linkcT00_re   (+linkc00_re)

Definition at line 79 of file force_common.h.

#define linkcT01_im   (-linkc10_im)

Definition at line 82 of file force_common.h.

#define linkcT01_re   (+linkc10_re)

Definition at line 81 of file force_common.h.

#define linkcT02_im   (-linkc20_im)

Definition at line 84 of file force_common.h.

#define linkcT02_re   (+linkc20_re)

Definition at line 83 of file force_common.h.

#define linkcT10_im   (-linkc01_im)

Definition at line 86 of file force_common.h.

#define linkcT10_re   (+linkc01_re)

Definition at line 85 of file force_common.h.

#define linkcT11_im   (-linkc11_im)

Definition at line 88 of file force_common.h.

#define linkcT11_re   (+linkc11_re)

Definition at line 87 of file force_common.h.

#define linkcT12_im   (-linkc21_im)

Definition at line 90 of file force_common.h.

#define linkcT12_re   (+linkc21_re)

Definition at line 89 of file force_common.h.

#define linkcT20_im   (-linkc02_im)

Definition at line 92 of file force_common.h.

#define linkcT20_re   (+linkc02_re)

Definition at line 91 of file force_common.h.

#define linkcT21_im   (-linkc12_im)

Definition at line 94 of file force_common.h.

#define linkcT21_re   (+linkc12_re)

Definition at line 93 of file force_common.h.

#define linkcT22_im   (-linkc22_im)

Definition at line 96 of file force_common.h.

#define linkcT22_re   (+linkc22_re)

Definition at line 95 of file force_common.h.

#define LOAD_ANTI_HERMITIAN_DIRECT (   src,
  dir,
  idx,
  var,
  stride 
)
Value:
do{     \
    int start_pos = idx + dir*stride*5;                                 \
    var##0 = src[start_pos];                                            \
    var##1 = src[start_pos + stride];                                   \
    var##2 = src[start_pos + stride*2];                                 \
    var##3 = src[start_pos + stride*3];                                 \
    var##4 = src[start_pos + stride*4];                                 \
  }while(0)

Definition at line 547 of file force_common.h.

#define LOAD_ANTI_HERMITIAN_SINGLE_TEX (   src,
  dir,
  idx,
  var 
)
Value:
do{             \
    int start_pos = idx + dir*Vh*5;                                     \
    var##0 = tex1Dfetch(src, start_pos);                                \
    var##1 = tex1Dfetch(src, start_pos + Vh);                           \
    var##2 = tex1Dfetch(src, start_pos + Vh*2);                         \
    var##3 = tex1Dfetch(src, start_pos + Vh*3);                         \
    var##4 = tex1Dfetch(src, start_pos + Vh*4);                         \
  }while(0)

Definition at line 556 of file force_common.h.

#define LOAD_MATRIX_12_DOUBLE (   gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{             \
    var##0 = gauge[idx + dir*stride*6];                                 \
    var##1 = gauge[idx + dir*stride*6 + stride];                        \
    var##2 = gauge[idx + dir*stride*6 + stride*2];                      \
    var##3 = gauge[idx + dir*stride*6 + stride*3];                      \
    var##4 = gauge[idx + dir*stride*6 + stride*4];                      \
    var##5 = gauge[idx + dir*stride*6 + stride*5];                      \
  }while(0)

Definition at line 158 of file force_common.h.

#define LOAD_MATRIX_12_DOUBLE_TEX (   gauge_tex,
  gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{ \
    var##0 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6); \
    var##1 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6 + stride); \
    var##2 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6 + stride*2); \
    var##3 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6 + stride*3); \
    var##4 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6 + stride*4); \
    var##5 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*6 + stride*5); \
  }while(0)

Definition at line 167 of file force_common.h.

#define LOAD_MATRIX_12_SINGLE (   gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{             \
    var##0 = gauge[idx + dir*stride*3];                                 \
    var##1 = gauge[idx + dir*stride*3 + stride];                        \
    var##2 = gauge[idx + dir*stride*3 + stride*2];                      \
  }while(0)

Definition at line 146 of file force_common.h.

#define LOAD_MATRIX_12_SINGLE_TEX (   gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{     \
    var##0 = tex1Dfetch(gauge, idx + dir*stride*3);                     \
    var##1 = tex1Dfetch(gauge, idx + dir*stride*3 + stride);            \
    var##2 = tex1Dfetch(gauge, idx + dir*stride*3 + stride*2);          \
  }while(0)

Definition at line 152 of file force_common.h.

#define LOAD_MATRIX_18 (   gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{                     \
    var##0 = gauge[idx + dir*stride*9];                                 \
    var##1 = gauge[idx + dir*stride*9 + stride];                        \
    var##2 = gauge[idx + dir*stride*9 + stride*2];                      \
    var##3 = gauge[idx + dir*stride*9 + stride*3];                      \
    var##4 = gauge[idx + dir*stride*9 + stride*4];                      \
    var##5 = gauge[idx + dir*stride*9 + stride*5];                      \
    var##6 = gauge[idx + dir*stride*9 + stride*6];                      \
    var##7 = gauge[idx + dir*stride*9 + stride*7];                      \
    var##8 = gauge[idx + dir*stride*9 + stride*8];                      \
  }while(0)

Definition at line 176 of file force_common.h.

#define LOAD_MATRIX_18_DOUBLE_TEX (   gauge_tex,
  gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{ \
    var##0 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9); \
    var##1 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride); \
    var##2 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*2); \
    var##3 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*3); \
    var##4 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*4); \
    var##5 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*5); \
    var##6 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*6); \
    var##7 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*7); \
    var##8 = READ_DOUBLE2_TEXTURE(gauge_tex, gauge, idx + dir*stride*9 + stride*8); \
  }while(0)

Definition at line 200 of file force_common.h.

#define LOAD_MATRIX_18_SINGLE_TEX (   gauge,
  dir,
  idx,
  var,
  stride 
)
Value:
do{     \
    var##0 = tex1Dfetch(gauge, idx + dir*stride*9);                     \
    var##1 = tex1Dfetch(gauge, idx + dir*stride*9 + stride);            \
    var##2 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*2);          \
    var##3 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*3);          \
    var##4 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*4);          \
    var##5 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*5);          \
    var##6 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*6);          \
    var##7 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*7);          \
    var##8 = tex1Dfetch(gauge, idx + dir*stride*9 + stride*8);          \
  }while(0)

Definition at line 188 of file force_common.h.

#define MAKE_ANTI_HERMITIAN (   m,
  ah 
)
Value:
do {                                    \
        typeof(ah##space) temp;                                         \
        temp = (m##00_im + m##11_im + m##22_im)*0.33333333333333333;    \
        ah##00_im  = (m##00_im - temp);                                 \
        ah##11_im  = (m##11_im - temp);                                 \
        ah##22_im  = (m##22_im - temp);                                 \
        ah##01_re = (m##01_re - m##10_re)*0.5;                          \
        ah##02_re = (m##02_re - m##20_re)*0.5;                          \
        ah##12_re = (m##12_re - m##21_re)*0.5;                          \
        ah##01_im = (m##01_im + m##10_im)*0.5;                          \
        ah##02_im = (m##02_im + m##20_im)*0.5;                          \
        ah##12_im = (m##12_im + m##21_im)*0.5;                          \
        ah##space = 0;                                                  \
    }while(0)

Definition at line 531 of file force_common.h.

#define MULT_SU3_AN (   ma,
  mb,
  mc 
)

Definition at line 364 of file force_common.h.

#define MULT_SU3_NA (   ma,
  mb,
  mc 
)

Definition at line 288 of file force_common.h.

#define MULT_SU3_NN (   ma,
  mb,
  mc 
)

Definition at line 212 of file force_common.h.

#define OPP_DIR (   dir)    (7-(dir))

Definition at line 13 of file force_common.h.

#define READ_DOUBLE2_TEXTURE (   x_tex,
  x,
 
)    fetch_double2(x_tex, i)

Definition at line 142 of file force_common.h.

#define RECONSTRUCT_LINK_12 (   sign,
  var 
)
Value:
ACC_CONJ_PROD_ASSIGN(var##20, +var##01, +var##12);                      \
    ACC_CONJ_PROD(var##20, -var##02, +var##11);                         \
    ACC_CONJ_PROD_ASSIGN(var##21, +var##02, +var##10);                  \
    ACC_CONJ_PROD(var##21, -var##00, +var##12);                         \
    ACC_CONJ_PROD_ASSIGN(var##22, +var##00, +var##11);                  \
    ACC_CONJ_PROD(var##22, -var##01, +var##10);                         \
    var##20_re *=sign;var##20_im *=sign; var##21_re *=sign; var##21_im *=sign; \
    var##22_re *=sign;var##22_im *=sign;

Definition at line 642 of file force_common.h.

#define SCALAR_MULT_ADD_SU3_MATRIX (   ma,
  mb,
  s,
  mc 
)
Value:
mc##00_re = ma##00_re + mb##00_re * s;          \
    mc##00_im = ma##00_im + mb##00_im * s;              \
    mc##01_re = ma##01_re + mb##01_re * s;              \
    mc##01_im = ma##01_im + mb##01_im * s;              \
    mc##02_re = ma##02_re + mb##02_re * s;              \
    mc##02_im = ma##02_im + mb##02_im * s;              \
    mc##10_re = ma##10_re + mb##10_re * s;              \
    mc##10_im = ma##10_im + mb##10_im * s;              \
    mc##11_re = ma##11_re + mb##11_re * s;              \
    mc##11_im = ma##11_im + mb##11_im * s;              \
    mc##12_re = ma##12_re + mb##12_re * s;              \
    mc##12_im = ma##12_im + mb##12_im * s;              \
    mc##20_re = ma##20_re + mb##20_re * s;              \
    mc##20_im = ma##20_im + mb##20_im * s;              \
    mc##21_re = ma##21_re + mb##21_re * s;              \
    mc##21_im = ma##21_im + mb##21_im * s;              \
    mc##22_re = ma##22_re + mb##22_re * s;              \
    mc##22_im = ma##22_im + mb##22_im * s;

Definition at line 458 of file force_common.h.

#define SCALAR_MULT_SUB_SU3_MATRIX (   ma,
  mb,
  s,
  mc 
)
Value:
mc##00_re = ma##00_re - mb##00_re * s;          \
    mc##00_im = ma##00_im - mb##00_im * s;              \
    mc##01_re = ma##01_re - mb##01_re * s;              \
    mc##01_im = ma##01_im - mb##01_im * s;              \
    mc##02_re = ma##02_re - mb##02_re * s;              \
    mc##02_im = ma##02_im - mb##02_im * s;              \
    mc##10_re = ma##10_re - mb##10_re * s;              \
    mc##10_im = ma##10_im - mb##10_im * s;              \
    mc##11_re = ma##11_re - mb##11_re * s;              \
    mc##11_im = ma##11_im - mb##11_im * s;              \
    mc##12_re = ma##12_re - mb##12_re * s;              \
    mc##12_im = ma##12_im - mb##12_im * s;              \
    mc##20_re = ma##20_re - mb##20_re * s;              \
    mc##20_im = ma##20_im - mb##20_im * s;              \
    mc##21_re = ma##21_re - mb##21_re * s;              \
    mc##21_im = ma##21_im - mb##21_im * s;              \
    mc##22_re = ma##22_re - mb##22_re * s;              \
    mc##22_im = ma##22_im - mb##22_im * s;

Definition at line 478 of file force_common.h.

#define SET_SU3_MATRIX (   a,
  value 
)
Value:
a##00_re = value;                               \
    a##00_im = value;                           \
    a##01_re = value;                           \
    a##01_im = value;                           \
    a##02_re = value;                           \
    a##02_im = value;                           \
    a##10_re = value;                           \
    a##10_im = value;                           \
    a##11_re = value;                           \
    a##11_im = value;                           \
    a##12_re = value;                           \
    a##12_im = value;                           \
    a##20_re = value;                           \
    a##20_im = value;                           \
    a##21_re = value;                           \
    a##21_im = value;                           \
    a##22_re = value;                           \
    a##22_im = value;                           \

Definition at line 438 of file force_common.h.

#define SET_UNIT_SU3_MATRIX (   a)
Value:
a##00_re = 1.0;                         \
    a##00_im = 0;                               \
    a##01_re = 0;                               \
    a##01_im = 0;                               \
    a##02_re = 0;                               \
    a##02_im = 0;                               \
    a##10_re = 0;                               \
    a##10_im = 0;                               \
    a##11_re = 1.0;                             \
    a##11_im = 0;                               \
    a##12_re = 0;                               \
    a##12_im = 0;                               \
    a##20_re = 0;                               \
    a##20_im = 0;                               \
    a##21_re = 0;                               \
    a##21_im = 0;                               \
    a##22_re = 1.0;                             \
    a##22_im = 0;

Definition at line 614 of file force_common.h.

#define staple00_im   STAPLE0.y

Definition at line 100 of file force_common.h.

#define staple00_re   STAPLE0.x

Definition at line 99 of file force_common.h.

#define staple01_im   STAPLE1.y

Definition at line 102 of file force_common.h.

#define staple01_re   STAPLE1.x

Definition at line 101 of file force_common.h.

#define staple02_im   STAPLE2.y

Definition at line 104 of file force_common.h.

#define staple02_re   STAPLE2.x

Definition at line 103 of file force_common.h.

#define staple10_im   STAPLE3.y

Definition at line 106 of file force_common.h.

#define staple10_re   STAPLE3.x

Definition at line 105 of file force_common.h.

#define staple11_im   STAPLE4.y

Definition at line 108 of file force_common.h.

#define staple11_re   STAPLE4.x

Definition at line 107 of file force_common.h.

#define staple12_im   STAPLE5.y

Definition at line 110 of file force_common.h.

#define staple12_re   STAPLE5.x

Definition at line 109 of file force_common.h.

#define staple20_im   STAPLE6.y

Definition at line 112 of file force_common.h.

#define staple20_re   STAPLE6.x

Definition at line 111 of file force_common.h.

#define staple21_im   STAPLE7.y

Definition at line 114 of file force_common.h.

#define staple21_re   STAPLE7.x

Definition at line 113 of file force_common.h.

#define staple22_im   STAPLE8.y

Definition at line 116 of file force_common.h.

#define staple22_re   STAPLE8.x

Definition at line 115 of file force_common.h.

#define stapleT00_im   (-staple00_im)

Definition at line 119 of file force_common.h.

#define stapleT00_re   (+staple00_re)

Definition at line 118 of file force_common.h.

#define stapleT01_im   (-staple10_im)

Definition at line 121 of file force_common.h.

#define stapleT01_re   (+staple10_re)

Definition at line 120 of file force_common.h.

#define stapleT02_im   (-staple20_im)

Definition at line 123 of file force_common.h.

#define stapleT02_re   (+staple20_re)

Definition at line 122 of file force_common.h.

#define stapleT10_im   (-staple01_im)

Definition at line 125 of file force_common.h.

#define stapleT10_re   (+staple01_re)

Definition at line 124 of file force_common.h.

#define stapleT11_im   (-staple11_im)

Definition at line 127 of file force_common.h.

#define stapleT11_re   (+staple11_re)

Definition at line 126 of file force_common.h.

#define stapleT12_im   (-staple21_im)

Definition at line 129 of file force_common.h.

#define stapleT12_re   (+staple21_re)

Definition at line 128 of file force_common.h.

#define stapleT20_im   (-staple02_im)

Definition at line 131 of file force_common.h.

#define stapleT20_re   (+staple02_re)

Definition at line 130 of file force_common.h.

#define stapleT21_im   (-staple12_im)

Definition at line 133 of file force_common.h.

#define stapleT21_re   (+staple12_re)

Definition at line 132 of file force_common.h.

#define stapleT22_im   (-staple22_im)

Definition at line 135 of file force_common.h.

#define stapleT22_re   (+staple22_re)

Definition at line 134 of file force_common.h.

#define SU3_ADJOINT (   a,
 
)
Value:
b##00_re = a##00_re;            \
    b##00_im = - a##00_im;              \
    b##01_re = a##10_re;                \
    b##01_im = - a##10_im;              \
    b##02_re = a##20_re;                \
    b##02_im = - a##20_im;              \
    b##10_re = a##01_re;                \
    b##10_im = - a##01_im;              \
    b##11_re = a##11_re;                \
    b##11_im = - a##11_im;              \
    b##12_re = a##21_re;                \
    b##12_im = - a##21_im;              \
    b##20_re = a##02_re;                \
    b##20_im = - a##02_im;              \
    b##21_re = a##12_re;                \
    b##21_im = - a##12_im;              \
    b##22_re = a##22_re;                \
    b##22_im = - a##22_im;

Definition at line 594 of file force_common.h.

#define TDOWN   4

Definition at line 9 of file force_common.h.

#define TUP   3

Definition at line 8 of file force_common.h.

#define UNCOMPRESS_ANTI_HERMITIAN (   ah,
 
)
Value:
m##00_re = 0;                           \
    m##00_im = ah##00_im;                       \
    m##11_re = 0;                               \
    m##11_im = ah##11_im;                       \
    m##22_re = 0;                               \
    m##22_im = ah##22_im;                       \
    m##01_re = ah##01_re;                       \
    m##01_im = ah##01_im;                       \
    m##10_re = -ah##01_re;                      \
    m##10_im = ah##01_im;                       \
    m##02_re = ah##02_re;                       \
    m##02_im = ah##02_im;                       \
    m##20_re = -ah##02_re;                      \
    m##20_im = ah##02_im;                       \
    m##12_re = ah##12_re;                       \
    m##12_im = ah##12_im;                       \
    m##21_re = -ah##12_re;                      \
    m##21_im = ah##12_im;

Definition at line 510 of file force_common.h.

#define WRITE_ANTI_HERMITIAN (   mem,
  dir,
  idx,
  var,
  stride 
)
Value:
do{             \
    int start_ps = idx + dir*stride*5;                                  \
    mem[start_ps] = var##0;                                             \
    mem[start_ps + stride] = var##1;                                    \
    mem[start_ps + stride*2] = var##2;                                  \
    mem[start_ps + stride*3] = var##3;                                  \
    mem[start_ps + stride*4] = var##4;                                  \
  }while(0)

Definition at line 565 of file force_common.h.

#define XDOWN   7

Definition at line 12 of file force_common.h.

#define XUP   0

Definition at line 5 of file force_common.h.

#define YDOWN   6

Definition at line 11 of file force_common.h.

#define YUP   1

Definition at line 6 of file force_common.h.

#define ZDOWN   5

Definition at line 10 of file force_common.h.

#define ZUP   2

Definition at line 7 of file force_common.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines