35 #endif // GUM_NOINLINE 42 static bool first_use =
true;
45 __debug__::__dec_creation(
46 "Set",
"__empty_edge_set", 0,
"static variable correction", 0);
47 __debug__::__dec_creation(
48 "HashTable",
"__empty_edge_set", 0,
"static variable correction", 0);
52 return empty_fill_ins;
118 if (((graph !=
nullptr) && (dom_sizes ==
nullptr))
119 || ((graph ==
nullptr) && (dom_sizes !=
nullptr))) {
121 "EliminationSequenceStrategy: one of the graph or the set of " 122 "domain sizes is a null pointer.");
126 if (graph !=
nullptr) {
127 for (
const auto node : *graph)
128 if (!dom_sizes->
exists(node))
130 "EliminationSequenceStrategy needs a domain size " 131 "for every node in the graph.");
147 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.
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
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
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
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
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Size NodeId
Type for node ids.
#define GUM_ERROR(type, msg)