Go to the documentation of this file.
14 #ifndef AFOPR_SIGN_INCLUDED
15 #define AFOPR_SIGN_INCLUDED
55 template<
typename AFIELD>
111 const int Niter,
const real_t Stop_cond);
117 void set_mode(
const std::string mode);
121 void set_lowmodes(
const int Nsbt, std::vector<real_t> *,
122 std::vector<AFIELD> *);
177 static bool register_factory()
180 init &= AFOPR::Factory_fopr::Register(
"Sign", create_object);
181 init &= AFOPR::Factory_fopr_params::Register(
"Sign", create_object_with_params);
void set_lowmodes(const int Nsbt, std::vector< real_t > *, std::vector< AFIELD > *)
void get_parameters(Parameters ¶ms) const
gets parameters by a Parameter object: to be implemented in a subclass.
void set_config(Field *U)
sets the gauge configuration.
int field_nin()
returns the on-site degree of freedom of the fermion field.
Sign function of a given fermion operator.
real_t m_x_max
upper range of approximate sign function
int field_nvol()
returns the volume of the fermion field.
virtual void reverse(Field &, const AFIELD &)
converts an alternative field to a Field object.
void set_parameters(const Parameters ¶ms)
sets parameters by a Parameter object: to be implemented in a subclass.
DEPRECATED AFopr_Sign(AFOPR *fopr)
virtual bool needs_convert()
returns true if additional field conversion is needed.
std::vector< real_t > m_cl
AFopr_Sign(AFOPR *fopr, const Parameters ¶ms)
virtual void convert(AFIELD &, const Field &)
converts a Field object into other format if necessary.
ComplexTraits< real_t >::complex_t complex_t
real_t m_x_min
lower range of approximate sign function
std::string get_mode() const
returns the current mult mode.
int m_Np
number of poles in rational approx.
real_t sign_zolotarev(const real_t x)
std::vector< real_t > m_bl
std::vector< AFIELD > * m_vk
virtual bool needs_convert()
returns true if additional field conversion is needed.
std::vector< real_t > * m_ev
AShiftsolver_CG< AFIELD, AFOPR > * m_solver
Bridge::VerboseLevel m_vl
void evaluate_lowmodes(AFIELD &, const AFIELD &)
int field_nex()
returns the external degree of freedom of the fermion field.
std::vector< real_t > m_sigma
static const std::string class_name
real_t m_Stop_cond
stopping condition of shift solver
std::vector< AFIELD > m_xq
virtual void convert(AFIELD &v, const Field &w)
converts a Field object into other format if necessary.
void subtract_lowmodes(AFIELD &)
virtual void reverse(Field &v, const AFIELD &w)
reverses to a Field object from other format if necessary.
int m_Niter
max iteration of shiftsolver
void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
void mult_dag(AFIELD &v, const AFIELD &w)
hermitian conjugate of mult.
void mult(AFIELD &v, const AFIELD &w)
multiplies fermion operator to a given field.
Container of Field-type object.
Multishift Conjugate Gradient solver.
double flop_count()
returns the number of floating point operations.