CASM
AClustersApproachtoStatisticalMechanics
|
#include <PolynomialFunction.hh>
Definition at line 22 of file PolynomialFunction.hh.
Public Member Functions | |
PolynomialFunction () | |
PolynomialFunction (const std::vector< std::shared_ptr< BasisSet > > &_args) | |
PolynomialFunction (const std::vector< std::shared_ptr< BasisSet > > &_args, const PolyTrie< double > &_coeffs) | |
PolynomialFunction (const PolynomialFunction &RHS) | |
PolynomialFunction (const PolynomialFunction &RHS, const PolyTrie< double > &_coeffs) | |
PolynomialFunction (const PolynomialFunction &LHS, const PolynomialFunction &RHS) | |
SparseTensor< double > const * | get_coeffs () const |
const PolyTrie< double > & | poly_coeffs () const |
std::string | type_name () const |
Function * | copy () const |
Function * | copy (const PolyTrie< double > &new_coeffs) const |
bool | depends_on (const Function *test_func) const |
bool | is_zero () const |
void | small_to_zero (double tol=TOL) |
Index | num_terms () const |
double | leading_coefficient () const |
double | leading_coefficient (Index &index) const |
double | get_coefficient (Index i) const |
void | make_formula () const |
void | make_formula (double prefactor) const |
int | class_ID () const |
Function * | transform_monomial_and_add_new (double prefactor, const Array< Index > &ind, const SymOp &op, const std::vector< bool > &transform_flags) |
Function * | transform_monomial_and_add (double prefactor, const Array< Index > &ind, const SymOp &op) |
void | scale (double scale_factor) |
double | frobenius_scalar_prod (const PolynomialFunction &RHS) const |
double | box_integral_scalar_prod (const PolynomialFunction &RHS, double edge_length) const |
double | gaussian_integral_scalar_prod (const PolynomialFunction &RHS, double std_dev) const |
bool | compare (const PolynomialFunction *RHS) const |
bool | prune_zeros () |
Function * | plus_equals (const PolynomialFunction *RHS) |
Function * | minus_equals (const PolynomialFunction *RHS) |
double | remote_eval () const |
double | remote_deval (const DoF::RemoteHandle &dvar) const |
double | cache_eval () const |
double | cache_deval (const DoF::RemoteHandle &dvar) const |
double | eval (const Array< Index > &dof_IDs, const Array< Index > &var_states) const |
double | eval (const Array< Index > &dof_IDs, const Array< double > &arg_states) const |
double | poly_eval (const Array< double > &arg_states) const |
Function * | apply_sym_coeffs (const SymOp &op, int dependency_layer) |
Function * | poly_quotient (const Variable *RHS) const |
Function * | poly_remainder (const Variable *RHS) const |
Function * | poly_quotient (const OccupantFunction *RHS) const |
Function * | poly_remainder (const OccupantFunction *RHS) const |
void | refresh_ID () |
Index | ID () const |
Index | num_args () const |
std::string | formula () const |
std::string | tex_formula () const |
void | print (std::ostream &stream) const |
void | print_tex (std::ostream &stream) const |
void | set_label_format (const std::string &format) |
const std::string & | label_format () const |
void | set_formula (const std::string &new_formula) |
void | set_tex_formula (const std::string &new_formula) |
void | clear_formula () |
bool | accept (const FunctionVisitor &visitor, BasisSet const *home_basis_ptr=NULL) |
virtual Eigen::VectorXd const * | get_eigen_coeffs () const |
virtual int | register_remotes (const std::string &dof_name, const Array< DoF::RemoteHandle > &remote_handles) |
bool | update_dof_IDs (const Array< Index > &before_IDs, const Array< Index > &after_IDs) |
Function * | sym_copy_coeffs (const SymOp &op, int dependency_layer=1) const |
void | normalize () |
double | dot (Function const *RHS) const |
bool | shallow_compare (Function const *RHS) const |
bool | compare (Function const *RHS) const |
Function * | minus (Function const *RHS) const |
Function * | plus (Function const *RHS) const |
Function * | multiply (Function const *RHS) const |
Function * | poly_quotient (Function const *RHS) const |
Function * | poly_remainder (Function const *RHS) const |
Function * | minus_in_place (Function const *RHS) |
Function * | plus_in_place (Function const *RHS) |
void | set_arguments (const ArgumentContainer &new_arg) |
const ArgumentContainer & | argument_bases () const |
virtual jsonParser & | to_json (jsonParser &json) const |
Static Public Member Functions | |
static void | fill_dispatch_table () |
static int | sclass_ID () |
static void | print_table () |
Protected Types | |
typedef std::vector < std::shared_ptr< BasisSet > > | ArgumentContainer |
Protected Member Functions | |
Function * | _apply_sym (const SymOp &op) |
Function * | _apply_sym (const SymOp &op, const std::vector< bool > &transform_flags) |
bool | _accept (const FunctionVisitor &visitor, BasisSet const *home_basis_ptr=NULL) |
ReturnArray< SymGroupRepID > | _sub_sym_reps () const |
Function const * | _argument (Index i) const |
double | _arg_eval_cache (Index i) const |
double | _arg_deval_cache (Index i) const |
int | _dependency_layer () const |
virtual bool | _update_dof_IDs (const Array< Index > &before_IDs, const Array< Index > &after_IDs) |
Static Protected Member Functions | |
static void | extend_hierarchy () |
static int | new_class_ID () |
static int | get_class_ID () |
static int | new_class_ID () |
Protected Attributes | |
PolyTrie< double > | m_coeffs |
Index | func_ID |
ArgumentContainer | m_argument |
std::string | m_label_format |
Array< Index > | m_arg2sub |
Array< Index > | m_arg2fun |
std::string | m_formula |
std::string | m_tex_formula |
Static Protected Attributes | |
static Array< Array < InnerProduct * > > | inner_prod_table = Array<Array< InnerProduct * > > () |
static Array< Array < FunctionOperation * > > | operation_table = Array<Array< FunctionOperation * > > () |
|
protectedinherited |
Definition at line 46 of file BasisFunction.hh.
|
inline |
Definition at line 25 of file PolynomialFunction.hh.
CASM::PolynomialFunction::PolynomialFunction | ( | const std::vector< std::shared_ptr< BasisSet > > & | _args | ) |
Definition at line 16 of file PolynomialFunction.cc.
CASM::PolynomialFunction::PolynomialFunction | ( | const std::vector< std::shared_ptr< BasisSet > > & | _args, |
const PolyTrie< double > & | _coeffs | ||
) |
Definition at line 37 of file PolynomialFunction.cc.
CASM::PolynomialFunction::PolynomialFunction | ( | const PolynomialFunction & | RHS | ) |
Definition at line 127 of file PolynomialFunction.cc.
CASM::PolynomialFunction::PolynomialFunction | ( | const PolynomialFunction & | RHS, |
const PolyTrie< double > & | _coeffs | ||
) |
Definition at line 133 of file PolynomialFunction.cc.
CASM::PolynomialFunction::PolynomialFunction | ( | const PolynomialFunction & | LHS, |
const PolynomialFunction & | RHS | ||
) |
Definition at line 63 of file PolynomialFunction.cc.
|
protectedvirtual |
Implements CASM::Function.
Definition at line 156 of file PolynomialFunction.cc.
Implements CASM::Function.
Definition at line 395 of file PolynomialFunction.cc.
|
protected |
Definition at line 415 of file PolynomialFunction.cc.
|
protectedinherited |
Definition at line 129 of file BasisFunction.cc.
|
protectedinherited |
Definition at line 123 of file BasisFunction.cc.
Definition at line 117 of file BasisFunction.cc.
|
protectedinherited |
Definition at line 135 of file BasisFunction.cc.
|
protectedinherited |
Definition at line 107 of file BasisFunction.cc.
|
inlineprotectedvirtualinherited |
Reimplemented in CASM::Variable, and CASM::OccupantFunction.
Definition at line 257 of file BasisFunction.hh.
|
inherited |
Definition at line 150 of file BasisFunction.cc.
|
virtual |
Reimplemented from CASM::Function.
Definition at line 958 of file PolynomialFunction.cc.
|
inlineinherited |
Definition at line 174 of file BasisFunction.hh.
double CASM::PolynomialFunction::box_integral_scalar_prod | ( | const PolynomialFunction & | RHS, |
double | edge_length | ||
) | const |
Definition at line 882 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 743 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 723 of file PolynomialFunction.cc.
|
inlinevirtual |
Implements CASM::Function.
Definition at line 63 of file PolynomialFunction.hh.
|
inlineinherited |
Definition at line 86 of file BasisFunction.hh.
bool CASM::PolynomialFunction::compare | ( | const PolynomialFunction * | RHS | ) | const |
Definition at line 936 of file PolynomialFunction.cc.
|
inherited |
Definition at line 47 of file BasisFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 144 of file PolynomialFunction.cc.
Definition at line 150 of file PolynomialFunction.cc.
|
virtual |
Reimplemented from CASM::Function.
Definition at line 161 of file PolynomialFunction.cc.
|
inherited |
Definition at line 24 of file BasisFunction.cc.
|
virtual |
Reimplemented from CASM::Function.
Definition at line 784 of file PolynomialFunction.cc.
|
virtual |
Reimplemented from CASM::Function.
Definition at line 800 of file PolynomialFunction.cc.
|
inlinestaticprotectedinherited |
Definition at line 194 of file BasisFunction.hh.
|
static |
Definition at line 361 of file PolynomialFunction.cc.
|
inherited |
Definition at line 227 of file BasisFunction.cc.
double CASM::PolynomialFunction::frobenius_scalar_prod | ( | const PolynomialFunction & | RHS | ) | const |
Definition at line 844 of file PolynomialFunction.cc.
double CASM::PolynomialFunction::gaussian_integral_scalar_prod | ( | const PolynomialFunction & | RHS, |
double | std_dev | ||
) | const |
|
inlinestaticprotectedinherited |
Definition at line 32 of file HierarchyID.hh.
|
virtual |
Implements CASM::Function.
Definition at line 233 of file PolynomialFunction.cc.
|
virtual |
Reimplemented from CASM::Function.
Definition at line 381 of file PolynomialFunction.cc.
|
inlinevirtualinherited |
Reimplemented in CASM::OccupantFunction.
Definition at line 119 of file BasisFunction.hh.
|
inlineinherited |
Definition at line 59 of file BasisFunction.hh.
|
virtual |
Implements CASM::Function.
Definition at line 185 of file PolynomialFunction.cc.
|
inlineinherited |
Definition at line 76 of file BasisFunction.hh.
|
virtual |
Implements CASM::Function.
Definition at line 213 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 220 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 249 of file PolynomialFunction.cc.
void CASM::PolynomialFunction::make_formula | ( | double | prefactor | ) | const |
Definition at line 70 of file BasisFunction.cc.
Function * CASM::PolynomialFunction::minus_equals | ( | const PolynomialFunction * | RHS | ) |
Definition at line 930 of file PolynomialFunction.cc.
Definition at line 98 of file BasisFunction.cc.
Definition at line 85 of file BasisFunction.cc.
|
inlinestaticprotectedinherited |
Definition at line 17 of file HierarchyID.hh.
|
inlinestaticprotectedinherited |
Definition at line 17 of file HierarchyID.hh.
|
inherited |
Definition at line 29 of file BasisFunction.cc.
|
inlineinherited |
Definition at line 63 of file BasisFunction.hh.
|
virtual |
Implements CASM::Function.
Definition at line 201 of file PolynomialFunction.cc.
Definition at line 65 of file BasisFunction.cc.
Function * CASM::PolynomialFunction::plus_equals | ( | const PolynomialFunction * | RHS | ) |
Definition at line 952 of file PolynomialFunction.cc.
Definition at line 90 of file BasisFunction.cc.
|
inline |
Definition at line 39 of file PolynomialFunction.hh.
double CASM::PolynomialFunction::poly_eval | ( | const Array< double > & | arg_states | ) | const |
Definition at line 818 of file PolynomialFunction.cc.
Definition at line 972 of file PolynomialFunction.cc.
Function * CASM::PolynomialFunction::poly_quotient | ( | const OccupantFunction * | RHS | ) | const |
Definition at line 1029 of file PolynomialFunction.cc.
Definition at line 75 of file BasisFunction.cc.
Definition at line 1002 of file PolynomialFunction.cc.
Function * CASM::PolynomialFunction::poly_remainder | ( | const OccupantFunction * | RHS | ) | const |
Definition at line 1058 of file PolynomialFunction.cc.
Definition at line 80 of file BasisFunction.cc.
|
inherited |
Definition at line 173 of file BasisFunction.cc.
|
inlinestaticinherited |
Definition at line 178 of file BasisFunction.hh.
|
inherited |
Definition at line 182 of file BasisFunction.cc.
bool CASM::PolynomialFunction::prune_zeros | ( | ) |
Definition at line 948 of file PolynomialFunction.cc.
|
inherited |
Definition at line 167 of file BasisFunction.cc.
|
virtualinherited |
Reimplemented in CASM::Variable, and CASM::OccupantFunction.
Definition at line 199 of file BasisFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 682 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 658 of file PolynomialFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 387 of file PolynomialFunction.cc.
|
inlinestatic |
Definition at line 66 of file PolynomialFunction.hh.
|
inlineinherited |
Definition at line 169 of file BasisFunction.hh.
|
inlineinherited |
Definition at line 79 of file BasisFunction.hh.
|
inlineinherited |
Definition at line 73 of file BasisFunction.hh.
|
inlineinherited |
Definition at line 83 of file BasisFunction.hh.
|
inherited |
Definition at line 41 of file BasisFunction.cc.
|
virtual |
Implements CASM::Function.
Definition at line 196 of file PolynomialFunction.cc.
|
inherited |
Definition at line 192 of file BasisFunction.cc.
|
inherited |
Definition at line 237 of file BasisFunction.cc.
|
virtualinherited |
Reimplemented in CASM::Variable, and CASM::OccupantFunction.
Definition at line 347 of file BasisFunction.cc.
Function * CASM::PolynomialFunction::transform_monomial_and_add | ( | double | prefactor, |
const Array< Index > & | ind, | ||
const SymOp & | op | ||
) |
Definition at line 435 of file PolynomialFunction.cc.
Function * CASM::PolynomialFunction::transform_monomial_and_add_new | ( | double | prefactor, |
const Array< Index > & | ind, | ||
const SymOp & | op, | ||
const std::vector< bool > & | transform_flags | ||
) |
Definition at line 561 of file PolynomialFunction.cc.
|
inlinevirtual |
Implements CASM::Function.
Definition at line 43 of file PolynomialFunction.hh.
|
inherited |
Definition at line 210 of file BasisFunction.cc.
|
protectedinherited |
Definition at line 204 of file BasisFunction.hh.
|
staticprotectedinherited |
Definition at line 190 of file BasisFunction.hh.
Definition at line 229 of file BasisFunction.hh.
Definition at line 228 of file BasisFunction.hh.
|
protectedinherited |
Definition at line 206 of file BasisFunction.hh.
|
protected |
Definition at line 127 of file PolynomialFunction.hh.
|
mutableprotectedinherited |
Definition at line 232 of file BasisFunction.hh.
|
protectedinherited |
m_label_format sets the label format used to generate a label string for a Function object. It is specified as a string of the form (substr1 + "%a" + substr2 + "%b" + substr3 + ... ), where "%a" and "%b" are flags that specify object-specific values. The following flags are allowed:
Definition at line 220 of file BasisFunction.hh.
|
mutableprotectedinherited |
Definition at line 232 of file BasisFunction.hh.
|
staticprotectedinherited |
Definition at line 191 of file BasisFunction.hh.