|
bool | isLeaf () const override |
|
| Choice (const L &label, size_t count) |
| Constructor, given choice label and mandatory expected branch count.
|
|
| Choice (const Choice &f, const Choice &g, const Binary &op) |
| Construct from applying binary op to two Choice nodes.
|
|
const L & | label () const |
|
size_t | nrChoices () const |
|
const std::vector< NodePtr > & | branches () const |
|
void | push_back (const NodePtr &node) |
| add a branch: TODO merge into constructor
|
|
void | print (const std::string &s) const override |
| print (as a tree) More...
|
|
void | dot (std::ostream &os, bool showZero) const override |
| output to graphviz (as a a graph) More...
|
|
bool | sameLeaf (const Leaf &q) const override |
| Choice-Leaf equality: always false. More...
|
|
bool | sameLeaf (const Node &q) const override |
| polymorphic equality: if q is a leaf, could be... More...
|
|
bool | equals (const Node &q, double tol) const override |
| equality up to tolerance More...
|
|
const Y & | operator() (const Assignment< L > &x) const override |
| evaluate More...
|
|
| Choice (const L &label, const Choice &f, const Unary &op) |
| Construct from applying unary op to a Choice node.
|
|
NodePtr | apply (const Unary &op) const override |
| apply unary operator More...
|
|
NodePtr | apply_f_op_g (const Node &g, const Binary &op) const override |
|
NodePtr | apply_g_op_fL (const Leaf &fL, const Binary &op) const override |
|
NodePtr | apply_g_op_fC (const Choice &fC, const Binary &op) const override |
|
template<typename OP > |
NodePtr | apply_fC_op_gL (const Leaf &gL, OP op) const |
|
NodePtr | choose (const L &label, size_t index) const override |
| choose a branch, recursively More...
|
|
const void * | id () const |
|
virtual void | print (const std::string &s="") const =0 |
|
virtual void | dot (std::ostream &os, bool showZero) const =0 |
|
virtual bool | sameLeaf (const Leaf &q) const =0 |
|
virtual bool | sameLeaf (const Node &q) const =0 |
|
virtual bool | equals (const Node &other, double tol=1e-9) const =0 |
|
virtual const Y & | operator() (const Assignment< L > &x) const =0 |
|
virtual Ptr | apply (const Unary &op) const =0 |
|
virtual Ptr | apply_f_op_g (const Node &, const Binary &) const =0 |
|
virtual Ptr | apply_g_op_fL (const Leaf &, const Binary &) const =0 |
|
virtual Ptr | apply_g_op_fC (const Choice &, const Binary &) const =0 |
|
virtual Ptr | choose (const L &label, size_t index) const =0 |
|
virtual bool | isLeaf () const =0 |
|