Skip to content

Commit

Permalink
reintroduce vector based HybridGaussianConditional constructor
Browse files Browse the repository at this point in the history
  • Loading branch information
varunagrawal committed Sep 17, 2024
1 parent a276aff commit dbd0ae1
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 1 deletion.
9 changes: 9 additions & 0 deletions gtsam/hybrid/HybridGaussianConditional.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,15 @@ HybridGaussianConditional::conditionals() const {
return conditionals_;
}

/* *******************************************************************************/
HybridGaussianConditional::HybridGaussianConditional(
const KeyVector &continuousFrontals, const KeyVector &continuousParents,
const DiscreteKeys &discreteParents,
const std::vector<GaussianConditional::shared_ptr> &conditionals)
: HybridGaussianConditional(continuousFrontals, continuousParents,
discreteParents,
Conditionals(discreteParents, conditionals)) {}

/* *******************************************************************************/
// TODO(dellaert): This is copy/paste: HybridGaussianConditional should be
// derived from HybridGaussianFactor, no?
Expand Down
16 changes: 15 additions & 1 deletion gtsam/hybrid/HybridGaussianConditional.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,20 @@ class GTSAM_EXPORT HybridGaussianConditional
const DiscreteKeys &discreteParents,
const Conditionals &conditionals);

/**
* @brief Make a Gaussian Mixture from a vector of Gaussian conditionals.
* The DecisionTree-based constructor is preferred over this one.
*
* @param continuousFrontals The continuous frontal variables
* @param continuousParents The continuous parent variables
* @param discreteParents Discrete parents variables
* @param conditionals Vector of conditionals
*/
HybridGaussianConditional(
const KeyVector &continuousFrontals, const KeyVector &continuousParents,
const DiscreteKeys &discreteParents,
const std::vector<GaussianConditional::shared_ptr> &conditionals);

/// @}
/// @name Testable
/// @{
Expand Down Expand Up @@ -247,7 +261,7 @@ class GTSAM_EXPORT HybridGaussianConditional
#endif
};

/// Return the DiscreteKeys vector as a set.
/// Return the DiscreteKey vector as a set.
std::set<DiscreteKey> DiscreteKeysAsSet(const DiscreteKeys &discreteKeys);

// traits
Expand Down
5 changes: 5 additions & 0 deletions gtsam/hybrid/hybrid.i
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,11 @@ class HybridGaussianConditional : gtsam::HybridFactor {
const gtsam::KeyVector& continuousParents,
const gtsam::DiscreteKeys& discreteParents,
const gtsam::HybridGaussianConditional::Conditionals& conditionals);
HybridGaussianConditional(
const gtsam::KeyVector& continuousFrontals,
const gtsam::KeyVector& continuousParents,
const gtsam::DiscreteKeys& discreteParents,
const std::vector<gtsam::GaussianConditional::shared_ptr>& conditionals);

gtsam::HybridGaussianFactor* likelihood(
const gtsam::VectorValues& frontals) const;
Expand Down

0 comments on commit dbd0ae1

Please sign in to comment.