templetize functions in Switching fixture
parent
f4adfac4fa
commit
6a26ecf971
|
@ -202,31 +202,16 @@ struct Switching {
|
||||||
* @brief Add "mode chain" to HybridNonlinearFactorGraph from M(0) to M(K-2).
|
* @brief Add "mode chain" to HybridNonlinearFactorGraph from M(0) to M(K-2).
|
||||||
* E.g. if K=4, we want M0, M1 and M2.
|
* E.g. if K=4, we want M0, M1 and M2.
|
||||||
*
|
*
|
||||||
* @param fg The nonlinear factor graph to which the mode chain is added.
|
* @param fg The factor graph to which the mode chain is added.
|
||||||
*/
|
*/
|
||||||
void addModeChain(HybridNonlinearFactorGraph *fg,
|
template <typename FACTORGRAPH>
|
||||||
|
void addModeChain(FACTORGRAPH *fg,
|
||||||
std::string discrete_transition_prob = "1/2 3/2") {
|
std::string discrete_transition_prob = "1/2 3/2") {
|
||||||
fg->emplace_shared<DiscreteDistribution>(modes[0], "1/1");
|
fg->template emplace_shared<DiscreteDistribution>(modes[0], "1/1");
|
||||||
for (size_t k = 0; k < K - 2; k++) {
|
for (size_t k = 0; k < K - 2; k++) {
|
||||||
auto parents = {modes[k]};
|
auto parents = {modes[k]};
|
||||||
fg->emplace_shared<DiscreteConditional>(modes[k + 1], parents,
|
fg->template emplace_shared<DiscreteConditional>(
|
||||||
discrete_transition_prob);
|
modes[k + 1], parents, discrete_transition_prob);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Add "mode chain" to HybridGaussianFactorGraph from M(0) to M(K-2).
|
|
||||||
* E.g. if K=4, we want M0, M1 and M2.
|
|
||||||
*
|
|
||||||
* @param fg The gaussian factor graph to which the mode chain is added.
|
|
||||||
*/
|
|
||||||
void addModeChain(HybridGaussianFactorGraph *fg,
|
|
||||||
std::string discrete_transition_prob = "1/2 3/2") {
|
|
||||||
fg->emplace_shared<DiscreteDistribution>(modes[0], "1/1");
|
|
||||||
for (size_t k = 0; k < K - 2; k++) {
|
|
||||||
auto parents = {modes[k]};
|
|
||||||
fg->emplace_shared<DiscreteConditional>(modes[k + 1], parents,
|
|
||||||
discrete_transition_prob);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue