16 #ifdef USE_PARAMETERS_FACTORY
36 #ifdef USE_PARAMETERS_FACTORY
51 const string str_vlevel = params.
get_string(
"verbose_level");
57 valarray<double> sigma;
62 err += params.
fetch_int(
"number_of_shifts", Nshift);
64 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
65 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
79 const int Niter,
const double Stop_cond)
84 for (
int i = 0; i < Nshift; ++i) {
121 std::valarray<double> sigma =
m_sigma;
123 std::valarray<Field> xq(Nshift);
125 for (
int i = 0; i < Nshift; ++i) {
126 xq[i].reset(Nin, Nvol, Nex);
138 assert(xq2->size() == sigma.size());
153 solver->
solve(xq, sigma, (
Field)b, Nconv, diff);
162 for (
int i = 0; i < Nshift; ++i) {
164 double sg = sigma[i];
174 for (
int i = 0; i < Nshift; ++i) {
193 double result = diff1;
void Register_string(const string &, const string &)
void general(const char *format,...)
void Register_int(const string &, const int)
const Field mult(const Field &f)
multiplies fermion operator to a given field and returns the resultant field.
Container of Field-type object.
Multishift Conjugate Gradient solver.
static const std::string class_name
Wilson-type fermion field.
int square_non_zero(const double v)
int fetch_double_vector(const string &key, std::valarray< double > &val) const
Parameters_Fprop_Wilson_Shift()
void crucial(const char *format,...)
void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void solve(std::valarray< Field > &solution, std::valarray< double > shift, const Field &source, int &Nconv, double &diff)
static bool Register(const std::string &realm, const creator_callback &cb)
std::valarray< double > m_sigma
int non_zero(const double v)
void Register_double_vector(const string &, const std::valarray< double > &)
void Register_double(const string &, const double)
Bridge::VerboseLevel m_vl
void set_parameters(const Parameters ¶ms)
int fetch_double(const string &key, double &val) const
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)
double calc(std::valarray< Field_F > *, const Field_F &)