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

View File

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