62 static bool first_use =
true;
65 __debug__::_dec_creation_(
"Set",
" __empty_edge_set", 0,
"static variable correction", 0);
66 __debug__::_dec_creation_(
"HashTable",
69 "static variable correction",
74 return empty_fill_ins;
130 if (((
graph !=
nullptr) && (dom_sizes ==
nullptr))
131 || ((
graph ==
nullptr) && (dom_sizes !=
nullptr))) {
133 "EliminationSequenceStrategy: one of the graph or the set of "
134 "domain sizes is a null pointer.");
138 if (
graph !=
nullptr) {
139 for (
const auto node: *
graph)
140 if (!dom_sizes->
exists(node))
142 "EliminationSequenceStrategy needs a domain size "
143 "for every node in the graph.");
159 for (
const auto node: *
graph_)
virtual bool setGraph(UndiGraph *graph, const NodeProperty< Size > *dom_sizes)
sets a new graph to be triangulated
EliminationSequenceStrategy()
default constructor
NodeProperty< double > log_domain_sizes_
the log of the domain sizes of the variables/nodes
const NodeProperty< Size > * domain_sizes_
the domain sizes of the variables/nodes
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 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 ...
Exception base for graph error.
bool exists(const Key &key) const
Checks whether there exists an element with a given key in the hashtable.
Base class for undirected graphs.
Base Class for all elimination sequence algorithms used by triangulations.
Base Class for all elimination sequence algorithms used by triangulations.
#define GUM_ERROR(type, msg)
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