49#ifndef DOXYGEN_SHOULD_SKIP_THIS
68 Edge edge(first, second);
121 for (
auto iter = nei.beginSafe(); iter != nei.endSafe(); ++iter)
140 if (elt.second.contains(
id))
return elt.first;
142 GUM_ERROR(NotFound,
"This node belongs to no clique")
const NodeSet & separator(const Edge &edge) const
returns the separator included in a given edge
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
virtual void addEdge(NodeId first, NodeId second)
inserts a new edge between two cliques
virtual void addNodeWithId(const NodeId id, const NodeSet &clique)
try to add a new clique to the graph
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
virtual void clear()
removes all the cliques and separators from the graph (as well as their adjacent edges)
virtual NodeId addNode()
adds a new clique to the graph
virtual void eraseEdge(const Edge &edge)
removes an edge (and its separator) from the clique graph
virtual void eraseNode(const NodeId node)
removes a given clique from the clique graph
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
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
virtual void clearEdges()
removes all edges and their separators
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
bool hasUndirectedCycle() const
checks whether the graph contains cycles
void addEdge(NodeId first, NodeId second) override
insert a new edge into the undirected graph
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