34 struct EliminationTraits
54 template<
class FACTORGRAPH>
85 typedef std::pair<std::shared_ptr<ConditionalType>, std::shared_ptr<_FactorType> >
EliminationResult;
88 typedef std::function<EliminationResult(const FactorGraphType&, const Ordering&)>
Eliminate;
117 std::shared_ptr<BayesNetType> eliminateSequential(
118 OptionalOrderingType orderingType = {},
119 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
120 OptionalVariableIndex variableIndex = {})
const;
136 std::shared_ptr<BayesNetType> eliminateSequential(
138 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
139 OptionalVariableIndex variableIndex = {})
const;
157 std::shared_ptr<BayesTreeType> eliminateMultifrontal(
158 OptionalOrderingType orderingType = {},
159 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
160 OptionalVariableIndex variableIndex = {})
const;
171 std::shared_ptr<BayesTreeType> eliminateMultifrontal(
173 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
174 OptionalVariableIndex variableIndex = {})
const;
180 std::pair<std::shared_ptr<BayesNetType>, std::shared_ptr<FactorGraphType> >
181 eliminatePartialSequential(
183 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
184 OptionalVariableIndex variableIndex = {})
const;
190 std::pair<std::shared_ptr<BayesNetType>, std::shared_ptr<FactorGraphType> >
191 eliminatePartialSequential(
193 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
194 OptionalVariableIndex variableIndex = {})
const;
200 std::pair<std::shared_ptr<BayesTreeType>, std::shared_ptr<FactorGraphType> >
201 eliminatePartialMultifrontal(
203 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
204 OptionalVariableIndex variableIndex = {})
const;
210 std::pair<std::shared_ptr<BayesTreeType>, std::shared_ptr<FactorGraphType> >
211 eliminatePartialMultifrontal(
213 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
214 OptionalVariableIndex variableIndex = {})
const;
224 std::shared_ptr<BayesNetType> marginalMultifrontalBayesNet(
226 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
227 OptionalVariableIndex variableIndex = {})
const;
237 std::shared_ptr<BayesNetType> marginalMultifrontalBayesNet(
239 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
240 OptionalVariableIndex variableIndex = {})
const;
251 std::shared_ptr<BayesNetType> marginalMultifrontalBayesNet(
253 const Ordering& marginalizedVariableOrdering,
254 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
255 OptionalVariableIndex variableIndex = {})
const;
266 std::shared_ptr<BayesNetType> marginalMultifrontalBayesNet(
268 const Ordering& marginalizedVariableOrdering,
269 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
270 OptionalVariableIndex variableIndex = {})
const;
279 std::shared_ptr<BayesTreeType> marginalMultifrontalBayesTree(
281 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
282 OptionalVariableIndex variableIndex = {})
const;
291 std::shared_ptr<BayesTreeType> marginalMultifrontalBayesTree(
293 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
294 OptionalVariableIndex variableIndex = {})
const;
304 std::shared_ptr<BayesTreeType> marginalMultifrontalBayesTree(
306 const Ordering& marginalizedVariableOrdering,
307 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
308 OptionalVariableIndex variableIndex = {})
const;
318 std::shared_ptr<BayesTreeType> marginalMultifrontalBayesTree(
320 const Ordering& marginalizedVariableOrdering,
321 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
322 OptionalVariableIndex variableIndex = {})
const;
325 std::shared_ptr<FactorGraphType> marginal(
327 const Eliminate&
function = EliminationTraitsType::DefaultEliminate,
328 OptionalVariableIndex variableIndex = {})
const;
333 const FactorGraphType&
asDerived()
const {
return static_cast<const FactorGraphType&
>(*this); }
336 FactorGraphType&
asDerived() {
return static_cast<FactorGraphType&
>(*this); }
EliminateableFactorGraph< FACTORGRAPH > This
Typedef to this class.
std::optional< std::reference_wrapper< const VariableIndex > > OptionalVariableIndex
EliminationTraitsType::ConditionalType ConditionalType
Conditional type stored in the Bayes net produced by elimination.
static enum @1107 ordering
FACTORGRAPH FactorGraphType
Typedef to factor graph type.
EliminationTraitsType::BayesNetType BayesNetType
Bayes net type produced by sequential elimination.
EliminationTraitsType::JunctionTreeType JunctionTreeType
Junction tree type that can do multifrontal elimination of this graph.
std::function< EliminationResult(const FactorGraphType &, const Ordering &)> Eliminate
The function type that does a single dense elimination step on a subgraph.
std::pair< std::shared_ptr< ConditionalType >, std::shared_ptr< _FactorType > > EliminationResult
EliminationTraits< FactorGraphType >::FactorType _FactorType
const FactorGraphType & asDerived() const
EliminationTraitsType::EliminationTreeType EliminationTreeType
Elimination tree type that can do sequential elimination of this graph.
FactorGraphType & asDerived()
EliminationTraits< FactorGraphType > EliminationTraitsType
Typedef to the specific EliminationTraits for this graph.
EliminationTraitsType::BayesTreeType BayesTreeType
Bayes tree type produced by multifrontal elimination.
FastVector< Key > KeyVector
Define collection type once and for all - also used in wrappers.
std::optional< Ordering::OrderingType > OptionalOrderingType
Typedef for an optional ordering type.