1 #ifndef FUNCTIONVISITOR_HH
2 #define FUNCTIONVISITOR_HH
16 class PolynomialFunction;
17 class OccupantFunction;
22 namespace FunctionLabel_impl {
82 std::string
type_name()
const {
return "OccFuncLabeler"; }
95 std::string
type_name()
const {
return "OccFuncBasisIndexer"; }
108 std::string
type_name()
const {
return "OccFuncEvaluator"; }
116 throw std::runtime_error(
117 "OccFuncEvaluator can only be applied to OccupantFunction!");
141 std::string
type_name()
const {
return "VariableLabeler"; }
154 const std::string &_template);
158 std::string
type_name()
const {
return "SubExpressionLabeler"; }
164 throw std::runtime_error(
165 "Application of a SubExpressionLabeler to a const Function is not "
virtual bool _visit(const Array< Function * > &host_list, BasisSet const *bset_ptr) const
virtual bool visit(Variable const &host, BasisSet const *bset_ptr) const
virtual bool _generic_visit(Function &host, BasisSet const *bset_ptr) const
virtual std::string type_name() const =0
virtual ~FunctionVisitor()
OccFuncBasisIndexer(int _new_index)
bool visit(OccupantFunction &host, BasisSet const *bset_ptr) const
std::string type_name() const
bool _generic_visit(Function const &host, BasisSet const *bset_ptr) const
OccFuncEvaluator(int state)
bool visit(OccupantFunction &host, BasisSet const *bset_ptr) const
std::string type_name() const
std::string type_name() const
OccFuncLabeler(const std::string &_template)
std::vector< std::string > m_sub_strings
bool visit(OccupantFunction &host, BasisSet const *bset_ptr) const
SubExpressionLabeler(const std::string &_bset_name, const std::string &_template)
bool _generic_visit(Function const &host, BasisSet const *bset_ptr) const
SubExpressionLabeler(SubExpressionLabeler const &)=default
std::string type_name() const
std::vector< std::string > m_sub_strings
bool _generic_visit(Function &host, BasisSet const *bset_ptr) const
VariableLabeler(std::string const &m_type_name, std::string const &_template)
std::vector< std::string > m_sub_strings
bool visit(Variable &host, BasisSet const *bset_ptr) const
std::string type_name() const
std::pair< bool, std::string > make_label(Function const &host, BasisSet const *bset_ptr)