Removed ill-named and confusing method logProbability
parent
a898ad3661
commit
2abb410592
|
@ -337,24 +337,6 @@ HybridGaussianConditional::shared_ptr HybridGaussianConditional::prune(
|
||||||
pruned_conditionals);
|
pruned_conditionals);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* *******************************************************************************/
|
|
||||||
AlgebraicDecisionTree<Key> HybridGaussianConditional::logProbability(
|
|
||||||
const VectorValues &continuousValues) const {
|
|
||||||
// functor to calculate (double) logProbability value from
|
|
||||||
// GaussianConditional.
|
|
||||||
auto probFunc =
|
|
||||||
[continuousValues](const GaussianConditional::shared_ptr &conditional) {
|
|
||||||
if (conditional) {
|
|
||||||
return conditional->logProbability(continuousValues);
|
|
||||||
} else {
|
|
||||||
// Return arbitrarily small logProbability if conditional is null
|
|
||||||
// Conditional is null if it is pruned out.
|
|
||||||
return -1e20;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return DecisionTree<Key, double>(conditionals_, probFunc);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* *******************************************************************************/
|
/* *******************************************************************************/
|
||||||
double HybridGaussianConditional::logProbability(
|
double HybridGaussianConditional::logProbability(
|
||||||
const HybridValues &values) const {
|
const HybridValues &values) const {
|
||||||
|
|
|
@ -194,16 +194,6 @@ class GTSAM_EXPORT HybridGaussianConditional
|
||||||
/// Getter for the underlying Conditionals DecisionTree
|
/// Getter for the underlying Conditionals DecisionTree
|
||||||
const Conditionals &conditionals() const;
|
const Conditionals &conditionals() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Compute logProbability of the HybridGaussianConditional as a tree.
|
|
||||||
*
|
|
||||||
* @param continuousValues The continuous VectorValues.
|
|
||||||
* @return AlgebraicDecisionTree<Key> A decision tree with the same keys
|
|
||||||
* as the conditionals, and leaf values as the logProbability.
|
|
||||||
*/
|
|
||||||
AlgebraicDecisionTree<Key> logProbability(
|
|
||||||
const VectorValues &continuousValues) const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Compute the logProbability of this hybrid Gaussian conditional.
|
* @brief Compute the logProbability of this hybrid Gaussian conditional.
|
||||||
*
|
*
|
||||||
|
|
|
@ -74,17 +74,6 @@ TEST(HybridGaussianConditional, Invariants) {
|
||||||
/// Check LogProbability.
|
/// Check LogProbability.
|
||||||
TEST(HybridGaussianConditional, LogProbability) {
|
TEST(HybridGaussianConditional, LogProbability) {
|
||||||
using namespace equal_constants;
|
using namespace equal_constants;
|
||||||
auto actual = hybrid_conditional.logProbability(vv);
|
|
||||||
|
|
||||||
// Check result.
|
|
||||||
std::vector<DiscreteKey> discrete_keys = {mode};
|
|
||||||
std::vector<double> leaves = {conditionals[0]->logProbability(vv),
|
|
||||||
conditionals[1]->logProbability(vv)};
|
|
||||||
AlgebraicDecisionTree<Key> expected(discrete_keys, leaves);
|
|
||||||
|
|
||||||
EXPECT(assert_equal(expected, actual, 1e-6));
|
|
||||||
|
|
||||||
// Check for non-tree version.
|
|
||||||
for (size_t mode : {0, 1}) {
|
for (size_t mode : {0, 1}) {
|
||||||
const HybridValues hv{vv, {{M(0), mode}}};
|
const HybridValues hv{vv, {{M(0), mode}}};
|
||||||
EXPECT_DOUBLES_EQUAL(conditionals[mode]->logProbability(vv),
|
EXPECT_DOUBLES_EQUAL(conditionals[mode]->logProbability(vv),
|
||||||
|
|
Loading…
Reference in New Issue