1 #ifndef POLYNOMIALFUNCTION_HH
2 #define POLYNOMIALFUNCTION_HH
17 class FunctionOperation;
18 class PolynomialFunction;
19 class OccupantFunction;
44 return "PolynomialFunction";
72 void scale(
double scale_factor);
void small_to_zero(double tol=TOL)
void scale(double scale_factor)
static int get_class_ID()
bool compare(Function const *LHS, Function const *RHS) const
Function * transform_monomial_and_add_new(double prefactor, const Array< Index > &ind, const SymOp &op, const std::vector< bool > &transform_flags)
double eval(const Array< Index > &dof_IDs, const Array< Index > &var_states) const
Function * subtract(Function const *LHS, Function const *RHS) const
Function * poly_remainder(Function const *LHS, Function const *RHS) const
double cache_deval(const DoF::RemoteHandle &dvar) const
double dot(Function const *LHS, Function const *RHS) const
double get_coefficient(Index i) const
static void fill_dispatch_table()
double frobenius_scalar_prod(const PolynomialFunction &RHS) const
Function * poly_remainder(const Variable *RHS) const
double leading_coefficient() const
Function * add_to(Function *LHS, Function const *RHS) const
double remote_deval(const DoF::RemoteHandle &dvar) const
Function * add(Function const *LHS, Function const *RHS) const
bool _accept(const FunctionVisitor &visitor, BasisSet const *home_basis_ptr=NULL)
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
double gaussian_integral_scalar_prod(const PolynomialFunction &RHS, double std_dev) const
Function * poly_quotient(Function const *LHS, Function const *RHS) const
Function * multiply_by(Function *LHS, Function const *RHS) const
EigenIndex Index
For long integer indexing:
const PolyTrie< double > & poly_coeffs() const
Function * poly_remainder(Function const *LHS, Function const *RHS) const
Function * _apply_sym(const SymOp &op)
void make_formula() const
Function * transform_monomial_and_add(double prefactor, const Array< Index > &ind, const SymOp &op)
Function * minus_equals(const PolynomialFunction *RHS)
Function * plus_equals(const PolynomialFunction *RHS)
bool compare(const PolynomialFunction *RHS) const
SparseTensor< double > const * get_coeffs() const
Function * poly_quotient(const Variable *RHS) const
PolyTrie< double > m_coeffs
double poly_eval(const Array< double > &arg_states) const
Function * apply_sym_coeffs(const SymOp &op, int dependency_layer)
bool depends_on(const Function *test_func) const
Function * multiply(Function const *LHS, Function const *RHS) const
Function * subtract_from(Function *LHS, Function const *RHS) const
double cache_eval() const
Function * poly_quotient(Function const *LHS, Function const *RHS) const
double box_integral_scalar_prod(const PolynomialFunction &RHS, double edge_length) const
double remote_eval() const
std::string type_name() const