107 return std::string();
132 typedef Fopr *(*ProductCreator_noarg)();
133 typedef Fopr *(*ProductCreator_fopr)(
Fopr *fopr);
134 typedef Fopr *(*ProductCreator_fopr_director)(
Fopr *fopr,
Director *director);
135 typedef Fopr *(*ProductCreator_string)(
const std::string& arg);
144 ProductCreator_noarg p = Factory_noarg::Find(subtype);
146 return p ? (*p)() : 0;
151 ProductCreator_fopr p = Factory_fopr::Find(subtype);
153 return p ? (*p)(fopr) : 0;
158 ProductCreator_fopr p = Factory_fopr::Find(subtype);
160 return p ? (*p)(fopr.
get()) : 0;
165 ProductCreator_fopr_director p = Factory_fopr_director::Find(subtype);
167 return p ? (*p)(fopr, director) : 0;
172 ProductCreator_fopr_director p = Factory_fopr_director::Find(subtype);
174 return p ? (*p)(fopr.
get(), director.
get()) : 0;
179 ProductCreator_string p = Factory_string::Find(subtype);
181 return p ? (*p)(arg) : 0;
184 #ifdef USE_FACTORY_AUTOREGISTER
186 static bool init_factory();
void general(const char *format,...)
virtual void set_mode(const std::string mode)
setting the mode of multiplication if necessary. Default implementation here is just to avoid irrelev...
virtual void set_config(Field *)=0
setting pointer to the gauge configuration.
Container of Field-type object.
virtual void mult_gm5(Field &, const Field &)
gamma_5 multiplication. [31 Mar 2017 H.Matsufuru]
void set_parameter_verboselevel(const Bridge::VerboseLevel vl)
virtual void mult_dag(Field &, const Field &, const std::string mode)
execute mult_dag with specified mode (unchanging internal mode). [23 May 2016 H.Matsufuru].
virtual int field_nin()=0
returns the on-site d.o.f. for which the fermion operator is defined.
Manager of commonly used data object in HMC.
virtual void mult(Field &, const Field &, const std::string mode)
execute mult with specified mode (unchanging internal mode). [23 May 2016 H.Matsufuru].
Bridge::VerboseLevel m_vl
virtual double flop_count()
returns the flop in giga unit
virtual std::string get_mode() const
only for Fopr_Overlap
virtual int field_nex()=0
returns the external d.o.f. for which the fermion operator is defined.
virtual void mult_dn(const int mu, Field &, const Field &)
Common parameter class: provides parameters as singleton.
virtual void set_parameters(const Parameters &)=0
virtual void mult_up(const int mu, Field &, const Field &)
nearest neighbor hopping term: temporary entry [H.Matsufuru]
virtual double flop_count(const std::string mode)
returns the flop in giga unit for a specified mode. [23 May 2016 H.Matsufuru]
Fopr & operator=(const Fopr &)
void crucial(const char *format,...)
virtual void mult(Field &, const Field &)=0
multiplies fermion operator to a given field (2nd argument)
std::string IdentifierType
Factory template class.
virtual void mult_dag(Field &, const Field &)
hermitian conjugate of mult(Field&, const Field&).
Base class of fermion operator family.
virtual int field_nvol()=0
returns the volume for which the fermion operator is defined.