GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Types | Protected Attributes | List of all members
gtsam::DiscreteFactor Class Referenceabstract

#include <DiscreteFactor.h>

Inheritance diagram for gtsam::DiscreteFactor:
Inheritance graph
[legend]
Collaboration diagram for gtsam::DiscreteFactor:
Collaboration graph
[legend]

Public Types

typedef DiscreteFactor This
 This class.
 
typedef std::shared_ptr< DiscreteFactorshared_ptr
 shared_ptr to this class
 
typedef Factor Base
 Our base class.
 
using Values = DiscreteValues
 backwards compatibility
 
typedef KeyVector::iterator iterator
 Iterator over keys.
 
typedef KeyVector::const_iterator const_iterator
 Const iterator over keys.
 

Public Member Functions

Standard Constructors
 DiscreteFactor ()
 
template<typename CONTAINER >
 DiscreteFactor (const CONTAINER &keys)
 
Testable
virtual bool equals (const DiscreteFactor &lf, double tol=1e-9) const =0
 equals
 
void print (const std::string &s="DiscreteFactor\, const KeyFormatter &formatter=DefaultKeyFormatter) const override
 print
 
Standard Interface
virtual double operator() (const DiscreteValues &) const =0
 Find value for given assignment of values to variables.
 
double error (const DiscreteValues &values) const
 Error is just -log(value)
 
double error (const HybridValues &c) const override
 
virtual DecisionTreeFactor operator* (const DecisionTreeFactor &) const =0
 Multiply in a DecisionTreeFactor and return the result as DecisionTreeFactor.
 
virtual DecisionTreeFactor toDecisionTreeFactor () const =0
 
Standard Interface
bool empty () const
 Whether the factor is empty (involves zero variables).
 
Key front () const
 First key.
 
Key back () const
 Last key.
 
const_iterator find (Key key) const
 find
 
const KeyVectorkeys () const
 Access the factor's involved variable keys.
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
Advanced Interface
KeyVectorkeys ()
 
iterator begin ()
 
iterator end ()
 
Testable
virtual void printKeys (const std::string &s="Factor", const KeyFormatter &formatter=DefaultKeyFormatter) const
 print only keys
 
bool equals (const This &other, double tol=1e-9) const
 check equality
 

Static Protected Member Functions

Standard Constructors
template<typename CONTAINER >
static Factor FromKeys (const CONTAINER &keys)
 
template<typename ITERATOR >
static Factor FromIterators (ITERATOR first, ITERATOR last)
 

Protected Attributes

KeyVector keys_
 The keys involved in this factor.
 

Wrapper support

using Names = DiscreteValues::Names
 Translation table from values to strings.
 
virtual std::string markdown (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const =0
 Render as markdown table. More...
 
virtual std::string html (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const =0
 Render as html table. More...
 

Detailed Description

Base class for discrete probabilistic factors The most general one is the derived DecisionTreeFactor

DecisionTreeFactor, which represent a discrete distribution over a set of variables.

Constructor & Destructor Documentation

◆ DiscreteFactor() [1/2]

gtsam::DiscreteFactor::DiscreteFactor ( )
inline

Default constructor creates empty factor

◆ DiscreteFactor() [2/2]

template<typename CONTAINER >
gtsam::DiscreteFactor::DiscreteFactor ( const CONTAINER &  keys)
inline

Construct from container of keys. This constructor is used internally from derived factor constructors, either from a container of keys or from a boost::assign::list_of.

Member Function Documentation

◆ begin() [1/2]

const_iterator gtsam::Factor::begin ( ) const
inlineinherited

Iterator at beginning of involved variable keys

◆ begin() [2/2]

iterator gtsam::Factor::begin ( )
inlineinherited

Iterator at beginning of involved variable keys

◆ end() [1/2]

const_iterator gtsam::Factor::end ( ) const
inlineinherited

Iterator at end of involved variable keys

◆ end() [2/2]

iterator gtsam::Factor::end ( )
inlineinherited

Iterator at end of involved variable keys

◆ error()

double gtsam::DiscreteFactor::error ( const HybridValues c) const
overridevirtual

All factor types need to implement an error function. In factor graphs, this is the negative log-likelihood.

Reimplemented from gtsam::Factor.

◆ FromIterators()

template<typename ITERATOR >
static Factor gtsam::Factor::FromIterators ( ITERATOR  first,
ITERATOR  last 
)
inlinestaticprotectedinherited

Construct factor from iterator keys. This is called internally from derived factor static factor methods, as a workaround for not being able to call the protected constructors above.

◆ FromKeys()

template<typename CONTAINER >
static Factor gtsam::Factor::FromKeys ( const CONTAINER &  keys)
inlinestaticprotectedinherited

Construct factor from container of keys. This is called internally from derived factor static factor methods, as a workaround for not being able to call the protected constructors above.

◆ html()

virtual std::string gtsam::DiscreteFactor::html ( const KeyFormatter keyFormatter = DefaultKeyFormatter,
const Names names = {} 
) const
pure virtual

Render as html table.

Parameters
keyFormatterGTSAM-style Key formatter.
namesoptional, category names corresponding to choices.
Returns
std::string a html string.

Implemented in gtsam::DecisionTreeFactor, gtsam::DiscreteConditional, and gtsam::Constraint.

◆ keys()

KeyVector& gtsam::Factor::keys ( )
inlineinherited
Returns
keys involved in this factor

◆ markdown()

virtual std::string gtsam::DiscreteFactor::markdown ( const KeyFormatter keyFormatter = DefaultKeyFormatter,
const Names names = {} 
) const
pure virtual

Render as markdown table.

Parameters
keyFormatterGTSAM-style Key formatter.
namesoptional, category names corresponding to choices.
Returns
std::string a markdown string.

Implemented in gtsam::DecisionTreeFactor, gtsam::DiscreteConditional, and gtsam::Constraint.

◆ size()

size_t gtsam::Factor::size ( ) const
inlineinherited
Returns
the number of variables involved in this factor

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