52#ifndef GUM_ELIMINATION_SEQUENCE_STRATEGY_H
53#define GUM_ELIMINATION_SEQUENCE_STRATEGY_H
161 virtual void clear();
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes)
sets a new graph to be triangulated
virtual bool providesFillIns() const =0
indicates whether the fill-ins generated by the eliminated nodes, if needed, will be computed by the ...
EliminationSequenceStrategy()
default constructor
NodeProperty< double > log_domain_sizes_
the log of the domain sizes of the variables/nodes
virtual EliminationSequenceStrategy * copyFactory() const =0
virtual copy constructor
virtual bool providesGraphUpdate() const =0
indicates whether the elimination sequence updates by itself the graph after a node has been eliminat...
virtual EliminationSequenceStrategy * newFactory() const =0
creates a new elimination sequence of the same type as the current object, but this sequence contains...
const NodeProperty< Size > * domain_sizes_
the domain sizes of the variables/nodes
virtual void askFillIns(bool do_it)=0
if the elimination sequence is able to compute fill-ins, we indicate whether we want this feature to ...
UndiGraph * graph_
the graph to be triangulated
static const EdgeSet & _empty_fill_ins_()
an empty fill-ins set used by default
virtual void clear()
clears the sequence (to prepare, for instance, a new elimination sequence)
UndiGraph * graph() const noexcept
returns the current graph
virtual ~EliminationSequenceStrategy()
destructor
virtual NodeId nextNodeToEliminate()=0
returns the new node to be eliminated within the triangulation algorithm
virtual void eliminationUpdate(const NodeId node)
performs all the graph/fill-ins updates provided (if any)
virtual const EdgeSet & fillIns()
in case fill-ins are provided, this function returns the fill-ins due to all the nodes eliminated so ...
const NodeProperty< Size > * domainSizes() const noexcept
returns the current domain sizes
Base class for undirected graphs.
Base Class for all elimination sequence algorithms used by triangulations.
std::size_t Size
In aGrUM, hashed values are unsigned long int.
Set< Edge > EdgeSet
Some typdefs and define for shortcuts ...
Size NodeId
Type for node ids.
HashTable< NodeId, VAL > NodeProperty
Property on graph elements.
gum is the global namespace for all aGrUM entities
Base classes for undirected graphs.