16 #ifdef USE_PARAMETERS_FACTORY
38 #ifdef USE_PARAMETERS_FACTORY
53 const string str_vlevel = params.
get_string(
"verbose_level");
64 err += params.
fetch_int(
"number_of_poles", Np);
65 err += params.
fetch_int(
"exponent_numerator", n_exp);
66 err += params.
fetch_int(
"exponent_denominator", d_exp);
69 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
70 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
84 double x_min,
double x_max,
85 int Niter,
double Stop_cond)
133 for (
int i = 0; i <
m_Np; i++) {
162 int NinF = eta.
nin();
163 int NvolF = eta.
nvol();
164 int NexF = eta.
nex();
169 std::vector<Field> psi(Nshift);
171 for (
int i = 0; i < Nshift; ++i) {
172 psi[i].reset(NinF, NvolF, NexF);
184 solver->
solve(psi,
m_cl, eta, Nconv, diff);
193 for (
int i = 0; i < Nshift; ++i) {
196 axpy(force, 1.0, force1);
void scal(Field &x, const double a)
scal(x, a): x = a * x
void get_parameters(double &norm, std::vector< double > &res, std::vector< double > &pole)
void Register_string(const string &, const string &)
void set(const int jin, const int site, const int jex, double v)
void general(const char *format,...)
void Register_int(const string &, const int)
Bridge::VerboseLevel m_vl
void set_parameters(const Parameters ¶ms)
Container of Field-type object.
std::vector< double > m_bl
Multishift Conjugate Gradient solver.
void copy(Field &y, const Field &x)
copy(y, x): y = x
Parameters_Force_F_Rational()
std::vector< double > m_cl
Wilson-type fermion field.
int square_non_zero(const double v)
void force_core1(Field &, const Field &, const Field &)
static const std::string class_name
void force_udiv_impl(Field_G &, const Field_F &)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
virtual void force_udiv(Field &, const Field &)
void crucial(const char *format,...)
void force_udiv1(Field &, const Field &, const Field &)
static bool Register(const std::string &realm, const creator_callback &cb)
int non_zero(const double v)
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void force_udiv(Field &, const Field &)
void Register_double(const string &, const double)
int fetch_double(const string &key, double &val) const
void set_parameters(const Parameters ¶ms)
string get_string(const string &key) const
int fetch_int(const string &key, int &val) const
static VerboseLevel set_verbose_level(const std::string &str)
void solve(std::vector< Field > &solution, const std::vector< double > &shift, const Field &source, int &Nconv, double &diff)