Reverted variable name change to ease reviewing

release/4.3a0
Frank Dellaert 2023-01-04 21:16:28 -08:00
parent 381087f48d
commit 26575921b0
2 changed files with 15 additions and 15 deletions

View File

@ -33,15 +33,15 @@ const DiscreteKey mode{M(0), 2};
/** /**
* Create a tiny two variable hybrid model which represents * Create a tiny two variable hybrid model which represents
* the generative probability P(z,x,mode) = P(z|x,mode)P(x)P(mode). * the generative probability P(z,x,mode) = P(z|x,mode)P(x)P(mode).
* numMeasurements is the number of measurements of the continuous variable x0. * num_measurements is the number of measurements of the continuous variable x0.
* If manyModes is true, then we introduce one mode per measurement. * If manyModes is true, then we introduce one mode per measurement.
*/ */
inline HybridBayesNet createHybridBayesNet(int numMeasurements = 1, inline HybridBayesNet createHybridBayesNet(int num_measurements = 1,
bool manyModes = false) { bool manyModes = false) {
HybridBayesNet bayesNet; HybridBayesNet bayesNet;
// Create Gaussian mixture z_i = x0 + noise for each measurement. // Create Gaussian mixture z_i = x0 + noise for each measurement.
for (int i = 0; i < numMeasurements; i++) { for (int i = 0; i < num_measurements; i++) {
const auto mode_i = manyModes ? DiscreteKey{M(i), 2} : mode; const auto mode_i = manyModes ? DiscreteKey{M(i), 2} : mode;
GaussianMixture gm({Z(i)}, {X(0)}, {mode_i}, GaussianMixture gm({Z(i)}, {X(0)}, {mode_i},
{GaussianConditional::sharedMeanAndStddev( {GaussianConditional::sharedMeanAndStddev(
@ -56,7 +56,7 @@ inline HybridBayesNet createHybridBayesNet(int numMeasurements = 1,
GaussianConditional::sharedMeanAndStddev(X(0), Vector1(5.0), 0.5)); GaussianConditional::sharedMeanAndStddev(X(0), Vector1(5.0), 0.5));
// Add prior on mode. // Add prior on mode.
const size_t nrModes = manyModes ? numMeasurements : 1; const size_t nrModes = manyModes ? num_measurements : 1;
for (int i = 0; i < nrModes; i++) { for (int i = 0; i < nrModes; i++) {
bayesNet.emplaceDiscrete(DiscreteKey{M(i), 2}, "4/6"); bayesNet.emplaceDiscrete(DiscreteKey{M(i), 2}, "4/6");
} }
@ -67,13 +67,13 @@ inline HybridBayesNet createHybridBayesNet(int numMeasurements = 1,
* Create a tiny two variable hybrid factor graph which represents a discrete * Create a tiny two variable hybrid factor graph which represents a discrete
* mode and a continuous variable x0, given a number of measurements of the * mode and a continuous variable x0, given a number of measurements of the
* continuous variable x0. If no measurements are given, they are sampled from * continuous variable x0. If no measurements are given, they are sampled from
* the generative Bayes net model HybridBayesNet::Example(numMeasurements) * the generative Bayes net model HybridBayesNet::Example(num_measurements)
*/ */
inline HybridGaussianFactorGraph createHybridGaussianFactorGraph( inline HybridGaussianFactorGraph createHybridGaussianFactorGraph(
int numMeasurements = 1, int num_measurements = 1,
boost::optional<VectorValues> measurements = boost::none, boost::optional<VectorValues> measurements = boost::none,
bool manyModes = false) { bool manyModes = false) {
auto bayesNet = createHybridBayesNet(numMeasurements, manyModes); auto bayesNet = createHybridBayesNet(num_measurements, manyModes);
if (measurements) { if (measurements) {
// Use the measurements to create a hybrid factor graph. // Use the measurements to create a hybrid factor graph.
return bayesNet.toFactorGraph(*measurements); return bayesNet.toFactorGraph(*measurements);

View File

@ -621,9 +621,9 @@ TEST(HybridGaussianFactorGraph, ErrorAndProbPrimeTree) {
// assignment. // assignment.
TEST(HybridGaussianFactorGraph, assembleGraphTree) { TEST(HybridGaussianFactorGraph, assembleGraphTree) {
using symbol_shorthand::Z; using symbol_shorthand::Z;
const int numMeasurements = 1; const int num_measurements = 1;
auto fg = tiny::createHybridGaussianFactorGraph( auto fg = tiny::createHybridGaussianFactorGraph(
numMeasurements, VectorValues{{Z(0), Vector1(5.0)}}); num_measurements, VectorValues{{Z(0), Vector1(5.0)}});
EXPECT_LONGS_EQUAL(3, fg.size()); EXPECT_LONGS_EQUAL(3, fg.size());
// Assemble graph tree: // Assemble graph tree:
@ -662,9 +662,9 @@ TEST(HybridGaussianFactorGraph, assembleGraphTree) {
// Check that eliminating tiny net with 1 measurement yields correct result. // Check that eliminating tiny net with 1 measurement yields correct result.
TEST(HybridGaussianFactorGraph, EliminateTiny1) { TEST(HybridGaussianFactorGraph, EliminateTiny1) {
using symbol_shorthand::Z; using symbol_shorthand::Z;
const int numMeasurements = 1; const int num_measurements = 1;
auto fg = tiny::createHybridGaussianFactorGraph( auto fg = tiny::createHybridGaussianFactorGraph(
numMeasurements, VectorValues{{Z(0), Vector1(5.0)}}); num_measurements, VectorValues{{Z(0), Vector1(5.0)}});
EXPECT_LONGS_EQUAL(3, fg.size()); EXPECT_LONGS_EQUAL(3, fg.size());
// Create expected Bayes Net: // Create expected Bayes Net:
@ -696,9 +696,9 @@ TEST(HybridGaussianFactorGraph, EliminateTiny1) {
TEST(HybridGaussianFactorGraph, EliminateTiny2) { TEST(HybridGaussianFactorGraph, EliminateTiny2) {
// Create factor graph with 2 measurements such that posterior mean = 5.0. // Create factor graph with 2 measurements such that posterior mean = 5.0.
using symbol_shorthand::Z; using symbol_shorthand::Z;
const int numMeasurements = 2; const int num_measurements = 2;
auto fg = tiny::createHybridGaussianFactorGraph( auto fg = tiny::createHybridGaussianFactorGraph(
numMeasurements, num_measurements,
VectorValues{{Z(0), Vector1(4.0)}, {Z(1), Vector1(6.0)}}); VectorValues{{Z(0), Vector1(4.0)}, {Z(1), Vector1(6.0)}});
EXPECT_LONGS_EQUAL(4, fg.size()); EXPECT_LONGS_EQUAL(4, fg.size());
@ -731,11 +731,11 @@ TEST(HybridGaussianFactorGraph, EliminateTiny2) {
TEST(HybridGaussianFactorGraph, EliminateTiny22) { TEST(HybridGaussianFactorGraph, EliminateTiny22) {
// Create factor graph with 2 measurements such that posterior mean = 5.0. // Create factor graph with 2 measurements such that posterior mean = 5.0.
using symbol_shorthand::Z; using symbol_shorthand::Z;
const int numMeasurements = 2; const int num_measurements = 2;
const bool manyModes = true; const bool manyModes = true;
// Create Bayes net and convert to factor graph. // Create Bayes net and convert to factor graph.
auto bn = tiny::createHybridBayesNet(numMeasurements, manyModes); auto bn = tiny::createHybridBayesNet(num_measurements, manyModes);
const VectorValues measurements{{Z(0), Vector1(4.0)}, {Z(1), Vector1(6.0)}}; const VectorValues measurements{{Z(0), Vector1(4.0)}, {Z(1), Vector1(6.0)}};
auto fg = bn.toFactorGraph(measurements); auto fg = bn.toFactorGraph(measurements);
EXPECT_LONGS_EQUAL(5, fg.size()); EXPECT_LONGS_EQUAL(5, fg.size());