gtsam 4.1.1
gtsam
gtsam::DecisionTree< L, Y >::Choice< L, Y > Class Template Reference
+ Inheritance diagram for gtsam::DecisionTree< L, Y >::Choice< L, Y >:

Public Member Functions

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...
 
- Public Member Functions inherited from gtsam::DecisionTree< L, Y >::Node
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
 

Static Public Member Functions

static NodePtr Unique (const ChoicePtr &f)
 If all branches of a choice node f are the same, just return a branch.
 

Additional Inherited Members

- Public Types inherited from gtsam::DecisionTree< L, Y >::Node
typedef boost::shared_ptr< const NodePtr
 

Member Function Documentation

◆ apply()

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::apply ( const Unary op) const
inlineoverridevirtual

apply unary operator

Implements gtsam::DecisionTree< L, Y >::Node.

◆ apply_f_op_g()

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::apply_f_op_g ( const Node g,
const Binary &  op 
) const
inlineoverridevirtual

◆ apply_g_op_fC()

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::apply_g_op_fC ( const Choice< L, Y > &  fC,
const Binary &  op 
) const
inlineoverridevirtual

◆ apply_g_op_fL()

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::apply_g_op_fL ( const Leaf fL,
const Binary &  op 
) const
inlineoverridevirtual

◆ choose()

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::choose ( const L &  label,
size_t  index 
) const
inlineoverridevirtual

choose a branch, recursively

Implements gtsam::DecisionTree< L, Y >::Node.

◆ dot()

template<typename L , typename Y >
template<typename L , typename Y >
void gtsam::DecisionTree< L, Y >::Choice< L, Y >::dot ( std::ostream &  os,
bool  showZero 
) const
inlineoverridevirtual

output to graphviz (as a a graph)

Implements gtsam::DecisionTree< L, Y >::Node.

◆ equals()

template<typename L , typename Y >
template<typename L , typename Y >
bool gtsam::DecisionTree< L, Y >::Choice< L, Y >::equals ( const Node q,
double  tol 
) const
inlineoverridevirtual

equality up to tolerance

Implements gtsam::DecisionTree< L, Y >::Node.

◆ isLeaf()

template<typename L , typename Y >
template<typename L , typename Y >
bool gtsam::DecisionTree< L, Y >::Choice< L, Y >::isLeaf ( ) const
inlineoverridevirtual

◆ operator()()

template<typename L , typename Y >
template<typename L , typename Y >
const Y & gtsam::DecisionTree< L, Y >::Choice< L, Y >::operator() ( const Assignment< L > &  x) const
inlineoverridevirtual

evaluate

Implements gtsam::DecisionTree< L, Y >::Node.

◆ print()

template<typename L , typename Y >
template<typename L , typename Y >
void gtsam::DecisionTree< L, Y >::Choice< L, Y >::print ( const std::string &  s) const
inlineoverridevirtual

print (as a tree)

Implements gtsam::DecisionTree< L, Y >::Node.

◆ sameLeaf() [1/2]

template<typename L , typename Y >
template<typename L , typename Y >
bool gtsam::DecisionTree< L, Y >::Choice< L, Y >::sameLeaf ( const Leaf q) const
inlineoverridevirtual

Choice-Leaf equality: always false.

Implements gtsam::DecisionTree< L, Y >::Node.

◆ sameLeaf() [2/2]

template<typename L , typename Y >
template<typename L , typename Y >
bool gtsam::DecisionTree< L, Y >::Choice< L, Y >::sameLeaf ( const Node q) const
inlineoverridevirtual

polymorphic equality: if q is a leaf, could be...

Implements gtsam::DecisionTree< L, Y >::Node.


The documentation for this class was generated from the following file: