void Mtm_plus_block_psi(spinor * const l, spinor * const k, const int i) { block * blk = &block_list[i]; int vol = (*blk).volume/2; Block_H_psi(blk, g_spinor_field[DUM_MATRIX+1], k, EO); mul_one_pm_imu_inv(g_spinor_field[DUM_MATRIX+1], +1., vol); Block_H_psi(blk, g_spinor_field[DUM_MATRIX], g_spinor_field[DUM_MATRIX+1], OE); mul_one_pm_imu_sub_mul(l, k, g_spinor_field[DUM_MATRIX], +1., vol); return; }
/****************************************** * * This is the implementation of * * \gamma_5 \hat Q_{-} = * (M_{oo}^- - M_{oe}(M_{ee}^- )^{-1}M_{eo}) * * see documentation for details * k is the number of the input field * l is the number of the output field * * it acts only on the odd part or only * on a half spinor ******************************************/ void Mtm_minus_psi(spinor * const l, spinor * const k) { Hopping_Matrix(EO, g_spinor_field[DUM_MATRIX+1], k); mul_one_pm_imu_inv(g_spinor_field[DUM_MATRIX+1], -1., VOLUME/2); Hopping_Matrix(OE, g_spinor_field[DUM_MATRIX], g_spinor_field[DUM_MATRIX+1]); mul_one_pm_imu_sub_mul(l, k, g_spinor_field[DUM_MATRIX], -1., VOLUME/2); }
void Mtm_plus_psi_nocom(spinor * const l, spinor * const k){ Hopping_Matrix_nocom(EO, g_spinor_field[DUM_MATRIX+1], k); mul_one_pm_imu_inv(g_spinor_field[DUM_MATRIX+1], +1., VOLUME/2); Hopping_Matrix_nocom(OE, g_spinor_field[DUM_MATRIX], g_spinor_field[DUM_MATRIX+1]); mul_one_pm_imu_sub_mul(l, k, g_spinor_field[DUM_MATRIX], +1., VOLUME/2); }