31 #ifndef GUM_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H 32 #define GUM_PARTIAL_ORDERED_ELIMINATION_SEQUENCE_STRATEGY_H 110 virtual void clear();
185 #ifndef GUM_NO_INLINE 187 #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.
gum is the global namespace for all aGrUM entities
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)
Base class for all elimination sequence algorithm that impose a given partial ordering on the nodes e...
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes)
sets a new graph to be triangulated
Generic class for manipulating lists.
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.
Base Class for all elimination sequence algorithms used by triangulations.
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