32 #endif // GUM_NOINLINE 39 static bool first_use =
true;
42 __debug__::__dec_creation(
43 "Set",
"__empty_edge_set", 0,
"static variable correction", 0);
44 __debug__::__dec_creation(
45 "HashTable",
"__empty_edge_set", 0,
"static variable correction", 0);
49 return empty_fill_ins;
115 if (((graph !=
nullptr) && (dom_sizes ==
nullptr))
116 || ((graph ==
nullptr) && (dom_sizes !=
nullptr))) {
118 "EliminationSequenceStrategy: one of the graph or the set of " 119 "domain sizes is a null pointer.");
123 if (graph !=
nullptr) {
124 for (
const auto node : *graph)
125 if (!dom_sizes->
exists(node))
127 "EliminationSequenceStrategy needs a domain size " 128 "for every node in the graph.");
144 for (
const auto node : *
_graph)
virtual void clear()
clears the sequence (to prepare, for instance, a new elimination sequence)
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 ...
UndiGraph * _graph
the graph to be triangulated
virtual ~EliminationSequenceStrategy()
destructor
EliminationSequenceStrategy()
default constructor
NodeProperty< double > _log_domain_sizes
the log of the domain sizes of the variables/nodes
bool exists(const Key &key) const
Checks whether there exists an element with a given key in the hashtable.
gum is the global namespace for all aGrUM entities
The class for generic Hash Tables.
UndiGraph * graph() const noexcept
returns the current graph
static const EdgeSet & __empty_fill_ins()
an empty fill-ins set used by default
Size sizeNodes() const
returns the number of nodes in the NodeGraphPart
Base Class for all elimination sequence algorithms used by triangulations.
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes)
sets a new graph to be triangulated
The base class for all elimination sequence algorithms used by triangulation algorithms.
Base class for undirected graphs.
const NodeProperty< Size > * _domain_sizes
the domain sizes of the variables/nodes
Base Class for all elimination sequence algorithms used by triangulations.
Size NodeId
Type for node ids.
#define GUM_ERROR(type, msg)