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)