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)