gtsam
Loading...
Searching...
No Matches
gtsam::SingleValue Class Reference

Detailed Description

SingleValue constraint: ensures a variable takes on a certain value.

This could of course also be implemented by changing its Domain.

Inheritance diagram for gtsam::SingleValue:

Public Member Functions

 SingleValue (Key key, size_t n, size_t value)
 Construct from key, cardinality, and given value.
 SingleValue (const DiscreteKey &dkey, size_t value)
 Construct from DiscreteKey and given value.
void print (const std::string &s="", const KeyFormatter &formatter=DefaultKeyFormatter) const override
 Print the constraint.
bool equals (const DiscreteFactor &other, double tol) const override
 Return whether another factor is an equal constraint.
double evaluate (const Assignment< Key > &values) const override
 Calculate value.
DecisionTreeFactor toDecisionTreeFactor () const override
 Convert into a decisiontree.
DecisionTreeFactor operator* (const DecisionTreeFactor &f) const override
 Multiply into a decisiontree.
bool ensureArcConsistency (Key j, Domains *domains) const override
 Ensure Arc-consistency: just sets domain[j] to {value_}.
Constraint::shared_ptr partiallyApply (const DiscreteValues &values) const override
 Partially apply known values.
Constraint::shared_ptr partiallyApply (const Domains &domains) const override
 Partially apply known values, domain version.
Public Member Functions inherited from gtsam::Constraint
 Constraint ()
 Default constructor for I/O.
 ~Constraint () override
 Virtual destructor.
virtual DiscreteFactor::shared_ptr operator* (double s) const override
 Multiply by a scalar.
DiscreteFactor::shared_ptr operator/ (const DiscreteFactor::shared_ptr &df) const override
 divide by DiscreteFactor::shared_ptr f (safely)
uint64_t nrValues () const override
 Get the number of non-zero values contained in this factor.
DiscreteFactor::shared_ptr sum (size_t nrFrontals) const override
 Create new factor by summing all values with the same separator values.
DiscreteFactor::shared_ptr sum (const Ordering &keys) const override
 Create new factor by summing all values with the same separator values.
double max () const override
 Find the max value.
DiscreteFactor::shared_ptr max (size_t nrFrontals) const override
 Create new factor by maximizing over all values with the same separator.
DiscreteFactor::shared_ptr max (const Ordering &keys) const override
 Create new factor by maximizing over all values with the same separator.
AlgebraicDecisionTree< Key > errorTree () const override
 Compute error for each assignment and return as a tree.
DiscreteFactor::shared_ptr restrict (const DiscreteValues &assignment) const override
 Compute error for each assignment and return as a tree.
std::string markdown (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as markdown table.
std::string html (const KeyFormatter &keyFormatter=DefaultKeyFormatter, const Names &names={}) const override
 Render as html table.
Public Member Functions inherited from gtsam::DiscreteFactor
 DiscreteFactor ()
 Default constructor creates empty factor.
template<typename CONTAINER>
 DiscreteFactor (const CONTAINER &keys, const std::map< Key, size_t > cardinalities={})
 Construct from container of keys and map of cardinalities.
DiscreteKeys discreteKeys () const
 Return all the discrete keys associated with this factor.
std::map< Key, size_t > cardinalities () const
size_t cardinality (Key j) const
double operator() (const DiscreteValues &values) const
 Find value for given assignment of values to variables.
virtual double error (const DiscreteValues &values) const
 Error is just -log(value).
double error (const HybridValues &c) const override
 All factor types need to implement an error function.
virtual DiscreteFactor::shared_ptr multiply (const DiscreteFactor::shared_ptr &df) const
 Multiply in a DiscreteFactor and return the result as DiscreteFactor, both via shared pointers.
virtual TableFactor toTableFactor () const
 Convert to a sparse table, falling back through a decision tree.
DiscreteFactor::shared_ptr scale () const
 Scale the factor values by the maximum to prevent underflow/overflow.
Public Member Functions inherited from gtsam::Factor
virtual ~Factor ()=default
 Default destructor.
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 KeyVector & keys () const
 Access the factor's involved variable keys.
const_iterator begin () const
 Iterator at beginning of involved variable keys.
const_iterator end () const
 Iterator at end of involved variable keys.
size_t size () const
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
KeyVector & keys ()
iterator begin ()
 Iterator at beginning of involved variable keys.
iterator end ()
 Iterator at end of involved variable keys.

Public Types

typedef std::shared_ptr< SingleValue > shared_ptr
Public Types inherited from gtsam::Constraint
typedef std::shared_ptr< Constraint > shared_ptr
Public Types inherited from gtsam::DiscreteFactor
typedef DiscreteFactor This
 This class.
typedef std::shared_ptr< DiscreteFactor > shared_ptr
 shared_ptr to this class
typedef Factor Base
 Our base class.
using Values = DiscreteValues
 backwards compatibility
using Unary = std::function<double(const double&)>
using UnaryAssignment
using Binary = std::function<double(const double, const double)>
using Names = DiscreteValues::Names
 Translation table from values to strings.
Public Types inherited from gtsam::Factor
typedef KeyVector::iterator iterator
 Iterator over keys.
typedef KeyVector::const_iterator const_iterator
 Const iterator over keys.

Additional Inherited Members

Protected Member Functions inherited from gtsam::Constraint
 Constraint (Key j)
 Construct unary constraint factor.
 Constraint (Key j1, Key j2)
 Construct binary constraint factor.
 Constraint (const KeyVector &js)
 Construct n-way constraint factor.
template<class KeyIterator>
 Constraint (KeyIterator beginKey, KeyIterator endKey)
 Construct from a key iterator range.
 Factor ()
 Default constructor for I/O.
template<typename CONTAINER>
 Factor (const CONTAINER &keys)
 Construct factor from container of keys.
template<typename ITERATOR>
 Factor (ITERATOR first, ITERATOR last)
 Construct factor from iterator keys.
template<typename CONTAINER>
static Factor FromKeys (const CONTAINER &keys)
 Construct factor from container of keys.
template<typename ITERATOR>
static Factor FromIterators (ITERATOR first, ITERATOR last)
 Construct factor from iterator keys.
Protected Attributes inherited from gtsam::DiscreteFactor
std::map< Key, size_t > cardinalities_
 Map of Keys and their cardinalities.
Protected Attributes inherited from gtsam::Factor
KeyVector keys_
 The keys involved in this factor.

Member Function Documentation

◆ ensureArcConsistency()

bool gtsam::SingleValue::ensureArcConsistency ( Key j,
Domains * domains ) const
overridevirtual

Ensure Arc-consistency: just sets domain[j] to {value_}.

Parameters
jdomain to be checked
(in/out)domains all domains, but only domains->at(j) will be checked.
Returns
true if domains->at(j) was changed, false otherwise.

Implements gtsam::Constraint.

◆ equals()

bool gtsam::SingleValue::equals ( const DiscreteFactor & other,
double tol ) const
inlineoverridevirtual

Return whether another factor is an equal constraint.

Reimplemented from gtsam::DiscreteFactor.

◆ evaluate()

double gtsam::SingleValue::evaluate ( const Assignment< Key > & values) const
overridevirtual

Calculate value.

Implements gtsam::DiscreteFactor.

◆ operator*()

DecisionTreeFactor gtsam::SingleValue::operator* ( const DecisionTreeFactor & f) const
overridevirtual

Multiply into a decisiontree.

Reimplemented from gtsam::Constraint.

◆ partiallyApply() [1/2]

Constraint::shared_ptr gtsam::SingleValue::partiallyApply ( const DiscreteValues & values) const
overridevirtual

Partially apply known values.

Implements gtsam::Constraint.

◆ partiallyApply() [2/2]

Constraint::shared_ptr gtsam::SingleValue::partiallyApply ( const Domains & domains) const
overridevirtual

Partially apply known values, domain version.

Implements gtsam::Constraint.

◆ print()

void gtsam::SingleValue::print ( const std::string & s = "",
const KeyFormatter & formatter = DefaultKeyFormatter ) const
overridevirtual

Print the constraint.

Reimplemented from gtsam::DiscreteFactor.

◆ toDecisionTreeFactor()

DecisionTreeFactor gtsam::SingleValue::toDecisionTreeFactor ( ) const
overridevirtual

Convert into a decisiontree.

Implements gtsam::DiscreteFactor.


The documentation for this class was generated from the following files:
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/discrete/SingleValue.h
  • /tmp/gtsam-4.3.0-doxygen.rsXPUS/source/gtsam/discrete/SingleValue.cpp