implement evaluate in DiscreteFactor
parent
9844a555d4
commit
aa25ccfa6e
|
@ -131,11 +131,6 @@ namespace gtsam {
|
||||||
|
|
||||||
/// Calculate probability for given values,
|
/// Calculate probability for given values,
|
||||||
/// is just look up in AlgebraicDecisionTree.
|
/// is just look up in AlgebraicDecisionTree.
|
||||||
double evaluate(const Assignment<Key>& values) const override {
|
|
||||||
return ADT::operator()(values);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Evaluate probability distribution, sugar.
|
|
||||||
double operator()(const Assignment<Key>& values) const override {
|
double operator()(const Assignment<Key>& values) const override {
|
||||||
return ADT::operator()(values);
|
return ADT::operator()(values);
|
||||||
}
|
}
|
||||||
|
|
|
@ -476,7 +476,7 @@ string DiscreteConditional::html(const KeyFormatter& keyFormatter,
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
double DiscreteConditional::evaluate(const HybridValues& x) const {
|
double DiscreteConditional::evaluate(const HybridValues& x) const {
|
||||||
return this->evaluate(x.discrete());
|
return this->operator()(x.discrete());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
|
|
|
@ -168,11 +168,6 @@ class GTSAM_EXPORT DiscreteConditional
|
||||||
static_cast<const BaseConditional*>(this)->print(s, formatter);
|
static_cast<const BaseConditional*>(this)->print(s, formatter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Evaluate, just look up in AlgebraicDecisionTree
|
|
||||||
double evaluate(const Assignment<Key>& values) const override {
|
|
||||||
return ADT::operator()(values);
|
|
||||||
}
|
|
||||||
|
|
||||||
using DecisionTreeFactor::error; ///< DiscreteValues version
|
using DecisionTreeFactor::error; ///< DiscreteValues version
|
||||||
using DecisionTreeFactor::operator(); ///< DiscreteValues version
|
using DecisionTreeFactor::operator(); ///< DiscreteValues version
|
||||||
|
|
||||||
|
|
|
@ -93,8 +93,18 @@ class GTSAM_EXPORT DiscreteFactor : public Factor {
|
||||||
|
|
||||||
size_t cardinality(Key j) const { return cardinalities_.at(j); }
|
size_t cardinality(Key j) const { return cardinalities_.at(j); }
|
||||||
|
|
||||||
/// Calculate probability for given values
|
/**
|
||||||
virtual double evaluate(const Assignment<Key>& values) const = 0;
|
* @brief Calculate probability for given values.
|
||||||
|
* Calls specialized evaluation under the hood.
|
||||||
|
*
|
||||||
|
* Note: Uses Assignment<Key> as it is the base class of DiscreteValues.
|
||||||
|
*
|
||||||
|
* @param values Discrete assignment.
|
||||||
|
* @return double
|
||||||
|
*/
|
||||||
|
double evaluate(const Assignment<Key>& values) const {
|
||||||
|
return operator()(values);
|
||||||
|
}
|
||||||
|
|
||||||
/// Find value for given assignment of values to variables
|
/// Find value for given assignment of values to variables
|
||||||
virtual double operator()(const Assignment<Key>& values) const = 0;
|
virtual double operator()(const Assignment<Key>& values) const = 0;
|
||||||
|
|
|
@ -169,13 +169,7 @@ class GTSAM_EXPORT TableFactor : public DiscreteFactor {
|
||||||
// /// @name Standard Interface
|
// /// @name Standard Interface
|
||||||
// /// @{
|
// /// @{
|
||||||
|
|
||||||
/// Calculate probability for given values,
|
/// Evaluate probability distribution, is just look up in TableFactor.
|
||||||
/// is just look up in TableFactor.
|
|
||||||
double evaluate(const Assignment<Key>& values) const override {
|
|
||||||
return operator()(values);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Evaluate probability distribution, sugar.
|
|
||||||
double operator()(const Assignment<Key>& values) const override;
|
double operator()(const Assignment<Key>& values) const override;
|
||||||
|
|
||||||
/// Calculate error for DiscreteValues `x`, is -log(probability).
|
/// Calculate error for DiscreteValues `x`, is -log(probability).
|
||||||
|
|
Loading…
Reference in New Issue