Expose all needed versions of evaluate, operator(), error

release/4.3a0
Frank Dellaert 2023-01-14 12:57:12 -08:00
parent c9fcfe3299
commit ce8bf7ac48
2 changed files with 17 additions and 5 deletions

View File

@ -20,7 +20,7 @@
#include <gtsam/base/debug.h>
#include <gtsam/discrete/DiscreteConditional.h>
#include <gtsam/discrete/Signature.h>
#include <gtsam/inference/Conditional-inst.h>
#include <gtsam/hybrid/HybridValues.h>
#include <algorithm>
#include <boost/make_shared.hpp>
@ -510,6 +510,10 @@ string DiscreteConditional::html(const KeyFormatter& keyFormatter,
return ss.str();
}
/* ************************************************************************* */
double DiscreteConditional::evaluate(const HybridValues& x) const{
return this->evaluate(x.discrete());
}
/* ************************************************************************* */
} // namespace gtsam

View File

@ -160,10 +160,13 @@ class GTSAM_EXPORT DiscreteConditional
}
/// Evaluate, just look up in AlgebraicDecisonTree
double operator()(const DiscreteValues& values) const override {
double evaluate(const DiscreteValues& values) const {
return ADT::operator()(values);
}
using DecisionTreeFactor::error; ///< DiscreteValues version
using DecisionTreeFactor::operator(); ///< DiscreteValues version
/**
* @brief restrict to given *parent* values.
*
@ -235,6 +238,14 @@ class GTSAM_EXPORT DiscreteConditional
/// @name HybridValues methods.
/// @{
/**
* Calculate probability for HybridValues `x`.
* Dispatches to DiscreteValues version.
*/
double evaluate(const HybridValues& x) const override;
using BaseConditional::operator(); ///< HybridValues version
/**
* Calculate log-probability log(evaluate(x)) for HybridValues `x`.
* This is actually just -error(x).
@ -243,9 +254,6 @@ class GTSAM_EXPORT DiscreteConditional
return -error(x);
}
using DecisionTreeFactor::error; ///< HybridValues version
using DecisionTreeFactor::evaluate; ///< HybridValues version
/// @}
#ifdef GTSAM_ALLOW_DEPRECATED_SINCE_V42