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

Detailed Description

Binary AllDiff constraint.

Returns 1 if values for two keys are different, 0 otherwise.

Inheritance diagram for gtsam::BinaryAllDiff:

Public Member Functions

 BinaryAllDiff (const DiscreteKey &key1, const DiscreteKey &key2)
 cardinality
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 by checking every possible value of domain j.
Constraint::shared_ptr partiallyApply (const DiscreteValues &) const override
 Partially apply known values.
Constraint::shared_ptr partiallyApply (const 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.
DecisionTreeFactor operator* (const DecisionTreeFactor &dtf) const override
 Multiply by a DecisionTreeFactor and return a DecisionTreeFactor.
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.
void print (const std::string &s="DiscreteFactor\n", const KeyFormatter &formatter=DefaultKeyFormatter) const override
 print
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.

Additional Inherited Members

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

Constructor & Destructor Documentation

◆ BinaryAllDiff()

gtsam::BinaryAllDiff::BinaryAllDiff ( const DiscreteKey & key1,
const DiscreteKey & key2 )
inline

cardinality

Construct a constraint on two discrete keys.

Member Function Documentation

◆ ensureArcConsistency()

bool gtsam::BinaryAllDiff::ensureArcConsistency ( Key j,
Domains * domains ) const
inlineoverridevirtual

Ensure Arc-consistency by checking every possible value of domain j.

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::BinaryAllDiff::equals ( const DiscreteFactor & other,
double tol ) const
inlineoverridevirtual

Return whether another factor is an equal constraint.

Reimplemented from gtsam::DiscreteFactor.

◆ evaluate()

double gtsam::BinaryAllDiff::evaluate ( const Assignment< Key > & values) const
inlineoverridevirtual

Calculate value.

Implements gtsam::DiscreteFactor.

◆ operator*()

DecisionTreeFactor gtsam::BinaryAllDiff::operator* ( const DecisionTreeFactor & f) const
inlineoverridevirtual

Multiply into a decisiontree.

Implements gtsam::DiscreteFactor.

◆ partiallyApply() [1/2]

Constraint::shared_ptr gtsam::BinaryAllDiff::partiallyApply ( const DiscreteValues & ) const
inlineoverridevirtual

Partially apply known values.

Implements gtsam::Constraint.

◆ partiallyApply() [2/2]

Constraint::shared_ptr gtsam::BinaryAllDiff::partiallyApply ( const Domains & ) const
inlineoverridevirtual

Partially apply known values, domain version.

Implements gtsam::Constraint.

◆ print()

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

Print the constraint.

Reimplemented from gtsam::Factor.

◆ toDecisionTreeFactor()

DecisionTreeFactor gtsam::BinaryAllDiff::toDecisionTreeFactor ( ) const
inlineoverridevirtual

Convert into a decisiontree.

Implements gtsam::DiscreteFactor.


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