17namespace layer1_foundations {
18namespace expression_parser {
78 int f_v = (verbose_level >= 1);
81 cout <<
"syntax_tree_node::split_by_monomials" << endl;
82 cout <<
"syntax_tree_node::split_by_monomials Node " <<
idx << endl;
90 cout <<
"syntax_tree_node::split_by_monomials checking multiplication node" << endl;
99 cout <<
"syntax_tree_node::split_by_monomials splitting subtree" << endl;
110 int f_v = (verbose_level >= 1);
114 cout <<
"syntax_tree_node::is_homogeneous Node " <<
idx << endl;
122 cout <<
"checking multiplication node" << endl;
129 cout <<
"syntax_tree_node::is_homogeneous node " <<
idx <<
" has degree " << deg << endl;
134 cout <<
"syntax_tree_node::is_homogeneous node " <<
idx <<
" setting degree to " << degree << endl;
140 cout <<
"syntax_tree_node::is_homogeneous node " <<
idx <<
" has degree " << deg <<
" which is different from " << degree <<
", so not homogeneous" << endl;
151 cout <<
"checking subtree" << endl;
169 ost <<
"Node " <<
idx <<
": ";
172 ost <<
"is terminal" << std::endl;
177 ost <<
"with " <<
nb_nodes <<
" descendants" << std::endl;
178 ost <<
"f_has_minus = " <<
f_has_minus << std::endl;
181 ost <<
"Node " <<
idx <<
", descendant " << i <<
" is node " <<
Nodes[i]->
idx << std::endl;
184 ost <<
"detailed list:" << std::endl;
186 ost <<
"Node " <<
idx <<
", descendant " << i <<
" is node " <<
Nodes[i]->
idx << std::endl;
201 int f_v = (verbose_level >= 1);
206 cout <<
"syntax_tree_node::evaluate" << endl;
209 a =
T->
evaluate(symbol_table, F, verbose_level);
240 cout <<
"syntax_tree_node::evaluate unknown operation" << endl;
247 cout <<
"syntax_tree_node::evaluate done, value = " << a << endl;
323 ost <<
"Node " <<
idx <<
": ";
326 ost <<
"is terminal" << std::endl;
331 ost <<
"with " <<
nb_nodes <<
" descendants" << std::endl;
334 ost <<
"Node " <<
idx <<
", descendant " << i <<
" is node " <<
Nodes[i]->
idx << std::endl;
344 ost <<
"graph " << name <<
" {" << std::endl;
348 ost <<
"}" << std::endl;
358 ost <<
idx <<
" [label=\"";
360 ost <<
"\" ] ;" << std::endl;
364 ost <<
idx <<
" [label=\"";
378 cout <<
"syntax_tree_node::export_graphviz_recursion unknown operation" << endl;
382 ost <<
"\" ] ;" << std::endl;
386 ost <<
idx <<
" -- " <<
Nodes[i]->
idx << std::endl;
void print_graphviz(std::ostream &ost)
void print(std::ostream &ost)
int evaluate(std::map< std::string, std::string > &symbol_table, field_theory::finite_field *F, int verbose_level)
interior node in a syntax tree
void print(std::ostream &ost)
syntax_tree_node * Nodes[MAX_NODES_SYNTAX_TREE]
int evaluate(std::map< std::string, std::string > &symbol_table, field_theory::finite_field *F, int verbose_level)
void split_by_monomials(ring_theory::homogeneous_polynomial_domain *Poly, syntax_tree_node **Subtrees, int verbose_level)
enum syntax_tree_node_operation_type type
void export_graphviz(std::string &name, std::ostream &ost)
void print_without_recursion(std::ostream &ost)
void export_graphviz_recursion(std::ostream &ost)
syntax_tree_node_terminal * T
void print_expression(std::ostream &ost)
int is_homogeneous(int °ree, int verbose_level)
void print_monomial(std::ostream &ost, int *monomial)
std::vector< std::string > managed_variables
int syntax_tree_node_index
homogeneous polynomials of a given degree in a given number of variables over a finite field GF(q)
int index_of_monomial(int *v)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects