15 #ifndef FIELD_G_INCLUDED
16 #define FIELD_G_INCLUDED
69 assert(m_Ndf == 2 * m_Nc * m_Nc);
78 void reset(
const int Nvol,
const int Nex)
83 int nc()
const {
return m_Nc; }
86 double cmp_r(
const int cc,
const int site,
const int mn = 0)
const
88 return field[myindex(2 * cc, site, mn)];
91 double cmp_i(
const int cc,
const int site,
const int mn = 0)
const
93 return field[myindex(2 * cc + 1, site, mn)];
96 void set_r(
const int cc,
const int site,
const int mn,
const double re)
98 field[myindex(2 * cc, site, mn)] = re;
101 void set_i(
const int cc,
const int site,
const int mn,
const double im)
103 field[myindex(2 * cc + 1, site, mn)] = im;
106 void set_ri(
const int cc,
const int site,
const int mn,
107 const double re,
const double im)
109 field[myindex(2 * cc, site, mn)] = re;
110 field[myindex(2 * cc + 1, site, mn)] = im;
117 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
119 field[myindex(2 * cc, site, mn)],
120 field[myindex(2 * cc + 1, site, mn)]);
130 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
132 field[myindex(2 * cc, site, mn)],
133 field[myindex(2 * cc + 1, site, mn)]);
141 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
143 field[myindex(2 * cc, site, mn)],
144 field[myindex(2 * cc + 1, site, mn)]);
150 for (
int c1 = 0; c1 < m_Nc; ++c1) {
151 for (
int c2 = 0; c2 < m_Nc; ++c2) {
152 Tmp.
set(c1 + m_Nc * c2,
153 field[myindex(2 * (c2 + m_Nc * c1), site, mn)],
154 -field[myindex(2 * (c2 + m_Nc * c1) + 1, site, mn)]);
161 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
162 field[myindex(2 * cc, site, mn)] = U.
r(cc);
163 field[myindex(2 * cc + 1, site, mn)] = U.
i(cc);
169 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
170 field[myindex(2 * cc, site, mn)] += U.
r(cc);
171 field[myindex(2 * cc + 1, site, mn)] += U.
i(cc);
177 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
178 field[myindex(2 * cc, site, mn)] += prf * U.
r(cc);
179 field[myindex(2 * cc + 1, site, mn)] += prf * U.
i(cc);
185 for (
int i = 0, n = field.size(); i < n; i += 2) {
186 double real = field[i];
187 field[i] = -field[i + 1];
210 const Field_G& u1,
const int ex1,
211 const Field_G& u2,
const int ex2);
215 const Field_G& u1,
const int ex1,
216 const Field_G& u2,
const int ex2);
220 const Field_G& u1,
const int ex1,
221 const Field_G& u2,
const int ex2);
225 const Field_G& u1,
const int ex1,
226 const Field_G& u2,
const int ex2);
230 const Field_G& u1,
const int ex1,
231 const Field_G& u2,
const int ex2,
236 const Field_G& u1,
const int ex1,
237 const Field_G& u2,
const int ex2,
242 const Field_G& u1,
const int ex1,
243 const Field_G& u2,
const int ex2,
248 const Field_G& u1,
const int ex1,
249 const Field_G& u2,
const int ex2,
void mult_Field_Gdn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
void mat_dag(Mat_SU_N &Tmp, const int site, const int mn=0) const
void reset(const int Nvol, const int Nex)
Container of Field-type object.
double cmp_i(const int cc, const int site, const int mn=0) const
void copy(Field &y, const Field &x)
copy(y, x): y = x
Field_G & operator=(const Field_G &v)
void mult_Field_Gdd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
void multadd_Field_Gdd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
void mat(Mat_SU_N &Tmp, const int site, const int mn=0) const
void ah_Field_G(Field_G &w, const int ex)
void multadd_Field_Gdn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
void mult_Field_Gnd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
Mat_SU_N reunit(const Mat_SU_N &m)
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
void mult_Field_Gnn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2)
void set_i(const int cc, const int site, const int mn, const double im)
Common parameter class: provides parameters as singleton.
void set_r(const int cc, const int site, const int mn, const double re)
void multadd_Field_Gnd(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
Field_G(const int Nvol=CommonParameters::Nvol(), const int Nex=1)
void at_Field_G(Field_G &w, const int ex)
Base class of random number generators.
Mat_SU_N mat_dag(const int site, const int mn=0) const
void add_mat(const int site, const int mn, const Mat_SU_N &U, double prf)
double cmp_r(const int cc, const int site, const int mn=0) const
void multadd_Field_Gnn(Field_G &w, const int ex, const Field_G &u1, const int ex1, const Field_G &u2, const int ex2, const double ff)
void set(int c, double re, const double &im)
void set_mat(const int site, const int mn, const Mat_SU_N &U)
Mat_SU_N mat(const int site, const int mn=0) const
void add_mat(const int site, const int mn, const Mat_SU_N &U)
void set_ri(const int cc, const int site, const int mn, const double re, const double im)