Go to the documentation of this file.
16 #ifdef USE_FACTORY_AUTOREGISTER
18 bool init = Fopr_Rational_SF::register_factory();
39 err += params.
fetch_int(
"number_of_poles", Np);
40 err += params.
fetch_int(
"exponent_numerator", n_exp);
41 err += params.
fetch_int(
"exponent_denominator", d_exp);
44 err += params.
fetch_int(
"maximum_number_of_iteration", Niter);
45 err += params.
fetch_double(
"convergence_criterion_squared", Stop_cond);
74 const double x_min,
const double x_max,
75 const int Niter,
const double Stop_cond)
122 const int Nshift =
m_Np;
131 for (
int i = 0; i < Nshift; ++i) {
132 m_xq[i].reset(Nin, Nvol, Nex);
142 for (
int i = 0; i <
m_Np; i++) {
160 assert(v.
nin() == b.
nin());
162 assert(v.
nex() == b.
nex());
181 for (
int i = 0; i <
m_Np; i++) {
194 for (
int k = 0; k <
m_Np; ++k) {
210 const double gflop = 0.0;
void set_string(const string &key, const string &value)
void set_double(const string &key, const double value)
virtual int field_nex()=0
returns the external degree of freedom of the fermion field.
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
void get_parameters(double &norm, std::vector< double > &res, std::vector< double > &pole)
void axpy(Field &y, const double a, const Field &x)
axpy(y, a, x): y := a * x + y
virtual void set_mode(std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void copy(Field &y, const Field &x)
copy(y, x): y = x
void set_parameters(const Parameters ¶ms)
void set_boundary_zero(Field_G &u)
void solve(std::vector< FIELD > &solution, const std::vector< double > &shift, const FIELD &source, int &Nconv, double &diff)
Shiftsolver_CG * m_solver
double flop_count()
this returns the number of floating point operations.
virtual int field_nvol()=0
returns the volume of the fermion field.
std::vector< double > m_bl
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
int square_non_zero(const double v)
AShiftsolver_CG< Field, Fopr > Shiftsolver_CG
Multishift Conjugate Gradient solver.
static const std::string class_name
void mult(Field &v, const Field &f)
static VerboseLevel set_verbose_level(const std::string &str)
int non_zero(const double v)
std::vector< double > m_cl
Bridge::VerboseLevel m_vl
void set_int(const string &key, const int value)
void scal(Field &x, const double a)
scal(x, a): x = a * x
int fetch_string(const string &key, string &value) const
int fetch_double(const string &key, double &value) const
std::vector< Field > m_xq
void crucial(const char *format,...)
double func(const double x)
Container of Field-type object.
virtual int field_nin()=0
returns the on-site degree of freedom of the fermion field.
Determionation of coefficients of rational approximation.
int fetch_int(const string &key, int &value) const
void general(const char *format,...)
static std::string get_verbose_level(const VerboseLevel vl)