20 void eesu3(LatticeColorMatrix & iQ)
24 LatticeColorMatrix
Q = timesMinusI(iQ);
26 LatticeComplex f0,
f1,
f2;
28 LatticeColorMatrix QQ =
Q*
Q;
30 LatticeReal c0 = real((1.0/3.0) * trace(
Q*QQ));
31 LatticeReal c1 = real((1.0/2.0) * trace(QQ));
32 LatticeReal c0abs = fabs(c0);
33 LatticeReal c0max = 2 * pow((c1 / 3.0), 1.5);
34 LatticeReal theta = acos(c0abs/c0max);
35 LatticeReal
u = sqrt(c1 / 3.0) * cos(theta / 3.0);
36 LatticeReal w = sqrt(c1) * sin(theta / 3.0);
39 LatticeReal cosu = cos(
u);
40 LatticeReal cosw = cos(w);
41 LatticeReal sinu = sin(
u);
42 LatticeReal sinw = sin(w);
45 LatticeComplex exp2iu = cmplx((2*cosu*cosu - 1), 2*cosu*sinu);
46 LatticeComplex expmiu = cmplx(cosu, -sinu);
48 LatticeBoolean latboo_c0 = (c0 < 0);
49 LatticeBoolean latboo_c1 = (c1 > 1.0e-4);
50 LatticeBoolean latboo_w = (fabs(w) > 0.05);
52 LatticeReal denom = where(latboo_c1,
57 LatticeReal xi0 = where(latboo_w,
59 1 - (1.0/6.0)*ww*(1-(1.0/20.0)*ww*(1-(1.0/42.0)*ww)));
63 ((uu - ww) * exp2iu + expmiu
64 * cmplx(8*uu*cosw, 2*
u*(3*uu+ww)*xi0))/denom,
65 cmplx(1-c0*c0/720, -c0/6*(1-c1/20*(1-c1/42))));
68 (2*
u*exp2iu - expmiu * cmplx(2*
u*cosw, (ww-3*uu)*xi0))/denom,
69 cmplx(c0/24*(1.0-c1/15*(1-3*c1/112)),
70 1-c1/6*(1-c1/20*(1-c1/42))-c0*c0/5040));
73 (exp2iu - expmiu * cmplx(cosw, 3*
u*xi0))/denom,
74 0.5*cmplx(-1+c1/12*(1-c1/30*(1-c1/56))
75 +c0*c0/20160, c0/60*(1-c1/21*(1-c1/48))));
78 f0 = where(latboo_c0 && latboo_c1,
82 f1 = where(latboo_c0 && latboo_c1,
86 f2 = where(latboo_c0 && latboo_c1,
91 iQ = f0 +
f1 *
Q +
f2 * QQ;
Primary include file for CHROMA library code.
Exactly exponentiate a SU(3) lie algebra element.
void eesu3(LatticeColorMatrix &iQ)
Exact exponentiation of SU(3) matrix.
Asqtad Staggered-Dirac operator.
static multi1d< LatticeColorMatrix > u
LinOpSysSolverMGProtoClover::Q Q