QUDA v0.3.2
A library for QCD on GPUs
Defines | Functions

quda/lib/fermion_force_quda.cu File Reference

#include <read_gauge.h>
#include <gauge_quda.h>
#include "fermion_force_quda.h"
#include "force_common.h"
#include "hw_quda.h"

Go to the source code of this file.

Defines

#define LOAD_ANTI_HERMITIAN   LOAD_ANTI_HERMITIAN_SINGLE
#define LOAD_HW_SINGLE(hw, idx, var)
#define WRITE_HW_SINGLE(hw, idx, var)
#define LOAD_HW(hw, idx, var)   LOAD_HW_SINGLE(hw, idx, var)
#define WRITE_HW(hw, idx, var)   WRITE_HW_SINGLE(hw, idx, var)
#define LOAD_MATRIX(src, dir, idx, var)   LOAD_MATRIX_12_SINGLE(src, dir, idx, var)
#define FF_SITE_MATRIX_LOAD_TEX   1
#define linkEvenTex   siteLink0TexSingle
#define linkOddTex   siteLink1TexSingle
#define FF_LOAD_MATRIX(src, dir, idx, var)   LOAD_MATRIX_12_SINGLE_TEX(src##Tex, dir, idx, var)
#define MAT_MUL_HW(M, HW, HWOUT)
#define ADJ_MAT_MUL_HW(M, HW, HWOUT)
#define SU3_PROJECTOR(va, vb, m)
#define SCALAR_MULT_ADD_SU3_VECTOR(va, vb, s, vc)
#define FF_COMPUTE_NEW_FULL_IDX_PLUS_UPDATE(mydir, idx, new_idx)
#define FF_COMPUTE_NEW_FULL_IDX_MINUS_UPDATE(mydir, idx, new_idx)
#define FF_COMPUTE_NEW_FULL_IDX_PLUS(old_x1, old_x2, old_x3, old_x4, idx, mydir, new_idx)
#define FF_COMPUTE_NEW_FULL_IDX_MINUS(old_x1, old_x2, old_x3, old_x4, idx, mydir, new_idx)
#define ADD_FORCE_TO_MOM(hw1, hw2, mom, idx, dir, cf, oddness)
#define FF_COMPUTE_RECONSTRUCT_SIGN(sign, dir, i1, i2, i3, i4)
#define hwa00_re   HWA0.x
#define hwa00_im   HWA0.y
#define hwa01_re   HWA1.x
#define hwa01_im   HWA1.y
#define hwa02_re   HWA2.x
#define hwa02_im   HWA2.y
#define hwa10_re   HWA3.x
#define hwa10_im   HWA3.y
#define hwa11_re   HWA4.x
#define hwa11_im   HWA4.y
#define hwa12_re   HWA5.x
#define hwa12_im   HWA5.y
#define hwb00_re   HWB0.x
#define hwb00_im   HWB0.y
#define hwb01_re   HWB1.x
#define hwb01_im   HWB1.y
#define hwb02_re   HWB2.x
#define hwb02_im   HWB2.y
#define hwb10_re   HWB3.x
#define hwb10_im   HWB3.y
#define hwb11_re   HWB4.x
#define hwb11_im   HWB4.y
#define hwb12_re   HWB5.x
#define hwb12_im   HWB5.y
#define hwc00_re   HWC0.x
#define hwc00_im   HWC0.y
#define hwc01_re   HWC1.x
#define hwc01_im   HWC1.y
#define hwc02_re   HWC2.x
#define hwc02_im   HWC2.y
#define hwc10_re   HWC3.x
#define hwc10_im   HWC3.y
#define hwc11_re   HWC4.x
#define hwc11_im   HWC4.y
#define hwc12_re   HWC5.x
#define hwc12_im   HWC5.y
#define hwd00_re   HWD0.x
#define hwd00_im   HWD0.y
#define hwd01_re   HWD1.x
#define hwd01_im   HWD1.y
#define hwd02_re   HWD2.x
#define hwd02_im   HWD2.y
#define hwd10_re   HWD3.x
#define hwd10_im   HWD3.y
#define hwd11_re   HWD4.x
#define hwd11_im   HWD4.y
#define hwd12_re   HWD5.x
#define hwd12_im   HWD5.y
#define hwe00_re   HWE0.x
#define hwe00_im   HWE0.y
#define hwe01_re   HWE1.x
#define hwe01_im   HWE1.y
#define hwe02_re   HWE2.x
#define hwe02_im   HWE2.y
#define hwe10_re   HWE3.x
#define hwe10_im   HWE3.y
#define hwe11_re   HWE4.x
#define hwe11_im   HWE4.y
#define hwe12_re   HWE5.x
#define hwe12_im   HWE5.y
#define Pmu   tempvec[0]
#define Pnumu   tempvec[1]
#define Prhonumu   tempvec[2]
#define P7   tempvec[3]
#define P7rho   tempvec[4]
#define P7rhonu   tempvec[5]
#define P5   tempvec[6]
#define P3   tempvec[7]
#define P5nu   tempvec[3]
#define P3mu   tempvec[3]
#define Popmu   tempvec[4]
#define Pmumumu   tempvec[4]

Functions

void fermion_force_init_cuda (QudaGaugeParam *param)
template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_middle_link_kernel (float2 *tempxEven, float2 *tempxOdd, float2 *PmuEven, float2 *PmuOdd, float2 *P3Even, float2 *P3Odd, int sig, int mu, float2 coeff, float4 *linkEven, float4 *linkOdd, float2 *momEven, float2 *momOdd)
template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_side_link_kernel (float2 *P3Even, float2 *P3Odd, float2 *P3muEven, float2 *P3muOdd, float2 *TempxEven, float2 *TempxOdd, float2 *PmuEven, float2 *PmuOdd, float2 *shortPEven, float2 *shortPOdd, int sig, int mu, float2 coeff, float2 accumu_coeff, float4 *linkEven, float4 *linkOdd, float2 *momEven, float2 *momOdd)
template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_all_link_kernel (float2 *tempxEven, float2 *tempxOdd, float2 *PmuEven, float2 *PmuOdd, float2 *P3Even, float2 *P3Odd, float2 *P3muEven, float2 *P3muOdd, float2 *shortPEven, float2 *shortPOdd, int sig, int mu, float2 coeff, float2 mcoeff, float2 accumu_coeff, float4 *linkEven, float4 *linkOdd, float2 *momEven, float2 *momOdd)
__global__ void one_and_naik_terms_kernel (float2 *TempxEven, float2 *TempxOdd, float2 *PmuEven, float2 *PmuOdd, float2 *PnumuEven, float2 *PnumuOdd, int mu, float2 OneLink, float2 Naik, float2 mNaik, float4 *linkEven, float4 *linkOdd, float2 *momEven, float2 *momOdd)
void fermion_force_cuda (double eps, double weight1, double weight2, void *act_path_coeff, FullHw cudaHw, FullGauge cudaSiteLink, FullMom cudaMom, QudaGaugeParam *param)

Define Documentation

#define ADD_FORCE_TO_MOM (   hw1,
  hw2,
  mom,
  idx,
  dir,
  cf,
  oddness 
)
Value:
do{     \
        float2 my_coeff;                                                \
        int mydir;                                                      \
        if (GOES_BACKWARDS(dir)){                                       \
            mydir=OPP_DIR(dir);                                         \
            my_coeff.x = -cf.x;                                         \
            my_coeff.y = -cf.y;                                         \
        }else{                                                          \
            mydir=dir;                                                  \
            my_coeff.x = cf.x;                                          \
            my_coeff.y = cf.y;                                          \
        }                                                               \
        float2 tmp_coeff;                                               \
        tmp_coeff.x = my_coeff.x;                                       \
        tmp_coeff.y = my_coeff.y;                                       \
        if(oddness){                                                    \
            tmp_coeff.x = - my_coeff.x;                                 \
            tmp_coeff.y = - my_coeff.y;                                 \
        }                                                               \
        LOAD_ANTI_HERMITIAN(mom, mydir, idx, AH);                       \
        UNCOMPRESS_ANTI_HERMITIAN(ah, linka);                           \
        SU3_PROJECTOR(hw1##0, hw2##0, linkb);                           \
        SCALAR_MULT_ADD_SU3_MATRIX(linka, linkb, tmp_coeff.x, linka);   \
        SU3_PROJECTOR(hw1##1, hw2##1, linkb);                           \
        SCALAR_MULT_ADD_SU3_MATRIX(linka, linkb, tmp_coeff.y, linka);   \
        MAKE_ANTI_HERMITIAN(linka, ah);                                 \
        WRITE_ANTI_HERMITIAN_SINGLE(mom, mydir, idx, AH);               \
    }while(0)

Definition at line 237 of file fermion_force_quda.cu.

#define ADJ_MAT_MUL_HW (   M,
  HW,
  HWOUT 
)

Definition at line 89 of file fermion_force_quda.cu.

#define FF_COMPUTE_NEW_FULL_IDX_MINUS (   old_x1,
  old_x2,
  old_x3,
  old_x4,
  idx,
  mydir,
  new_idx 
)
Value:
do { \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_idx = ( (old_x1==0)?idx+X1m1:idx-1);                    \
            break;                                                      \
        case 1:                                                         \
            new_idx = ( (old_x2==0)?idx+X2X1mX1:idx-X1);                \
            break;                                                      \
        case 2:                                                         \
            new_idx = ( (old_x3==0)?idx+X3X2X1mX2X1:idx-X2X1);          \
            break;                                                      \
        case 3:                                                         \
            new_idx = ( (old_x4==0)?idx+X4X3X2X1mX3X2X1:idx-X3X2X1);    \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 219 of file fermion_force_quda.cu.

#define FF_COMPUTE_NEW_FULL_IDX_MINUS_UPDATE (   mydir,
  idx,
  new_idx 
)
Value:
do {    \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_idx = ( (new_x1==0)?idx+X1m1:idx-1);                    \
            new_x1 = (new_x1==0)?X1m1:new_x1 - 1;                       \
            break;                                                      \
        case 1:                                                         \
            new_idx = ( (new_x2==0)?idx+X2X1mX1:idx-X1);                \
            new_x2 = (new_x2==0)?X2m1:new_x2 - 1;                       \
            break;                                                      \
        case 2:                                                         \
            new_idx = ( (new_x3==0)?idx+X3X2X1mX2X1:idx-X2X1);          \
            new_x3 = (new_x3==0)?X3m1:new_x3 - 1;                       \
            break;                                                      \
        case 3:                                                         \
            new_idx = ( (new_x4==0)?idx+X4X3X2X1mX3X2X1:idx-X3X2X1);    \
            new_x4 = (new_x4==0)?X4m1:new_x4 - 1;                       \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 180 of file fermion_force_quda.cu.

#define FF_COMPUTE_NEW_FULL_IDX_PLUS (   old_x1,
  old_x2,
  old_x3,
  old_x4,
  idx,
  mydir,
  new_idx 
)
Value:
do { \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_idx = ( (old_x1==X1m1)?idx-X1m1:idx+1);                 \
            break;                                                      \
        case 1:                                                         \
            new_idx = ( (old_x2==X2m1)?idx-X2X1mX1:idx+X1);             \
            break;                                                      \
        case 2:                                                         \
            new_idx = ( (old_x3==X3m1)?idx-X3X2X1mX2X1:idx+X2X1);       \
            break;                                                      \
        case 3:                                                         \
            new_idx = ( (old_x4==X4m1)?idx-X4X3X2X1mX3X2X1:idx+X3X2X1); \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 202 of file fermion_force_quda.cu.

#define FF_COMPUTE_NEW_FULL_IDX_PLUS_UPDATE (   mydir,
  idx,
  new_idx 
)
Value:
do {    \
        switch(mydir){                                                  \
        case 0:                                                         \
            new_idx = ( (new_x1==X1m1)?idx-X1m1:idx+1);                 \
            new_x1 = (new_x1==X1m1)?0:new_x1+1;                         \
            break;                                                      \
        case 1:                                                         \
            new_idx = ( (new_x2==X2m1)?idx-X2X1mX1:idx+X1);             \
            new_x2 = (new_x2==X2m1)?0:new_x2+1;                         \
            break;                                                      \
        case 2:                                                         \
            new_idx = ( (new_x3==X3m1)?idx-X3X2X1mX2X1:idx+X2X1);       \
            new_x3 = (new_x3==X3m1)?0:new_x3+1;                         \
            break;                                                      \
        case 3:                                                         \
            new_idx = ( (new_x4==X4m1)?idx-X4X3X2X1mX3X2X1:idx+X3X2X1); \
            new_x4 = (new_x4==X4m1)?0:new_x4+1;                         \
            break;                                                      \
        }                                                               \
    }while(0)

Definition at line 159 of file fermion_force_quda.cu.

#define FF_COMPUTE_RECONSTRUCT_SIGN (   sign,
  dir,
  i1,
  i2,
  i3,
  i4 
)
Value:
do {        \
        sign =1;                                                        \
        switch(dir){                                                    \
        case XUP:                                                       \
            if ( (i4 & 1) == 1){                                        \
                sign = -1;                                              \
            }                                                           \
            break;                                                      \
        case YUP:                                                       \
            if ( ((i4+i1) & 1) == 1){                                   \
                sign = -1;                                              \
            }                                                           \
            break;                                                      \
        case ZUP:                                                       \
            if ( ((i4+i1+i2) & 1) == 1){                                \
                sign = -1;                                              \
            }                                                           \
            break;                                                      \
        case TUP:                                                       \
            if (i4 == X4m1 ){                                           \
                sign = -1;                                              \
            }                                                           \
            break;                                                      \
        }                                                               \
    }while (0)

Definition at line 266 of file fermion_force_quda.cu.

#define FF_LOAD_MATRIX (   src,
  dir,
  idx,
  var 
)    LOAD_MATRIX_12_SINGLE_TEX(src##Tex, dir, idx, var)

Definition at line 42 of file fermion_force_quda.cu.

#define FF_SITE_MATRIX_LOAD_TEX   1

Definition at line 37 of file fermion_force_quda.cu.

#define hwa00_im   HWA0.y

Definition at line 294 of file fermion_force_quda.cu.

#define hwa00_re   HWA0.x

Definition at line 293 of file fermion_force_quda.cu.

#define hwa01_im   HWA1.y

Definition at line 296 of file fermion_force_quda.cu.

#define hwa01_re   HWA1.x

Definition at line 295 of file fermion_force_quda.cu.

#define hwa02_im   HWA2.y

Definition at line 298 of file fermion_force_quda.cu.

#define hwa02_re   HWA2.x

Definition at line 297 of file fermion_force_quda.cu.

#define hwa10_im   HWA3.y

Definition at line 300 of file fermion_force_quda.cu.

#define hwa10_re   HWA3.x

Definition at line 299 of file fermion_force_quda.cu.

#define hwa11_im   HWA4.y

Definition at line 302 of file fermion_force_quda.cu.

#define hwa11_re   HWA4.x

Definition at line 301 of file fermion_force_quda.cu.

#define hwa12_im   HWA5.y

Definition at line 304 of file fermion_force_quda.cu.

#define hwa12_re   HWA5.x

Definition at line 303 of file fermion_force_quda.cu.

#define hwb00_im   HWB0.y

Definition at line 307 of file fermion_force_quda.cu.

#define hwb00_re   HWB0.x

Definition at line 306 of file fermion_force_quda.cu.

#define hwb01_im   HWB1.y

Definition at line 309 of file fermion_force_quda.cu.

#define hwb01_re   HWB1.x

Definition at line 308 of file fermion_force_quda.cu.

#define hwb02_im   HWB2.y

Definition at line 311 of file fermion_force_quda.cu.

#define hwb02_re   HWB2.x

Definition at line 310 of file fermion_force_quda.cu.

#define hwb10_im   HWB3.y

Definition at line 313 of file fermion_force_quda.cu.

#define hwb10_re   HWB3.x

Definition at line 312 of file fermion_force_quda.cu.

#define hwb11_im   HWB4.y

Definition at line 315 of file fermion_force_quda.cu.

#define hwb11_re   HWB4.x

Definition at line 314 of file fermion_force_quda.cu.

#define hwb12_im   HWB5.y

Definition at line 317 of file fermion_force_quda.cu.

#define hwb12_re   HWB5.x

Definition at line 316 of file fermion_force_quda.cu.

#define hwc00_im   HWC0.y

Definition at line 320 of file fermion_force_quda.cu.

#define hwc00_re   HWC0.x

Definition at line 319 of file fermion_force_quda.cu.

#define hwc01_im   HWC1.y

Definition at line 322 of file fermion_force_quda.cu.

#define hwc01_re   HWC1.x

Definition at line 321 of file fermion_force_quda.cu.

#define hwc02_im   HWC2.y

Definition at line 324 of file fermion_force_quda.cu.

#define hwc02_re   HWC2.x

Definition at line 323 of file fermion_force_quda.cu.

#define hwc10_im   HWC3.y

Definition at line 326 of file fermion_force_quda.cu.

#define hwc10_re   HWC3.x

Definition at line 325 of file fermion_force_quda.cu.

#define hwc11_im   HWC4.y

Definition at line 328 of file fermion_force_quda.cu.

#define hwc11_re   HWC4.x

Definition at line 327 of file fermion_force_quda.cu.

#define hwc12_im   HWC5.y

Definition at line 330 of file fermion_force_quda.cu.

#define hwc12_re   HWC5.x

Definition at line 329 of file fermion_force_quda.cu.

#define hwd00_im   HWD0.y

Definition at line 333 of file fermion_force_quda.cu.

#define hwd00_re   HWD0.x

Definition at line 332 of file fermion_force_quda.cu.

#define hwd01_im   HWD1.y

Definition at line 335 of file fermion_force_quda.cu.

#define hwd01_re   HWD1.x

Definition at line 334 of file fermion_force_quda.cu.

#define hwd02_im   HWD2.y

Definition at line 337 of file fermion_force_quda.cu.

#define hwd02_re   HWD2.x

Definition at line 336 of file fermion_force_quda.cu.

#define hwd10_im   HWD3.y

Definition at line 339 of file fermion_force_quda.cu.

#define hwd10_re   HWD3.x

Definition at line 338 of file fermion_force_quda.cu.

#define hwd11_im   HWD4.y

Definition at line 341 of file fermion_force_quda.cu.

#define hwd11_re   HWD4.x

Definition at line 340 of file fermion_force_quda.cu.

#define hwd12_im   HWD5.y

Definition at line 343 of file fermion_force_quda.cu.

#define hwd12_re   HWD5.x

Definition at line 342 of file fermion_force_quda.cu.

#define hwe00_im   HWE0.y

Definition at line 346 of file fermion_force_quda.cu.

#define hwe00_re   HWE0.x

Definition at line 345 of file fermion_force_quda.cu.

#define hwe01_im   HWE1.y

Definition at line 348 of file fermion_force_quda.cu.

#define hwe01_re   HWE1.x

Definition at line 347 of file fermion_force_quda.cu.

#define hwe02_im   HWE2.y

Definition at line 350 of file fermion_force_quda.cu.

#define hwe02_re   HWE2.x

Definition at line 349 of file fermion_force_quda.cu.

#define hwe10_im   HWE3.y

Definition at line 352 of file fermion_force_quda.cu.

#define hwe10_re   HWE3.x

Definition at line 351 of file fermion_force_quda.cu.

#define hwe11_im   HWE4.y

Definition at line 354 of file fermion_force_quda.cu.

#define hwe11_re   HWE4.x

Definition at line 353 of file fermion_force_quda.cu.

#define hwe12_im   HWE5.y

Definition at line 356 of file fermion_force_quda.cu.

#define hwe12_re   HWE5.x

Definition at line 355 of file fermion_force_quda.cu.

#define linkEvenTex   siteLink0TexSingle

Definition at line 40 of file fermion_force_quda.cu.

#define linkOddTex   siteLink1TexSingle

Definition at line 41 of file fermion_force_quda.cu.

#define LOAD_ANTI_HERMITIAN   LOAD_ANTI_HERMITIAN_SINGLE

Definition at line 9 of file fermion_force_quda.cu.

#define LOAD_HW (   hw,
  idx,
  var 
)    LOAD_HW_SINGLE(hw, idx, var)

Definition at line 32 of file fermion_force_quda.cu.

#define LOAD_HW_SINGLE (   hw,
  idx,
  var 
)
Value:
do{           \
        var##0 = hw[idx + 0*Vh];                      \
        var##1 = hw[idx + 1*Vh];                      \
        var##2 = hw[idx + 2*Vh];                      \
        var##3 = hw[idx + 3*Vh];                      \
        var##4 = hw[idx + 4*Vh];                      \
        var##5 = hw[idx + 5*Vh];                      \
    }while(0)

Definition at line 13 of file fermion_force_quda.cu.

#define LOAD_MATRIX (   src,
  dir,
  idx,
  var 
)    LOAD_MATRIX_12_SINGLE(src, dir, idx, var)

Definition at line 34 of file fermion_force_quda.cu.

#define MAT_MUL_HW (   M,
  HW,
  HWOUT 
)

Definition at line 50 of file fermion_force_quda.cu.

#define P3   tempvec[7]

Definition at line 1316 of file fermion_force_quda.cu.

#define P3mu   tempvec[3]

Definition at line 1318 of file fermion_force_quda.cu.

#define P5   tempvec[6]

Definition at line 1315 of file fermion_force_quda.cu.

#define P5nu   tempvec[3]

Definition at line 1317 of file fermion_force_quda.cu.

#define P7   tempvec[3]

Definition at line 1312 of file fermion_force_quda.cu.

#define P7rho   tempvec[4]

Definition at line 1313 of file fermion_force_quda.cu.

#define P7rhonu   tempvec[5]

Definition at line 1314 of file fermion_force_quda.cu.

#define Pmu   tempvec[0]

Definition at line 1309 of file fermion_force_quda.cu.

#define Pmumumu   tempvec[4]

Definition at line 1320 of file fermion_force_quda.cu.

#define Pnumu   tempvec[1]

Definition at line 1310 of file fermion_force_quda.cu.

#define Popmu   tempvec[4]

Definition at line 1319 of file fermion_force_quda.cu.

#define Prhonumu   tempvec[2]

Definition at line 1311 of file fermion_force_quda.cu.

#define SCALAR_MULT_ADD_SU3_VECTOR (   va,
  vb,
  s,
  vc 
)
Value:
do {    \
        vc##0_re = va##0_re + vb##0_re * s;             \
        vc##0_im = va##0_im + vb##0_im * s;             \
        vc##1_re = va##1_re + vb##1_re * s;             \
        vc##1_im = va##1_im + vb##1_im * s;             \
        vc##2_re = va##2_re + vb##2_re * s;             \
        vc##2_im = va##2_im + vb##2_im * s;             \
    }while (0)

Definition at line 149 of file fermion_force_quda.cu.

#define SU3_PROJECTOR (   va,
  vb,
 
)
Value:
m##00_re = va##0_re * vb##0_re + va##0_im * vb##0_im;           \
    m##00_im = va##0_im * vb##0_re - va##0_re * vb##0_im;               \
    m##01_re = va##0_re * vb##1_re + va##0_im * vb##1_im;               \
    m##01_im = va##0_im * vb##1_re - va##0_re * vb##1_im;               \
    m##02_re = va##0_re * vb##2_re + va##0_im * vb##2_im;               \
    m##02_im = va##0_im * vb##2_re - va##0_re * vb##2_im;               \
    m##10_re = va##1_re * vb##0_re + va##1_im * vb##0_im;               \
    m##10_im = va##1_im * vb##0_re - va##1_re * vb##0_im;               \
    m##11_re = va##1_re * vb##1_re + va##1_im * vb##1_im;               \
    m##11_im = va##1_im * vb##1_re - va##1_re * vb##1_im;               \
    m##12_re = va##1_re * vb##2_re + va##1_im * vb##2_im;               \
    m##12_im = va##1_im * vb##2_re - va##1_re * vb##2_im;               \
    m##20_re = va##2_re * vb##0_re + va##2_im * vb##0_im;               \
    m##20_im = va##2_im * vb##0_re - va##2_re * vb##0_im;               \
    m##21_re = va##2_re * vb##1_re + va##2_im * vb##1_im;               \
    m##21_im = va##2_im * vb##1_re - va##2_re * vb##1_im;               \
    m##22_re = va##2_re * vb##2_re + va##2_im * vb##2_im;               \
    m##22_im = va##2_im * vb##2_re - va##2_re * vb##2_im;

Definition at line 128 of file fermion_force_quda.cu.

#define WRITE_HW (   hw,
  idx,
  var 
)    WRITE_HW_SINGLE(hw, idx, var)

Definition at line 33 of file fermion_force_quda.cu.

#define WRITE_HW_SINGLE (   hw,
  idx,
  var 
)
Value:
do{                             \
        hw[idx + 0*Vh] = var##0;                                        \
        hw[idx + 1*Vh] = var##1;                                        \
        hw[idx + 2*Vh] = var##2;                                        \
        hw[idx + 3*Vh] = var##3;                                        \
        hw[idx + 4*Vh] = var##4;                                        \
        hw[idx + 5*Vh] = var##5;                                        \
    }while(0)

Definition at line 23 of file fermion_force_quda.cu.


Function Documentation

template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_all_link_kernel ( float2 *  tempxEven,
float2 *  tempxOdd,
float2 *  PmuEven,
float2 *  PmuOdd,
float2 *  P3Even,
float2 *  P3Odd,
float2 *  P3muEven,
float2 *  P3muOdd,
float2 *  shortPEven,
float2 *  shortPOdd,
int  sig,
int  mu,
float2  coeff,
float2  mcoeff,
float2  accumu_coeff,
float4 *  linkEven,
float4 *  linkOdd,
float2 *  momEven,
float2 *  momOdd 
)

Definition at line 874 of file fermion_force_quda.cu.

template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_middle_link_kernel ( float2 *  tempxEven,
float2 *  tempxOdd,
float2 *  PmuEven,
float2 *  PmuOdd,
float2 *  P3Even,
float2 *  P3Odd,
int  sig,
int  mu,
float2  coeff,
float4 *  linkEven,
float4 *  linkOdd,
float2 *  momEven,
float2 *  momOdd 
)

Definition at line 376 of file fermion_force_quda.cu.

template<int sig_positive, int mu_positive, int oddBit>
__global__ void do_side_link_kernel ( float2 *  P3Even,
float2 *  P3Odd,
float2 *  P3muEven,
float2 *  P3muOdd,
float2 *  TempxEven,
float2 *  TempxOdd,
float2 *  PmuEven,
float2 *  PmuOdd,
float2 *  shortPEven,
float2 *  shortPOdd,
int  sig,
int  mu,
float2  coeff,
float2  accumu_coeff,
float4 *  linkEven,
float4 *  linkOdd,
float2 *  momEven,
float2 *  momOdd 
)

Definition at line 633 of file fermion_force_quda.cu.

void fermion_force_cuda ( double  eps,
double  weight1,
double  weight2,
void *  act_path_coeff,
FullHw  cudaHw,
FullGauge  cudaSiteLink,
FullMom  cudaMom,
QudaGaugeParam param 
)

Definition at line 1506 of file fermion_force_quda.cu.

void fermion_force_init_cuda ( QudaGaugeParam param)

Definition at line 360 of file fermion_force_quda.cu.

__global__ void one_and_naik_terms_kernel ( float2 *  TempxEven,
float2 *  TempxOdd,
float2 *  PmuEven,
float2 *  PmuOdd,
float2 *  PnumuEven,
float2 *  PnumuOdd,
int  mu,
float2  OneLink,
float2  Naik,
float2  mNaik,
float4 *  linkEven,
float4 *  linkOdd,
float2 *  momEven,
float2 *  momOdd 
)

Definition at line 1197 of file fermion_force_quda.cu.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines