Removed obsolete normalizationConstants method

release/4.3a0
Frank Dellaert 2023-01-16 19:59:42 -08:00
parent 4283925e60
commit b494a61150
3 changed files with 0 additions and 32 deletions

View File

@ -174,18 +174,6 @@ KeyVector GaussianMixture::continuousParents() const {
return continuousParentKeys;
}
/* ************************************************************************* */
boost::shared_ptr<DecisionTreeFactor> GaussianMixture::normalizationConstants()
const {
DecisionTree<Key, double> constants(
conditionals_, [&](const GaussianConditional::shared_ptr &conditional) {
return conditional->normalizationConstant();
});
// If all constants the same, return nullptr:
if (constants.nrLeaves() == 1) return nullptr;
return boost::make_shared<DecisionTreeFactor>(discreteKeys(), constants);
}
/* ************************************************************************* */
bool GaussianMixture::allFrontalsGiven(const VectorValues &given) const {
for (auto &&kv : given) {

View File

@ -160,10 +160,6 @@ class GTSAM_EXPORT GaussianMixture
/// log-normalization constants.
double logNormalizationConstant() const override { return logConstant_; }
/// Return a discrete factor with possibly varying normalization constants.
/// If there is no variation, return nullptr.
boost::shared_ptr<DecisionTreeFactor> normalizationConstants() const;
/**
* Create a likelihood factor for a Gaussian mixture, return a Mixture factor
* on the parents.

View File

@ -61,9 +61,6 @@ const GaussianMixture mixture({Z(0)}, {X(0)}, {mode}, conditionals);
TEST(GaussianMixture, Invariants) {
using namespace equal_constants;
// Check that normalizationConstants returns nullptr, as all constants equal.
CHECK(!mixture.normalizationConstants());
// Check that the mixture normalization constant is the max of all constants
// which are all equal, in this case, hence:
const double K = mixture.logNormalizationConstant();
@ -170,19 +167,6 @@ TEST(GaussianMixture, ContinuousParents) {
EXPECT(continuousParentKeys[0] == X(0));
}
/* ************************************************************************* */
/// Check we can create a DecisionTreeFactor with all normalization constants.
TEST(GaussianMixture, NormalizationConstants) {
using namespace mode_dependent_constants;
const auto factor = mixture.normalizationConstants();
// Test with 1D Gaussian normalization constants for sigma 0.5 and 3:
auto c = [](double sigma) { return 1.0 / (sqrt(2 * M_PI) * sigma); };
const DecisionTreeFactor expected({M(0), 2}, {c(0.5), c(3)});
EXPECT(assert_equal(expected, *factor));
}
/* ************************************************************************* */
/// Check that the likelihood is proportional to the conditional density given
/// the measurements.