16 #ifdef USE_PARAMETERS_FACTORY
36 #ifdef USE_PARAMETERS_FACTORY
49 const string str_vlevel = params.
get_string(
"verbose_level");
55 valarray<double> sigma;
60 err += params.
fetch_int(
"number_of_shifts", Nshift);
62 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
63 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
66 vout.
crucial(
m_vl,
"Fprop_Wilson_Shift: fetch error, input parameter not found.\n");
77 const int Niter,
const double Stop_cond)
82 for (
int i = 0; i < Nshift; ++i) {
95 vout.
crucial(
m_vl,
"Fprop_Wilson_Shift: parameter range check failed.\n");
118 std::valarray<double> sigma =
m_sigma;
120 std::valarray<Field> xq(Nshift);
122 for (
int i = 0; i < Nshift; ++i) {
123 xq[i].reset(Nin, Nvol, Nex);
135 assert(xq2->size() == sigma.size());
150 solver->
solve(xq, sigma, (
Field)b, Nconv, diff);
159 for (
int i = 0; i < Nshift; ++i) {
161 double sg = sigma[i];
171 for (
int i = 0; i < Nshift; ++i) {
190 double result = diff1;