96     const string str_vlevel = params.
get_string(
"verbose_level");
 
  120                                           const std::vector<int> bc)
 
  126     for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  132     assert(bc.size() == 
m_Ndim);
 
  137     assert(bc.size() == 
m_Ndim);
 
  138     for (
int mu = 0; mu < 
m_Ndim; ++mu) {
 
  162     params_solver.
set_string(
"solver_type", 
"CG");
 
  163     params_solver.
set_int(
"maximum_number_of_iteration", 100);
 
  164     params_solver.
set_int(
"maximum_number_of_restart", 40);
 
  165     params_solver.
set_double(
"convergence_criterion_squared", 1.0e-30);
 
  167     params_solver.
set_string(
"verbose_level", 
"Crucial");
 
  180     const int    Niter              = 100;
 
  181     const int    Nrestart           = 40;
 
  182     const double Stopping_condition = 1.0e-30;
 
  191     for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  192       for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  193         int spin_color = icolor + m_Nc * ispin;
 
  195         for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  196           w.
set_ri(icolor, ispin, isite, 0, 1, 0);
 
  205           solver->
solve(w2, w, Nconv, diff);
 
  211           solver->
solve(w2, w, Nconv, diff);
 
  221     for (
int ics = 0; ics < 
m_Nc * 
m_Nd; ++ics) {
 
  222       for (
int site = 0; site < 
m_Nvol2; ++site) {
 
  223         for (
int id = 0; 
id < 
m_Nd; ++id) {
 
  224           for (
int ic = 0; ic < 
m_Nc; ++ic) {
 
  254                                         const Field& f, 
const int ieo)
 
  265     } 
else if (ieo == 1) {
 
  273     for (
int iex = 0; iex < nex; ++iex) {
 
  274       for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  275         for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  276           for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  280             for (
int jspin = 0; jspin < 
m_Nd; ++jspin) {
 
  281               for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  282                 int spin_color = jcolor + m_Nc * jspin;
 
  284                 re += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
 
  285                       f2.
cmp_r(jcolor, jspin, isite, iex);
 
  286                 re += csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
 
  287                       f2.
cmp_i(jcolor, jspin, isite, iex);
 
  289                 im += csw_inv->
cmp_r(icolor, ispin, isite, spin_color) *
 
  290                       f2.
cmp_i(jcolor, jspin, isite, iex);
 
  291                 im -= csw_inv->
cmp_i(icolor, ispin, isite, spin_color) *
 
  292                       f2.
cmp_r(jcolor, jspin, isite, iex);
 
  296             v2.set_ri(icolor, ispin, isite, iex, re, im);
 
  310     for (
int ispin = 0; ispin < m_Nd / 2; ++ispin) {
 
  311       for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  312         int ics = icolor + ispin * 
m_Nc;
 
  313         for (
int jspin = 0; jspin < 
m_Nd; ++jspin) {
 
  314           int js2 = (jspin + m_Nd / 2) % m_Nd;
 
  315           for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  316             int cs1 = jcolor + m_Nc * (jspin + m_Nd * ics);
 
  317             int cs2 = jcolor + m_Nc * (jspin + m_Nd * (ics + m_Nc * m_Nd / 2));
 
  318             int cc  = jcolor + icolor * 
m_Nc;
 
  319             int ss1 = jspin + ispin * 
m_Nd;
 
  320             int ss2 = js2 + ispin * 
m_Nd;
 
  322             matrix[2 * cs1]     = 
m_T.
cmp_r(cc, site, ss1);
 
  323             matrix[2 * cs1 + 1] = 
m_T.
cmp_i(cc, site, ss1);
 
  325             matrix[2 * cs2]     = 
m_T.
cmp_r(cc, site, ss2);
 
  326             matrix[2 * cs2 + 1] = 
m_T.
cmp_i(cc, site, ss2);
 
  422                                        const int mu, 
const int nu)
 
  461     int NinG = 
m_T2[0].nin();
 
  462     for (
int ieo = 0; ieo < 2; ++ieo) {
 
  463       for (
int ex = 0; ex < Nfst; ++ex) {
 
  464         for (
int isite = 0; isite < 
m_Nvol2; ++isite) {
 
  465           for (
int in = 0; in < NinG; ++in) {
 
  532                                              const int mu, 
const int nu)
 
  545     for (
int site = 0; site < 
m_Nvol; ++site) {
 
  546       w.set_mat(site, 0, Umu.
mat(site) * Cup.mat_dag(site));
 
  549     for (
int site = 0; site < 
m_Nvol; ++site) {
 
  555     for (
int site = 0; site < 
m_Nvol; ++site) {
 
  556       v.set_mat(site, 0, Cup.mat_dag(site) * Umu.
mat(site));
 
  559     for (
int site = 0; site < 
m_Nvol; ++site) {
 
  569     for (
int site = 0; site < 
m_Nvol; ++site) {
 
  570       Fst.
set_mat(site, 0, w.mat(site).ah());
 
  585     assert(tr_sigma_inv.
nex() == 1);
 
  595     for (
int isite = 0; isite < 
m_Nvol; ++isite) {
 
  596       for (
int ispin = 0; ispin < 
m_Nd; ++ispin) {
 
  597         for (
int icolor = 0; icolor < 
m_Nc; ++icolor) {
 
  598           v = sigma_inv.
vec(ispin, isite, icolor + m_Nc * ispin);
 
  599           for (
int jcolor = 0; jcolor < 
m_Nc; ++jcolor) {
 
  600             int cc = icolor + m_Nc * jcolor;
 
  601             tr_sigma_inv.
set_r(cc, isite, 0, v.
r(jcolor));
 
  602             tr_sigma_inv.
set_i(cc, isite, 0, v.
i(jcolor));
 
  621     double flop = flop_site * 
static_cast<double>(Lvol / 2);
 
void scal(Field &x, const double a)
scal(x, a): x = a * x 
 
double cmp_i(const int cc, const int s, const int site, const int e=0) const 
 
void detailed(const char *format,...)
 
virtual void upper(Field_G &, const Field_G &, const int mu, const int nu)=0
constructs upper staple in mu-nu plane. 
 
double r(const int c) const 
 
void set(const int jin, const int site, const int jex, double v)
 
virtual void lower(Field_G &, const Field_G &, const int mu, const int nu)=0
constructs lower staple in mu-nu plane. 
 
Field_G m_T
m_T = 1 - kappa c_SW sigma F / 2 
 
void init(std::string repr)
 
void general(const char *format,...)
 
GammaMatrix get_GM(GMspecies spec)
 
void set_int(const string &key, const int value)
 
Container of Field-type object. 
 
int fetch_double(const string &key, double &value) const 
 
double cmp_i(const int cc, const int site, const int mn=0) const 
 
double cmp(const int jin, const int site, const int jex) const 
 
void mult_isigma(Field_F &, const Field_F &, const int mu, const int nu)
 
int site(const int x2, const int y, const int z, const int t, const int ieo) const 
 
std::vector< double > csmatrix(const int &)
 
void copy(Field &y, const Field &x)
copy(y, x): y = x 
 
Standard Conjugate Gradient solver algorithm. 
 
void set_fieldstrength(Field_G &, const int, const int)
 
void multadd_Field_Gn(Field_F &y, const int ex, const Field_G &u, int ex1, const Field_F &x, int ex2, const double a)
 
Wilson-type fermion field. 
 
virtual void set_parameters(const Parameters ¶ms)=0
 
void set(const int c, const double re, const double im)
 
void set_string(const string &key, const string &value)
 
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
 
static double epsilon_criterion2()
 
void reset(int Nvol, int Nex)
 
void trSigmaInv(Field_G &, const int mu, const int nu)
 
void mult_iGM(Field_F &y, const GammaMatrix &gm, const Field_F &x)
gamma matrix multiplication (i is multiplied) 
 
double i(const int c) const 
 
void set_ri(const int cc, const int s, const int site, const int e, const double re, const double im)
 
Bridge::VerboseLevel m_vl
 
std::vector< Field_G > m_T2
m_T2 is used in Org-version. 
 
void set_i(const int cc, const int site, const int mn, const double im)
 
std::vector< int > m_boundary
 
void set_r(const int cc, const int site, const int mn, const double re)
 
double flop_count()
retuns number of floating point number operations. 
 
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y 
 
static const std::string class_name
 
void set_parameters(const Parameters ¶ms)
 
void crucial(const char *format,...)
 
void D(Field &v, const Field &f, const int ieo)
 
void set_double(const string &key, const double value)
 
void reverseField(Field &lex, const Field &eo)
 
void forward(Field &, const Field &, const int mu)
 
Vec_SU_N vec(const int s, const int site, const int e=0) const 
 
Mat_SU_N mat_dag(const int site, const int mn=0) const 
 
double cmp_r(const int cc, const int site, const int mn=0) const 
 
void set_config(Field *Ueo)
setting pointer to the gauge configuration. 
 
void setpart_ex(int ex, const Field &w, int exw)
 
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
 
string get_string(const string &key) const 
 
int fetch_int_vector(const string &key, vector< int > &value) const 
 
void set_mat(const int site, const int mn, const Mat_SU_N &U)
 
void mult_csw_inv(Field &, const Field &, const int ieo)
 
int sg_index(int mu, int nu)
 
Mat_SU_N mat(const int site, const int mn=0) const 
 
std::vector< GammaMatrix > m_GM
Gamma Matrix and Sigma_{mu,nu} = -i [Gamma_mu, Gamma_nu] /2. 
 
virtual void solve(Field &solution, const Field &source, int &Nconv, double &diff)=0
 
std::vector< GammaMatrix > m_SG
 
static VerboseLevel set_verbose_level(const std::string &str)
 
double cmp_r(const int cc, const int s, const int site, const int e=0) const