make evaluate the overriden method

release/4.3a0
Varun Agrawal 2024-12-09 21:09:00 -05:00
parent ab943b539e
commit a98ac0fdb2
13 changed files with 20 additions and 17 deletions

View File

@ -195,7 +195,7 @@ namespace gtsam {
// Construct unordered_map with values
std::vector<std::pair<DiscreteValues, double>> result;
for (const auto& assignment : assignments) {
result.emplace_back(assignment, operator()(assignment));
result.emplace_back(assignment, evaluate(assignment));
}
return result;
}

View File

@ -132,10 +132,13 @@ namespace gtsam {
/// Calculate probability for given values,
/// is just look up in AlgebraicDecisionTree.
double operator()(const Assignment<Key>& values) const override {
virtual double evaluate(const Assignment<Key>& values) const override {
return ADT::operator()(values);
}
/// Disambiguate to use DiscreteFactor version. Mainly for wrapper
using DiscreteFactor::operator();
/// Calculate error for DiscreteValues `x`, is -log(probability).
double error(const DiscreteValues& values) const override;

View File

@ -169,12 +169,12 @@ class GTSAM_EXPORT DiscreteConditional
}
/// Evaluate, just look up in AlgebraicDecisionTree
double evaluate(const DiscreteValues& values) const {
virtual double evaluate(const Assignment<Key>& values) const override {
return ADT::operator()(values);
}
using DecisionTreeFactor::error; ///< DiscreteValues version
using DecisionTreeFactor::operator(); ///< DiscreteValues version
using DiscreteFactor::operator(); ///< DiscreteValues version
/**
* @brief restrict to given *parent* values.

View File

@ -101,12 +101,12 @@ class GTSAM_EXPORT DiscreteFactor : public Factor {
* @param values Discrete assignment.
* @return double
*/
double evaluate(const Assignment<Key>& values) const {
return operator()(values);
}
virtual double evaluate(const Assignment<Key>& values) const = 0;
/// Find value for given assignment of values to variables
virtual double operator()(const Assignment<Key>& values) const = 0;
double operator()(const DiscreteValues& values) const {
return evaluate(values);
}
/// Error is just -log(value)
virtual double error(const DiscreteValues& values) const;

View File

@ -133,7 +133,7 @@ bool TableFactor::equals(const DiscreteFactor& other, double tol) const {
}
/* ************************************************************************ */
double TableFactor::operator()(const Assignment<Key>& values) const {
double TableFactor::evaluate(const Assignment<Key>& values) const {
// a b c d => D * (C * (B * (a) + b) + c) + d
uint64_t idx = 0, card = 1;
for (auto it = sorted_dkeys_.rbegin(); it != sorted_dkeys_.rend(); ++it) {

View File

@ -156,7 +156,7 @@ class GTSAM_EXPORT TableFactor : public DiscreteFactor {
// /// @{
/// Evaluate probability distribution, is just look up in TableFactor.
double operator()(const Assignment<Key>& values) const override;
double evaluate(const Assignment<Key>& values) const override;
/// Calculate error for DiscreteValues `x`, is -log(probability).
double error(const DiscreteValues& values) const override;

View File

@ -26,7 +26,7 @@ void AllDiff::print(const std::string& s, const KeyFormatter& formatter) const {
}
/* ************************************************************************* */
double AllDiff::operator()(const Assignment<Key>& values) const {
double AllDiff::evaluate(const Assignment<Key>& values) const {
std::set<size_t> taken; // record values taken by keys
for (Key dkey : keys_) {
size_t value = values.at(dkey); // get the value for that key

View File

@ -45,7 +45,7 @@ class GTSAM_UNSTABLE_EXPORT AllDiff : public Constraint {
}
/// Calculate value = expensive !
double operator()(const Assignment<Key>& values) const override;
double evaluate(const Assignment<Key>& values) const override;
/// Convert into a decisiontree, can be *very* expensive !
DecisionTreeFactor toDecisionTreeFactor() const override;

View File

@ -47,7 +47,7 @@ class BinaryAllDiff : public Constraint {
}
/// Calculate value
double operator()(const Assignment<Key>& values) const override {
double evaluate(const Assignment<Key>& values) const override {
return (double)(values.at(keys_[0]) != values.at(keys_[1]));
}

View File

@ -30,7 +30,7 @@ string Domain::base1Str() const {
}
/* ************************************************************************* */
double Domain::operator()(const Assignment<Key>& values) const {
double Domain::evaluate(const Assignment<Key>& values) const {
return contains(values.at(key()));
}

View File

@ -82,7 +82,7 @@ class GTSAM_UNSTABLE_EXPORT Domain : public Constraint {
bool contains(size_t value) const { return values_.count(value) > 0; }
/// Calculate value
double operator()(const Assignment<Key>& values) const override;
double evaluate(const Assignment<Key>& values) const override;
/// Convert into a decisiontree
DecisionTreeFactor toDecisionTreeFactor() const override;

View File

@ -22,7 +22,7 @@ void SingleValue::print(const string& s, const KeyFormatter& formatter) const {
}
/* ************************************************************************* */
double SingleValue::operator()(const Assignment<Key>& values) const {
double SingleValue::evaluate(const Assignment<Key>& values) const {
return (double)(values.at(keys_[0]) == value_);
}

View File

@ -55,7 +55,7 @@ class GTSAM_UNSTABLE_EXPORT SingleValue : public Constraint {
}
/// Calculate value
double operator()(const Assignment<Key>& values) const override;
double evaluate(const Assignment<Key>& values) const override;
/// Convert into a decisiontree
DecisionTreeFactor toDecisionTreeFactor() const override;