GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
gtsam::DecisionTree< L, Y >::Choice< L, Y > Struct Template Reference
Inheritance diagram for gtsam::DecisionTree< L, Y >::Choice< L, Y >:
Inheritance graph
[legend]
Collaboration diagram for gtsam::DecisionTree< L, Y >::Choice< L, Y >:
Collaboration graph
[legend]

Public Types

using Ptr = std::shared_ptr< const Node >
 

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)
 
void print (const std::string &s, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter) const override
 print (as a tree).
 
void dot (std::ostream &os, const LabelFormatter &labelFormatter, const ValueFormatter &valueFormatter, bool showZero) const override
 
bool sameLeaf (const Leaf &q) const override
 Choice-Leaf equality: always false.
 
bool sameLeaf (const Node &q) const override
 polymorphic equality: if q is a leaf, could be...
 
bool equals (const Node &q, const CompareFunc &compare) const override
 equality
 
const Y & operator() (const Assignment< L > &x) const override
 evaluate
 
 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.
 
NodePtr apply (const UnaryAssignment &op, const Assignment< L > &assignment) const override
 Apply unary operator with assignment.
 
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
 
const void * id () const
 

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_
 
std::vector< NodePtrbranches_
 

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

◆ 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.

◆ push_back()

template<typename L, typename Y>
template<typename L , typename Y >
void gtsam::DecisionTree< L, Y >::Choice< L, Y >::push_back ( const NodePtr node)
inline

add a branch: TODO merge into constructor

Member Data Documentation

◆ branches_

template<typename L, typename Y>
template<typename L , typename Y >
std::vector<NodePtr> gtsam::DecisionTree< L, Y >::Choice< L, Y >::branches_

The children of this Choice node.

◆ label_

template<typename L, typename Y>
template<typename L , typename Y >
L gtsam::DecisionTree< L, Y >::Choice< L, Y >::label_

the label of the variable on which we split


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