dcsam
Factored inference for discrete-continuous smoothing and mapping
dcsam::DCDiscreteFactor Class Reference

Implementation of a discrete-continuous factor. This is used internally within the DCSAM solver. Essentially this class wraps a DCFactor (given as argument) into a discrete factor (gtsam::DiscreteFactor) that can be passed to GTSAM for discrete optimization with a fixed assignment to continuous variables. More...

#include <DCDiscreteFactor.h>

Inheritance diagram for dcsam::DCDiscreteFactor:
Collaboration diagram for dcsam::DCDiscreteFactor:

Public Types

using Base = gtsam::DiscreteFactor
 

Public Member Functions

 DCDiscreteFactor ()=default
 
 DCDiscreteFactor (const gtsam::DiscreteKeys &discreteKeys, boost::shared_ptr< DCFactor > dcfactor)
 
 DCDiscreteFactor (boost::shared_ptr< DCFactor > dcfactor)
 
DCDiscreteFactoroperator= (const DCDiscreteFactor &rhs)
 
virtual ~DCDiscreteFactor ()=default
 
bool equals (const DiscreteFactor &other, double tol=1e-9) const override
 
gtsam::DecisionTreeFactor toDecisionTreeFactor () const override
 
gtsam::DecisionTreeFactor operator* (const gtsam::DecisionTreeFactor &f) const override
 
double operator() (const DiscreteValues &values) const override
 
void updateContinuous (const gtsam::Values &continuousVals)
 
void updateDiscrete (const DiscreteValues &discreteVals)
 
bool allInitialized () const
 
std::string markdown (const gtsam::KeyFormatter &keyFormatter, const Names &names) const override
 
std::string html (const gtsam::KeyFormatter &keyFormatter, const Names &names) const override
 

Detailed Description

Implementation of a discrete-continuous factor. This is used internally within the DCSAM solver. Essentially this class wraps a DCFactor (given as argument) into a discrete factor (gtsam::DiscreteFactor) that can be passed to GTSAM for discrete optimization with a fixed assignment to continuous variables.

After running an iteration of discrete optimization (and separately, continuous optimization), the updateContinuous function is used to ensure the stored continuous value assignment matches the most recent estimate for continuous variables.

The continuous analogue is DCContinuousFactor.

Member Typedef Documentation

◆ Base

using dcsam::DCDiscreteFactor::Base = gtsam::DiscreteFactor

Constructor & Destructor Documentation

◆ DCDiscreteFactor() [1/3]

dcsam::DCDiscreteFactor::DCDiscreteFactor ( )
default

◆ DCDiscreteFactor() [2/3]

dcsam::DCDiscreteFactor::DCDiscreteFactor ( const gtsam::DiscreteKeys &  discreteKeys,
boost::shared_ptr< DCFactor dcfactor 
)
inline

◆ DCDiscreteFactor() [3/3]

dcsam::DCDiscreteFactor::DCDiscreteFactor ( boost::shared_ptr< DCFactor dcfactor)
inlineexplicit

◆ ~DCDiscreteFactor()

virtual dcsam::DCDiscreteFactor::~DCDiscreteFactor ( )
virtualdefault

Member Function Documentation

◆ allInitialized()

bool dcsam::DCDiscreteFactor::allInitialized ( ) const
inline

◆ equals()

bool dcsam::DCDiscreteFactor::equals ( const DiscreteFactor &  other,
double  tol = 1e-9 
) const
inlineoverride

◆ html()

std::string dcsam::DCDiscreteFactor::html ( const gtsam::KeyFormatter &  keyFormatter,
const Names &  names 
) const
inlineoverride

◆ markdown()

std::string dcsam::DCDiscreteFactor::markdown ( const gtsam::KeyFormatter &  keyFormatter,
const Names &  names 
) const
inlineoverride

◆ operator()()

double dcsam::DCDiscreteFactor::operator() ( const DiscreteValues values) const
inlineoverride

◆ operator*()

gtsam::DecisionTreeFactor dcsam::DCDiscreteFactor::operator* ( const gtsam::DecisionTreeFactor &  f) const
inlineoverride

◆ operator=()

DCDiscreteFactor& dcsam::DCDiscreteFactor::operator= ( const DCDiscreteFactor rhs)
inline

◆ toDecisionTreeFactor()

gtsam::DecisionTreeFactor dcsam::DCDiscreteFactor::toDecisionTreeFactor ( ) const
inlineoverride

◆ updateContinuous()

void dcsam::DCDiscreteFactor::updateContinuous ( const gtsam::Values &  continuousVals)
inline

◆ updateDiscrete()

void dcsam::DCDiscreteFactor::updateDiscrete ( const DiscreteValues discreteVals)
inline

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