34 #ifndef GUM_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H 35 #define GUM_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H 113 virtual void clear();
188 #ifndef GUM_NO_INLINE 190 #endif // GUM_NOINLINE virtual void clear()
clears the sequence (to prepare, for instance, a new elimination sequence)
virtual PartialOrderedEliminationSequenceStrategy * copyFactory() const =0
virtual copy constructor
bool _isPartialOrderNeeded(const List< NodeSet > *subsets) const
indicate whether a partial ordering is compatible with the current graph
virtual bool setPartialOrder(const List< NodeSet > *subsets)
sets a new partial ordering constraint on the elimination sequence
Generic doubly linked lists.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The class for generic Hash Tables.
UndiGraph * graph() const noexcept
returns the current graph
Base class for all elimination sequence algorithm that impose a given partial ordering on the nodes e...
PartialOrderedEliminationSequenceStrategy()
default constructor (uses an empty graph)
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes)
sets a new graph to be triangulated
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
NodeSet _nodeset
the nodes which can be currently eliminated
virtual PartialOrderedEliminationSequenceStrategy * newFactory() const =0
creates a new elimination sequence of the same type as the current object, but this sequence contains...
const List< NodeSet > * _subsets
the subsets constituting the partial ordering
Unsafe but fast const iterators for Lists.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The base class for all elimination sequence algorithms used by triangulation algorithms.
bool isPartialOrderNeeded() const noexcept
indicates if a new partial ordering is needed
virtual ~PartialOrderedEliminationSequenceStrategy()
destructor
Base class for undirected graphs.
const List< NodeSet > * partialOrder() const noexcept
returns the current partial ordering
List< NodeSet >::const_iterator _subset_iter
the iterator indicating which is the current subset on which we work
bool _partial_order_needed
indicate whether a new partial ordering is necessary for the elimination