51#ifndef DOXYGEN_SHOULD_SKIP_THIS
83 Edge edge(first, second);
136 for (
auto iter = nei.beginSafe(); iter != nei.endSafe(); ++iter)
155 if (elt.second.contains(
id))
return elt.first;
157 GUM_ERROR(NotFound,
"This node belongs to no clique")
const NodeSet & separator(const Edge &edge) const
returns the separator included in a given edge
void eraseNode(const NodeId node) override
removes a given clique from the clique graph
bool hasRunningIntersection() const
indicates whether the running intersection property holds
void _updateSeparators_(const NodeId clique1)
function used to update the separators when a clique is modified
void addNodeWithId(const NodeId id, const NodeSet &clique)
try to add a new clique to the graph
void addEdge(NodeId first, NodeId second) override
inserts a new edge between two cliques
void clearEdges() override
removes all edges and their separators
virtual void setClique(const NodeId idClique, const NodeSet &new_clique)
changes the set of nodes included into a given clique and returns the new set
void eraseEdge(const Edge &edge) override
removes an edge (and its separator) from the clique graph
void clear() override
removes all the cliques and separators from the graph (as well as their adjacent edges)
NodeId container(const NodeId idNode) const
returns the id of a clique containing the node the id of which is in argument
EdgeProperty< NodeSet > _separators_
the set of nodes contained into the separators
NodeId addNode() override
adds a new clique to the graph
CliqueGraph(Size nodes_size=HashTableConst::default_size, bool nodes_resize_policy=true, Size edges_size=HashTableConst::default_size, bool edges_resize_policy=true)
basic constructor: creates an empty clique graph
NodeProperty< NodeSet > _cliques_
the set of nodes contained into the cliques
const NodeSet & clique(const NodeId idClique) const
returns the set of nodes included into a given clique
CliqueGraph & operator=(const CliqueGraph &from)
copy operator
bool isJoinTree() const
indicates whether the graph is a join tree
virtual void eraseEdge(const Edge &edge)
removes an edge from the EdgeGraphPart
virtual void clearEdges()
removes all the edges from the EdgeGraphPart
bool existsEdge(const Edge &edge) const
indicates whether a given edge exists
const NodeSet & neighbours(NodeId id) const
returns the set of node neighbours to a given node
The base class for all undirected edges.
bool exists(const NodeId id) const
alias for existsNode
virtual NodeId addNode()
insert a new node and return its id
virtual void addNodeWithId(const NodeId id)
try to insert a node with the given id
UndiGraph & operator=(const UndiGraph &g)
copy operator
void clear() override
removes all the nodes and edges from the graph
void addEdge(NodeId first, NodeId second) override
insert a new edge into the undirected graph
bool hasUndirectedCycle() const
checks whether the graph contains cycles
void eraseNode(NodeId id) override
remove a node and its adjacent edges from the graph
Basic class for all graphs of cliques (join trees, etc).
#define GUM_ERROR(type, msg)
Size NodeId
Type for node ids.
Set< NodeId > NodeSet
Some typdefs and define for shortcuts ...
gum is the global namespace for all aGrUM entities