37   const string str_vlevel = params.
get_string(
"verbose_level");
 
   46   err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
 
   47   err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
 
   85                            std::valarray<double> sigma,
 
   87                            int& Nconv, 
double& diff)
 
   91   int Nshift = sigma.size();
 
   95   for (
int i = 0; i < Nshift; ++i) {
 
  109   zeta1.resize(Nshift);
 
  110   zeta2.resize(Nshift);
 
  114   for (
int i = 0; i < Nshift; ++i) {
 
  115     p[i].reset(Nin, Nvol, Nex);
 
  116     x[i].reset(Nin, Nvol, Nex);
 
  119     csh2[i]  = sigma[i] - sigma[0];
 
  133   for (
int iter = 0; iter < 
m_Niter; iter++) {
 
  150   for (
int i = 0; i < Nshift; ++i) {
 
  152     s += sigma[i] * 
x[i];
 
  154     double diff1 = 
s * 
s;
 
  155     diff1 = sqrt(diff1 * snorm);
 
  159     if (diff1 > diff) diff = diff1;
 
  164   for (
int i = 0; i < Nshift; ++i) {
 
  173   int Nshift = 
p.size();
 
  177   for (
int i = 0; i < Nshift; ++i) {
 
  191                                 const std::valarray<double>& sigma)
 
  194   s += sigma[0] * 
p[0];
 
  197   double pa_p = s * p[0];
 
  198   double beta = -rr_p / pa_p;
 
  204   double alpha = rr / rr_p;
 
  212   for (
int ish = 1; ish < 
Nshift2; ++ish) {
 
  213     double zeta = (alpha_h - 
csh2[ish] * beta) / 
zeta1[ish]
 
  214                   + (1.0 - alpha_h) / 
zeta2[ish];
 
  216     double zr      = zeta / 
zeta1[ish];
 
  217     double beta_s  = beta * zr;
 
  218     double alpha_s = alpha * zr * zr;
 
  220     x[ish] -= beta_s * p[ish];
 
  224     pp[ish]  = p[ish] * p[ish];
 
  231   for (
int ish = Nshift2 - 1; ish >= 0; --ish) {
 
void detailed(const char *format,...)
 
void Register_string(const string &, const string &)
 
static const std::string class_name
 
virtual const Field mult(const Field &)=0
multiplies fermion operator to a given field and returns the resultant field. 
 
void solve_init(double &)
 
void general(const char *format,...)
 
void Register_int(const string &, const int)
 
Container of Field-type object. 
 
void set_parameters(const Parameters ¶ms)
 
void solve_step(double &, const std::valarray< double > &)
 
std::valarray< double > pp
 
int square_non_zero(const double v)
 
void reset(const int Nin, const int Nvol, const int Nex, const element_type cmpl=COMPLEX)
 
Parameters_Shiftsolver_CG()
 
void paranoiac(const char *format,...)
 
void crucial(const char *format,...)
 
void solve(std::valarray< Field > &solution, std::valarray< double > shift, const Field &source, int &Nconv, double &diff)
 
std::valarray< double > zeta1
 
std::valarray< double > zeta2
 
int non_negative(const int v)
 
void Register_double(const string &, const double)
 
int fetch_double(const string &key, double &val) const 
 
string get_string(const string &key) const 
 
Bridge::VerboseLevel m_vl
 
int fetch_int(const string &key, int &val) const 
 
static VerboseLevel set_verbose_level(const std::string &str)
 
std::valarray< double > csh2