gtsam 4.2.0
gtsam
gtsam::DecisionTree< L, Y >::Choice< L, Y > Struct Template Reference
+ Inheritance diagram for gtsam::DecisionTree< L, Y >::Choice< L, Y >:

Public Member Functions

 Choice ()
 Default constructor for serialization.
 
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
 Return the label of this choice node.
 
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 LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter) const override
 print (as a tree). More...
 
void dot (std::ostream &os, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, 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, const CompareFunc &compare) const override
 equality 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.
 
 Choice (const L &label, const Choice &f, const UnaryAssignment &op, const Assignment< L > &assignment)
 Constructor which accepts a UnaryAssignment op and the corresponding assignment. More...
 
NodePtr apply (const Unary &op) const override
 apply unary operator. More...
 
NodePtr apply (const UnaryAssignment &op, const Assignment< L > &assignment) const override
 Apply unary operator with assignment. 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 LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter) const =0
 
virtual void dot (std::ostream &os, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, 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, const CompareFunc &compare=&DefaultCompare) const =0
 
virtual const Y & operator() (const Assignment< L > &x) const =0
 
virtual Ptr apply (const Unary &op) const =0
 
virtual Ptr apply (const UnaryAssignment &op, const Assignment< L > &assignment) 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.
 

Public Attributes

label_
 the label of the variable on which we split
 
std::vector< NodePtrbranches_
 The children of this Choice node.
 

Additional Inherited Members

- Public Types inherited from gtsam::DecisionTree< L, Y >::Node
using Ptr = boost::shared_ptr< const Node >
 

Constructor & Destructor Documentation

◆ Choice()

template<typename L , typename Y >
template<typename L , typename Y >
gtsam::DecisionTree< L, Y >::Choice< L, Y >::Choice ( const L &  label,
const Choice< L, Y > &  f,
const UnaryAssignment &  op,
const Assignment< L > &  assignment 
)
inline

Constructor which accepts a UnaryAssignment op and the corresponding assignment.

Parameters
labelThe label for this node.
fThe original choice node to apply the op on.
opFunction to apply on the choice node. Takes Assignment and value as arguments.
assignmentThe Assignment that will go to op.

Member Function Documentation

◆ apply() [1/2]

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() [2/2]

template<typename L , typename Y >
template<typename L , typename Y >
NodePtr gtsam::DecisionTree< L, Y >::Choice< L, Y >::apply ( const UnaryAssignment &  op,
const Assignment< L > &  assignment 
) const
inlineoverridevirtual

Apply unary operator with assignment.

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,
const LabelFormatter &  labelFormatter,
const ValueFormatter &  valueFormatter,
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,
const CompareFunc &  compare 
) const
inlineoverridevirtual

equality

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 LabelFormatter &  labelFormatter,
const ValueFormatter &  valueFormatter 
) 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 struct was generated from the following file: