15 #ifndef FIELD_G_INCLUDED
16 #define FIELD_G_INCLUDED
67 assert(m_Ndf == 2 * m_Nc * m_Nc);
75 void reset(
const int Nvol,
const int Nex)
80 int nc()
const {
return m_Nc; }
83 double cmp_r(
const int cc,
const int site,
const int mn = 0)
const
85 return field[myindex(2 * cc, site, mn)];
88 double cmp_i(
const int cc,
const int site,
const int mn = 0)
const
90 return field[myindex(2 * cc + 1, site, mn)];
93 void set_r(
const int cc,
const int site,
const int mn,
const double re)
95 field[myindex(2 * cc, site, mn)] = re;
98 void set_i(
const int cc,
const int site,
const int mn,
const double im)
100 field[myindex(2 * cc + 1, site, mn)] = im;
103 void set_ri(
const int cc,
const int site,
const int mn,
104 const double re,
const double im)
106 field[myindex(2 * cc, site, mn)] = re;
107 field[myindex(2 * cc + 1, site, mn)] = im;
114 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
116 field[myindex(2 * cc, site, mn)],
117 field[myindex(2 * cc + 1, site, mn)]);
127 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
129 field[myindex(2 * cc, site, mn)],
130 field[myindex(2 * cc + 1, site, mn)]);
138 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
140 field[myindex(2 * cc, site, mn)],
141 field[myindex(2 * cc + 1, site, mn)]);
147 for (
int c1 = 0; c1 < m_Nc; ++c1) {
148 for (
int c2 = 0; c2 < m_Nc; ++c2) {
149 Tmp.
set(c1 + m_Nc * c2,
150 field[myindex(2 * (c2 + m_Nc * c1), site, mn)],
151 -field[myindex(2 * (c2 + m_Nc * c1) + 1, site, mn)]);
158 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
159 field[myindex(2 * cc, site, mn)] = U.
r(cc);
160 field[myindex(2 * cc + 1, site, mn)] = U.
i(cc);
166 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
167 field[myindex(2 * cc, site, mn)] += U.
r(cc);
168 field[myindex(2 * cc + 1, site, mn)] += U.
i(cc);
174 for (
int cc = 0; cc < m_Nc * m_Nc; ++cc) {
175 field[myindex(2 * cc, site, mn)] += prf * U.
r(cc);
176 field[myindex(2 * cc + 1, site, mn)] += prf * U.
i(cc);
182 for (
int i = 0, n = field.size(); i < n; i += 2) {
183 double real = field[i];
184 field[i] = -field[i + 1];
206 const Field_G& u1,
const int ex1,
207 const Field_G& u2,
const int ex2);
211 const Field_G& u1,
const int ex1,
212 const Field_G& u2,
const int ex2);
216 const Field_G& u1,
const int ex1,
217 const Field_G& u2,
const int ex2);
221 const Field_G& u1,
const int ex1,
222 const Field_G& u2,
const int ex2);
226 const Field_G& u1,
const int ex1,
227 const Field_G& u2,
const int ex2,
232 const Field_G& u1,
const int ex1,
233 const Field_G& u2,
const int ex2,
238 const Field_G& u1,
const int ex1,
239 const Field_G& u2,
const int ex2,
244 const Field_G& u1,
const int ex1,
245 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
Field_G & operator=(const double a)
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)