26 const LatticeColorVector&
psi,
27 LatticeColorVector&
chi,
30 multi2d<LatticeComplex> g_e(Nc, Nc);
31 multi1d<LatticeComplex> psi_e(Nc);
32 multi1d<LatticeComplex> chi_e(Nc);
36 if ( s_index < 0 || (s_index > (Nc-2) && Nc > 1) ||
37 (s_index > 0 && Nc == 1) )
45 LatticeReal length = sqrt(localNorm2(
psi));
46 LatticeReal lr1 = 1 / length;
48 for(
int i=0;
i < Nc; ++
i)
49 psi_e[
i] = peekColor(
psi,
i);
51 for(
int i=s_index+1;
i<Nc;
i++)
56 psi_e[s_index] *= lr1;
58 for(
int i=0;
i<s_index;
i++)
61 multi1d<LatticeReal>
a(4);
65 for(
int i=Nc-2;
i>=s_index;
i--)
67 lr1 = sqrt(localNorm2(psi_e[
i]) + localNorm2(psi_e[
i+1]));
70 lc1 = LatticeComplex(adj(psi_e[
i])) * lr2;
74 lc1 = LatticeComplex(adj(psi_e[
i+1])) * lr2;
78 psi_e[
i] = cmplx(lr1,0);
86 LatticeColorMatrix v1, v2;
93 chi_e[s_index] = psi_e[s_index] * length;
95 for(
int i=0;
i < Nc; ++
i)
96 pokeColor(
chi, chi_e[
i],
i);
101 psi_e[0] = peekColor(
psi, 0);
102 LatticeReal lr1 = sqrt(localNorm2(psi_e[0]));
103 chi_e[0] = cmplx(lr1,0);
104 pokeColor(
chi, chi_e[0], 0);
106 g_e[0][0] = adj(psi_e[0]) / lr1;
108 pokeColor(g, g_e[0][0], 0, 0);
Primary include file for CHROMA library code.
void sunFill(LatticeColorMatrix &dest, const multi1d< LatticeReal > &r, int su2_index, const Subset &s)
Fill a dest(su2_index) <- r_0,r_1,r_2,r_3 under a subset.
void rot_colvec(LatticeColorMatrix &g, const LatticeColorVector &psi, LatticeColorVector &chi, int s_index)
Rotate a color std::vector.
Asqtad Staggered-Dirac operator.
QDP_error_exit("too many BiCG iterations", n_count, rsd_sq, cp, c, re_rvr, im_rvr, re_a, im_a, re_b, im_b)
multi1d< LatticeFermion > chi(Ncb)
Decompose a complex matrix as .
Fill an SU(Nc) matrix with an SU(2) submatrix.