update HybridSmoother to use std::optional deadModeThreshold
parent
1764b58e8c
commit
4fcfe6493f
|
@ -81,8 +81,7 @@ void HybridSmoother::update(const HybridGaussianFactorGraph &graph,
|
||||||
if (maxNrLeaves) {
|
if (maxNrLeaves) {
|
||||||
// `pruneBayesNet` sets the leaves with 0 in discreteFactor to nullptr in
|
// `pruneBayesNet` sets the leaves with 0 in discreteFactor to nullptr in
|
||||||
// all the conditionals with the same keys in bayesNetFragment.
|
// all the conditionals with the same keys in bayesNetFragment.
|
||||||
bayesNetFragment = bayesNetFragment.prune(*maxNrLeaves, removeDeadModes_,
|
bayesNetFragment = bayesNetFragment.prune(*maxNrLeaves, deadModeThreshold_);
|
||||||
deadModeThreshold_);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the partial bayes net to the posterior bayes net.
|
// Add the partial bayes net to the posterior bayes net.
|
||||||
|
|
|
@ -29,10 +29,8 @@ class GTSAM_EXPORT HybridSmoother {
|
||||||
HybridBayesNet hybridBayesNet_;
|
HybridBayesNet hybridBayesNet_;
|
||||||
HybridGaussianFactorGraph remainingFactorGraph_;
|
HybridGaussianFactorGraph remainingFactorGraph_;
|
||||||
|
|
||||||
/// Flag indicating that we should remove dead discrete modes.
|
|
||||||
bool removeDeadModes_;
|
|
||||||
/// The threshold above which we make a decision about a mode.
|
/// The threshold above which we make a decision about a mode.
|
||||||
double deadModeThreshold_;
|
std::optional<double> deadModeThreshold_;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
|
@ -40,11 +38,10 @@ class GTSAM_EXPORT HybridSmoother {
|
||||||
*
|
*
|
||||||
* @param removeDeadModes Flag indicating whether to remove dead modes.
|
* @param removeDeadModes Flag indicating whether to remove dead modes.
|
||||||
* @param deadModeThreshold The threshold above which a mode gets assigned a
|
* @param deadModeThreshold The threshold above which a mode gets assigned a
|
||||||
* value and is considered "dead".
|
* value and is considered "dead". 0.99 is a good starting value.
|
||||||
*/
|
*/
|
||||||
HybridSmoother(bool removeDeadModes = false, double deadModeThreshold = 0.99)
|
HybridSmoother(const std::optional<double> deadModeThreshold)
|
||||||
: removeDeadModes_(removeDeadModes),
|
: deadModeThreshold_(deadModeThreshold) {}
|
||||||
deadModeThreshold_(deadModeThreshold) {}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Given new factors, perform an incremental update.
|
* Given new factors, perform an incremental update.
|
||||||
|
|
Loading…
Reference in New Issue