![]() |
aGrUM
0.20.3
a C++ library for (probabilistic) graphical models
|
Base class for mixed graphs. More...
#include <mixedGraph.h>
Public Attributes | |
Signaler1< NodeId > | onNodeAdded |
Signaler1< NodeId > | onNodeDeleted |
Signaler2< NodeId, NodeId > | onEdgeAdded |
Signaler2< NodeId, NodeId > | onEdgeDeleted |
Signaler2< NodeId, NodeId > | onArcAdded |
Signaler2< NodeId, NodeId > | onArcDeleted |
Public Member Functions | |
bool | hasDirectedPath (const NodeId from, const NodeId to) |
checks whether there exists a directed path from from to to More... | |
Constructors / Destructors | |
MixedGraph (Size nodes_size=HashTableConst::default_size, bool nodes_resize_policy=true, Size arcs_size=HashTableConst::default_size, bool arcs_resize_policy=true, Size edges_size=HashTableConst::default_size, bool edges_resize_policy=true) | |
default constructor More... | |
MixedGraph (const UndiGraph &g) | |
default constructor More... | |
MixedGraph (const DiGraph &g) | |
default constructor More... | |
MixedGraph (const MixedGraph &g) | |
copy constructor More... | |
virtual | ~MixedGraph () |
destructor More... | |
Operators | |
MixedGraph & | operator= (const MixedGraph &g) |
copy operator More... | |
bool | operator== (const MixedGraph &g) const |
tests whether two MixedGraphs are identical (same nodes, arcs and edges) More... | |
bool | operator!= (const MixedGraph &g) const |
tests whether two MixedGraphs are different More... | |
Accessors/Modifiers | |
virtual void | eraseNode (const NodeId id) |
remove a node as well as its adjacent arcs and edges from the graph More... | |
virtual void | clear () |
removes all the nodes, arcs and edges from the graph More... | |
std::vector< NodeId > | mixedOrientedPath (NodeId node1, NodeId node2) const |
returns a mixed edge/directed arc path from node1 to node2 in the arc/edge set More... | |
std::vector< NodeId > | mixedUnorientedPath (NodeId node1, NodeId node2) const |
returns a mixed/directed path from node1 to node2 in the arc/edge set More... | |
virtual std::string | toDot () const |
to friendly display mixed graph in DOT format More... | |
virtual std::string | toString () const |
to friendly display the content of the MixedGraph More... | |
NodeSet | adjacents (const NodeId id) const |
returns the set of node adjacent to a given node More... | |
Operators | |
bool | operator== (const UndiGraph &g) const |
tests whether two UndiGraphs are identical (same nodes, same edges) More... | |
bool | operator!= (const UndiGraph &g) const |
tests whether two UndiGraphs are different More... | |
Operators | |
bool | operator== (const NodeGraphPart &p) const |
check whether two NodeGraphParts contain the same nodes More... | |
bool | operator!= (const NodeGraphPart &p) const |
check whether two NodeGraphParts contain different nodes More... | |
Operators | |
bool | operator== (const EdgeGraphPart &p) const |
tests whether two EdgeGraphParts contain the same edges More... | |
bool | operator!= (const EdgeGraphPart &p) const |
tests whether two EdgeGraphParts contain different edges More... | |
Accessors/Modifiers | |
void | addEdge (NodeId first, NodeId second) override |
insert a new edge into the undirected graph More... | |
bool | hasUndirectedCycle () const |
checks whether the graph contains cycles More... | |
virtual UndiGraph | partialUndiGraph (NodeSet nodes) |
returns the partial graph formed by the nodes given in parameter More... | |
NodeProperty< NodeId > | nodes2ConnectedComponent () const |
returns a property {node:id of connected component} More... | |
Accessors/Modifiers | |
void | populateNodes (const NodeGraphPart &s) |
populateNodes clears *this and fills it with the same nodes as "s" More... | |
template<typename T > | |
void | populateNodesFromProperty (const NodeProperty< T > &h) |
populateNodesFromProperty clears *this and fills it with the keys of "h" More... | |
NodeId | nextNodeId () const |
returns a new node id, not yet used by any node More... | |
virtual NodeId | addNode () |
insert a new node and return its id More... | |
std::vector< NodeId > | addNodes (Size n) |
insert n nodes More... | |
virtual void | addNodeWithId (const NodeId id) |
try to insert a node with the given id More... | |
bool | existsNode (const NodeId id) const |
returns true iff the NodeGraphPart contains the given nodeId More... | |
bool | exists (const NodeId id) const |
alias for existsNode More... | |
bool | emptyNodes () const |
indicates whether there exists nodes in the NodeGraphPart More... | |
bool | empty () const |
alias for emptyNodes More... | |
virtual void | clearNodes () |
remove all the nodes from the NodeGraphPart More... | |
Size | sizeNodes () const |
returns the number of nodes in the NodeGraphPart More... | |
Size | size () const |
alias for sizeNodes More... | |
NodeId | bound () const |
returns a number n such that all node ids are strictly lower than n More... | |
NodeSet | asNodeSet () const |
returns a copy of the set of nodes represented by the NodeGraphPart More... | |
const NodeGraphPart & | nodes () const |
return *this as a NodeGraphPart More... | |
node_iterator_safe | beginSafe () const |
a begin iterator to parse the set of nodes contained in the NodeGraphPart More... | |
const node_iterator_safe & | endSafe () const noexcept |
the end iterator to parse the set of nodes contained in the NodeGraphPart More... | |
node_iterator | begin () const noexcept |
a begin iterator to parse the set of nodes contained in the NodeGraphPart More... | |
const node_iterator & | end () const noexcept |
the end iterator to parse the set of nodes contained in the NodeGraphPart More... | |
template<typename VAL > | |
NodeProperty< VAL > | nodesProperty (VAL(*f)(const NodeId &), Size size=0) const |
a method to create a HashTable with key:NodeId and value:VAL More... | |
template<typename VAL > | |
NodeProperty< VAL > | nodesProperty (const VAL &a, Size size=0) const |
a method to create a hashMap with key:NodeId and value:VAL More... | |
template<typename VAL > | |
List< VAL > | listMapNodes (VAL(*f)(const NodeId &)) const |
a method to create a list of VAL from a set of nodes (using for every nodee, say x, the VAL f(x)) More... | |
Accessors/Modifiers | |
virtual void | eraseEdge (const Edge &edge) |
removes an edge from the EdgeGraphPart More... | |
bool | existsEdge (const Edge &edge) const |
indicates whether a given edge exists More... | |
bool | existsEdge (const NodeId n1, const NodeId n2) const |
indicates whether a given edge exists More... | |
bool | emptyEdges () const |
indicates wether the EdgeGraphPart contains any edge More... | |
virtual void | clearEdges () |
removes all the edges from the EdgeGraphPart More... | |
Size | sizeEdges () const |
indicates the number of edges stored within the EdgeGraphPart More... | |
const EdgeSet & | edges () const |
returns the set of edges stored within the EdgeGraphPart More... | |
const NodeSet & | neighbours (const NodeId id) const |
returns the set of node neighbours to a given node More... | |
void | eraseNeighbours (const NodeId id) |
erase all the edges adjacent to a given node More... | |
void | unvirtualizedEraseNeighbours (const NodeId id) |
same function as eraseNeighbours but without any virtual call to an erase More... | |
template<typename VAL > | |
EdgeProperty< VAL > | edgesProperty (VAL(*f)(const Edge &), Size size=0) const |
a method to create a hashMap of VAL from a set of edges (using for every edge, say x, the VAL f(x)) More... | |
template<typename VAL > | |
EdgeProperty< VAL > | edgesProperty (const VAL &a, Size size=0) const |
a method to create a hashMap of VAL from a set of edges (using for every edge, say x, the VAL a) More... | |
template<typename VAL > | |
List< VAL > | listMapEdges (VAL(*f)(const Edge &)) const |
a method to create a list of VAL from a set of edges (using for every edge, say x, the VAL f(x)) More... | |
const std::vector< NodeId > | undirectedPath (const NodeId node1, const NodeId node2) const |
returns a possible path from node1 to node2 in the edge set More... | |
bool | hasUndirectedPath (const NodeId n1, const NodeId n2) const |
return true if n1 and n2 are connected (by an undirected path) in the graph. More... | |
bool | hasUndirectedPath (const NodeId n1, const NodeId n2, const NodeSet &except) const |
return true if n1 and n2 are connected (by an undirected path not using the nodes of except) in the graph. More... | |
bool | hasUndirectedPath (const NodeSet &n1, const NodeSet &n2, const NodeSet &except) const |
return true if n1 and n2 are connected (by an undirected path not using the nodes of except) in the graph. More... | |
Operators | |
bool | operator== (const DiGraph &g) const |
tests whether two DiGraphs are identical (same nodes, same arcs) More... | |
bool | operator!= (const DiGraph &g) const |
tests whether two DiGraphs are different More... | |
Operators | |
bool | operator== (const ArcGraphPart &p) const |
tests whether two ArcGraphParts contain the same arcs More... | |
bool | operator!= (const ArcGraphPart &p) const |
tests whether two ArcGraphParts contain different arcs More... | |
Accessors/Modifiers | |
virtual void | addArc (const NodeId tail, const NodeId head) |
insert a new arc into the directed graph More... | |
const Sequence< NodeId > & | topologicalOrder (bool clear=true) const |
The topological order stays the same as long as no variable or arcs are added or erased src the topology. More... | |
Accessors/Modifiers | |
virtual void | eraseArc (const Arc &arc) |
removes an arc from the ArcGraphPart More... | |
bool | existsArc (const Arc &arc) const |
indicates whether a given arc exists More... | |
bool | existsArc (NodeId tail, NodeId head) const |
indicates whether a given arc exists More... | |
bool | emptyArcs () const |
indicates wether the ArcGraphPart contains any arc More... | |
void | clearArcs () |
removes all the arcs from the ArcGraphPart More... | |
Size | sizeArcs () const |
indicates the number of arcs stored within the ArcGraphPart More... | |
const ArcSet & | arcs () const |
returns the set of arcs stored within the ArcGraphPart More... | |
const NodeSet & | parents (NodeId id) const |
returns the set of nodes with arc ingoing to a given node More... | |
NodeSet | parents (const NodeSet &ids) const |
returns the set of parents of a set of nodes More... | |
NodeSet | family (NodeId id) const |
returns the set of nodes which consists in the node and its parents More... | |
NodeSet | family (const NodeSet &ids) const |
returns the set of family nodes of a set of nodes More... | |
NodeSet | descendants (NodeId id) const |
returns the set of nodes with directed path outgoing from a given node More... | |
NodeSet | ancestors (NodeId id) const |
returns the set of nodes with directed path ingoing to a given node More... | |
NodeSet | children (const NodeSet &ids) const |
returns the set of children of a set of nodes More... | |
const NodeSet & | children (NodeId id) const |
returns the set of nodes with arc outgoing from a given node More... | |
void | eraseParents (NodeId id) |
erase all the parents of a given node More... | |
void | unvirtualizedEraseParents (NodeId id) |
same function as eraseParents but without any virtual call to an erase More... | |
void | eraseChildren (NodeId id) |
removes all the children of a given node More... | |
void | unvirtualizedEraseChildren (NodeId id) |
same function as eraseChildren but without any virtual call to an erase More... | |
template<typename VAL > | |
ArcProperty< VAL > | arcsProperty (VAL(*f)(const Arc &), Size size=0) const |
a method to create a hashMap of VAL from a set of arcs (using for every arc, say x, the VAL f(x)) More... | |
template<typename VAL > | |
ArcProperty< VAL > | arcsProperty (const VAL &a, Size size=0) const |
a method to create a hashMap of VAL from a set of arcs (using for every arc, say x, the VAL a) More... | |
template<typename VAL > | |
List< VAL > | listMapArcs (VAL(*f)(const Arc &)) const |
a method to create a list of VAL from a set of arcs (using for every arc, say x, the VAL f(x)) More... | |
std::vector< NodeId > | directedPath (NodeId node1, NodeId node2) const |
returns a directed path from node1 to node2 belonging to the set of arcs More... | |
std::vector< NodeId > | directedUnorientedPath (NodeId node1, NodeId node2) const |
returns an unoriented (directed) path from node1 to node2 in the arc set More... | |
Public Types | |
typedef NodeGraphPartIterator | NodeIterator |
typedef NodeGraphPartIterator | NodeConstIterator |
typedef NodeGraphPartIteratorSafe | NodeIteratorSafe |
typedef NodeGraphPartIteratorSafe | NodeConstIteratorSafe |
typedef EdgeSetIterator | EdgeIterator |
typedef ArcSetIterator | ArcIterator |
using | node_iterator = NodeGraphPartIterator |
types for STL compliance More... | |
using | node_const_iterator = NodeGraphPartIterator |
types for STL compliance More... | |
using | node_iterator_safe = NodeGraphPartIteratorSafe |
types for STL compliance More... | |
using | node_const_iterator_safe = NodeGraphPartIteratorSafe |
types for STL compliance More... | |
Protected Member Functions | |
void | eraseSetOfArcs_ (const ArcSet &set) |
a (virtualized) function to remove a given set of arcs More... | |
void | unvirtualizedEraseSetOfArcs_ (const ArcSet &set) |
similar to eraseSetOfArcs_ except that it is unvirtualized More... | |
Base class for mixed graphs.
Definition at line 126 of file mixedGraph.h.
|
inherited |
Definition at line 80 of file arcGraphPart.h.
|
inherited |
Definition at line 76 of file edgeGraphPart.h.
|
inherited |
types for STL compliance
Definition at line 258 of file nodeGraphPart.h.
|
inherited |
types for STL compliance
Definition at line 260 of file nodeGraphPart.h.
|
inherited |
types for STL compliance
Definition at line 257 of file nodeGraphPart.h.
|
inherited |
types for STL compliance
Definition at line 259 of file nodeGraphPart.h.
|
inherited |
Definition at line 267 of file nodeGraphPart.h.
|
inherited |
Definition at line 269 of file nodeGraphPart.h.
|
inherited |
Definition at line 266 of file nodeGraphPart.h.
|
inherited |
Definition at line 268 of file nodeGraphPart.h.
|
explicit |
default constructor
nodes_size | the size of the hash table used to store all the nodes |
nodes_resize_policy | the resizing policy of this hash table |
arcs_size | the size of the hash table used to store all the arcs |
arcs_resize_policy | the resizing policy of this hash table |
edges_size | the size of the hash table used to store all the edges |
edges_resize_policy | the resizing policy of this hash table |
Definition at line 36 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
explicit |
default constructor
nodes_size | the size of the hash table used to store all the nodes |
nodes_resize_policy | the resizing policy of this hash table |
arcs_size | the size of the hash table used to store all the arcs |
arcs_resize_policy | the resizing policy of this hash table |
edges_size | the size of the hash table used to store all the edges |
edges_resize_policy | the resizing policy of this hash table |
Definition at line 51 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
explicit |
default constructor
nodes_size | the size of the hash table used to store all the nodes |
nodes_resize_policy | the resizing policy of this hash table |
arcs_size | the size of the hash table used to store all the arcs |
arcs_resize_policy | the resizing policy of this hash table |
edges_size | the size of the hash table used to store all the edges |
edges_resize_policy | the resizing policy of this hash table |
Definition at line 55 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
gum::MixedGraph::MixedGraph | ( | const MixedGraph & | g | ) |
copy constructor
g | the MixedGraph to copy |
Definition at line 59 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
virtual |
destructor
Definition at line 64 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
insert a new arc into the directed graph
tail | the id of the tail of the new inserted arc |
head | the id of the head of the new inserted arc |
InvalidNode | if head or tail does not belong to the graph nodes |
Reimplemented from gum::ArcGraphPart.
Reimplemented in gum::DAG.
Definition at line 34 of file diGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
insert a new edge into the undirected graph
The order in which the extremal nodes are specified is not important.
first | the id of one extremal node of the new inserted edge |
second | the id of the other extremal node of the new inserted edge |
InvalidNode | if first and/or second do not belong to the graph nodes |
Reimplemented from gum::EdgeGraphPart.
Definition at line 34 of file undiGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
insert a new node and return its id
Reimplemented in gum::CliqueGraph.
Definition at line 238 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
insert n nodes
n | the number of nodes to add |
Definition at line 256 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
try to insert a node with the given id
DuplicateElement | exception if the id already exists |
Definition at line 131 of file nodeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
returns the set of node adjacent to a given node
Note that the set of node returned may be empty.
id | the node to which the edges are adjacent |
Definition at line 227 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
returns the set of nodes with directed path ingoing to a given node
Note that the set of nodes returned may be empty if no path within the ArcGraphPart is ingoing to the given node.
id | the node which is the head of a directed path with the returned nodes |
Definition at line 172 of file arcGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns the set of arcs stored within the ArcGraphPart
Definition at line 38 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
a method to create a hashMap of VAL from a set of arcs (using for every arc, say x, the VAL f(x))
f | a function assigning a VAL to any arc |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of arcs. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
a method to create a hashMap of VAL from a set of arcs (using for every arc, say x, the VAL a)
a | the default value assigned to each arc in the returned Property |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of arcs. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
returns a copy of the set of nodes represented by the NodeGraphPart
Definition at line 340 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
noexceptinherited |
a begin iterator to parse the set of nodes contained in the NodeGraphPart
Definition at line 314 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
a begin iterator to parse the set of nodes contained in the NodeGraphPart
Definition at line 302 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns a number n such that all node ids are strictly lower than n
Definition at line 291 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of children of a set of nodes
Definition at line 66 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of nodes with arc outgoing from a given node
Note that the set of arcs returned may be empty if no arc within the ArcGraphPart is outgoing from the given node.
id | the node which is the tail of the arcs returned |
Definition at line 89 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtual |
removes all the nodes, arcs and edges from the graph
Reimplemented from gum::DiGraph.
Definition at line 48 of file mixedGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
removes all the arcs from the ArcGraphPart
Definition at line 78 of file arcGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
removes all the edges from the EdgeGraphPart
Reimplemented in gum::CliqueGraph.
Definition at line 66 of file edgeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
remove all the nodes from the NodeGraphPart
Definition at line 293 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of nodes with directed path outgoing from a given node
Note that the set of nodes returned may be empty if no path within the ArcGraphPart is outgoing from the given node.
id | the node which is the tail of a directed path with the returned nodes |
Definition at line 154 of file arcGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns a directed path from node1 to node2 belonging to the set of arcs
node1 | the id from which the path begins |
node2 | the id to which the path ends |
NotFound | exception is raised if no path can be found between the two nodes |
Definition at line 190 of file arcGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns an unoriented (directed) path from node1 to node2 in the arc set
node1 | the id from which the path begins |
node2 | the id to which the path ends |
NotFound | exception is raised if no path can be found between the two nodes |
Definition at line 231 of file arcGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns the set of edges stored within the EdgeGraphPart
Definition at line 38 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
a method to create a hashMap of VAL from a set of edges (using for every edge, say x, the VAL f(x))
f | a function assigning a VAL to any edge |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of edges. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
a method to create a hashMap of VAL from a set of edges (using for every edge, say x, the VAL a)
a | the default value assigned to each edge in the returned Property |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of edges. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
alias for emptyNodes
Definition at line 289 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
indicates wether the ArcGraphPart contains any arc
Definition at line 34 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
indicates wether the EdgeGraphPart contains any edge
Definition at line 34 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
indicates whether there exists nodes in the NodeGraphPart
Definition at line 287 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
noexceptinherited |
the end iterator to parse the set of nodes contained in the NodeGraphPart
Definition at line 320 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
noexceptinherited |
the end iterator to parse the set of nodes contained in the NodeGraphPart
Definition at line 310 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
removes an arc from the ArcGraphPart
arc | the arc to be removed |
Definition at line 106 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
removes all the children of a given node
id | the node all the children of which will be removed |
Definition at line 137 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtualinherited |
removes an edge from the EdgeGraphPart
edge | the edge to be removed |
Reimplemented in gum::CliqueGraph.
Definition at line 61 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
erase all the edges adjacent to a given node
id | the node the adjacent edges of which will be removed |
Definition at line 79 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtual |
remove a node as well as its adjacent arcs and edges from the graph
id | the id of the node to be removed |
Reimplemented from gum::DiGraph.
Definition at line 54 of file mixedGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
erase all the parents of a given node
id | the node all the parents of which will be removed |
Definition at line 123 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
protectedinherited |
a (virtualized) function to remove a given set of arcs
Definition at line 118 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
alias for existsNode
Definition at line 277 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
indicates whether a given arc exists
arc | the arc we test whether or not it belongs to the ArcGraphPart |
Definition at line 40 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
indicates whether a given arc exists
tail | the tail of the arc we test the existence in the ArcGraphPart |
head | the head of the arc we test the existence in the ArcGraphPart |
Definition at line 42 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
indicates whether a given edge exists
edge | the edge we test whether or not it belongs to the EdgeGraphPart |
Definition at line 40 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
indicates whether a given edge exists
n1 | the id of one extremity of the edge we test the existence in the EdgeGraphPart |
n2 | the id of the other extremity of the edge we test the existence in the EdgeGraphPart |
Definition at line 42 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns true iff the NodeGraphPart contains the given nodeId
Definition at line 271 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of nodes which consists in the node and its parents
Note that the set of nodes returned may be empty if no path within the ArcGraphPart is outgoing from the given node.
id | the node which is the tail of a directed path with the returned nodes |
Definition at line 59 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of family nodes of a set of nodes
Definition at line 82 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
checks whether there exists a directed path from from to to
If from==to, this function checks if a directed cycle containing from exists.
from | |
to |
Definition at line 131 of file diGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
checks whether the graph contains cycles
Definition at line 57 of file undiGraph.cpp.
return true if n1 and n2 are connected (by an undirected path) in the graph.
n1 | NodeId |
n2 | NodeId |
Definition at line 166 of file edgeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
return true if n1 and n2 are connected (by an undirected path not using the nodes of except) in the graph.
n1 | NodeId |
n2 | NodeId |
except | NodeSet |
Definition at line 183 of file edgeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
return true if n1 and n2 are connected (by an undirected path not using the nodes of except) in the graph.
n1 | NodeSet |
n2 | NodeSet |
except | NodeSet |
Definition at line 203 of file edgeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
a method to create a list of VAL from a set of arcs (using for every arc, say x, the VAL f(x))
f | a function assigning a VAL to any arc |
|
inherited |
a method to create a list of VAL from a set of edges (using for every edge, say x, the VAL f(x))
f | a function assigning a VAL to any edge |
|
inherited |
a method to create a list of VAL from a set of nodes (using for every nodee, say x, the VAL f(x))
f | a function assigning a VAL to any node |
returns a mixed edge/directed arc path from node1 to node2 in the arc/edge set
This function returns, if any, a path from node1 to node2, using edges and/or arcs (wrt the direction of th arcs)
node1 | the id from which the path begins |
node2 | the id to which the path ends if no path can be found between the two nodes, the returned vector is empty |
Definition at line 77 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
returns a mixed/directed path from node1 to node2 in the arc/edge set
This function returns, if any, a path from node1 to node2, using edges and/or arcs (not necessarily following the direction of th arcs)
node1 | the id from which the path begins |
node2 | the id to which the path ends if no path can be found between the two nodes, the returned vector is empty. |
Definition at line 130 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
returns the set of node neighbours to a given node
Note that the set of nodes returned may be empty if no edge within the EdgeGraphPart is adjacent the given node.
id | the node to which the edges are adjacent |
Definition at line 74 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns a new node id, not yet used by any node
Definition at line 211 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
return *this as a NodeGraphPart
Definition at line 352 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns a property {node:id of connected component}
Definition at line 152 of file undiGraph.cpp.
|
inherited |
a method to create a HashTable with key:NodeId and value:VAL
VAL are computed from the nodes using for all node x, VAL f(x). This method is a wrapper of the same method in HashTable.
f | a function assigning a VAL to any node |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of nodes. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
a method to create a hashMap with key:NodeId and value:VAL
for all nodes, the value stored is a. This method is a wrapper of the same method in HashTable.
a | the default value assigned to each edge in the returned Property |
size | an optional parameter enabling to fine-tune the returned Property. Roughly speaking, it is a good practice to have a size equal to half the number of nodes. If you do not specify this parameter, the method will assign it for you. |
|
inherited |
tests whether two EdgeGraphParts contain different edges
p | the EdgeGraphPart that we compare with this |
Definition at line 107 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
tests whether two ArcGraphParts contain different arcs
p | the ArcGraphPart that we compare with this |
Definition at line 182 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
tests whether two UndiGraphs are different
g | the UndiGraph with which "this" is compared |
Definition at line 69 of file undiGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
tests whether two DiGraphs are different
g | the DiGraph with which "this" is compared |
Definition at line 81 of file diGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
INLINE bool gum::MixedGraph::operator!= | ( | const MixedGraph & | g | ) | const |
tests whether two MixedGraphs are different
g | the MixedGraph with which "this" is compared |
Definition at line 66 of file mixedGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
check whether two NodeGraphParts contain different nodes
p | the NodeGraphPart to be compared with "this" |
Definition at line 338 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
INLINE MixedGraph & gum::MixedGraph::operator= | ( | const MixedGraph & | g | ) |
copy operator
g | the MixedGraph to copy |
Definition at line 31 of file mixedGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
tests whether two EdgeGraphParts contain the same edges
p | the EdgeGraphPart that we compare with this |
Definition at line 103 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
tests whether two ArcGraphParts contain the same arcs
p | the ArcGraphPart that we compare with this |
Definition at line 180 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
tests whether two UndiGraphs are identical (same nodes, same edges)
g | the UndiGraph with which "this" is compared |
Definition at line 65 of file undiGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
tests whether two DiGraphs are identical (same nodes, same arcs)
g | the DiGraph with which "this" is compared |
Definition at line 77 of file diGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
INLINE bool gum::MixedGraph::operator== | ( | const MixedGraph & | g | ) | const |
tests whether two MixedGraphs are identical (same nodes, arcs and edges)
g | the MixedGraph with which "this" is compared |
Definition at line 61 of file mixedGraph_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
check whether two NodeGraphParts contain the same nodes
p | the NodeGraphPart to be compared with "this" |
Definition at line 324 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of nodes with arc ingoing to a given node
Note that the set of arcs returned may be empty if no arc within the ArcGraphPart is ingoing into the given node.
id | the node toward which the arcs returned are pointing |
Definition at line 54 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the set of parents of a set of nodes
Definition at line 74 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
returns the partial graph formed by the nodes given in parameter
Definition at line 139 of file undiGraph.cpp.
|
inherited |
populateNodes clears *this and fills it with the same nodes as "s"
populateNodes should basically be the preferred way to insert nodes with IDs not selected by the internal idFactory.
s | the NodeGraphPart to be copied |
Definition at line 63 of file nodeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
populateNodesFromProperty clears *this and fills it with the keys of "h"
populateNodes should basically be the preferred way to insert nodes with IDs not selected by the internal idFactory.
|
inherited |
alias for sizeNodes
Definition at line 269 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
indicates the number of arcs stored within the ArcGraphPart
Definition at line 36 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
indicates the number of edges stored within the EdgeGraphPart
Definition at line 36 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns the number of nodes in the NodeGraphPart
Definition at line 265 of file nodeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
virtual |
to friendly display mixed graph in DOT format
Reimplemented from gum::DiGraph.
Definition at line 199 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
The topological order stays the same as long as no variable or arcs are added or erased src the topology.
clear | If false returns the previously created topology. |
InvalidDirectedCycle | Raised if this DiGraph contains cycles. |
Definition at line 88 of file diGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
virtual |
to friendly display the content of the MixedGraph
Reimplemented from gum::DiGraph.
Definition at line 68 of file mixedGraph.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
returns a possible path from node1 to node2 in the edge set
node1 | the id from which the path begins |
node2 | the id to which the path ends |
NotFound | exception is raised if no path can be found between the two nodes |
Definition at line 125 of file edgeGraphPart.cpp.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
same function as eraseChildren but without any virtual call to an erase
id | the node whose outgoing arcs will be removed |
Definition at line 168 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
same function as eraseNeighbours but without any virtual call to an erase
id | the node whose ingoing arcs will be removed |
Definition at line 92 of file edgeGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
inherited |
same function as eraseParents but without any virtual call to an erase
id | the node whose ingoing arcs will be removed |
Definition at line 156 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
|
protectedinherited |
similar to eraseSetOfArcs_ except that it is unvirtualized
Definition at line 151 of file arcGraphPart_inl.h.
References gum::Set< Key, Alloc >::emplace().
Definition at line 82 of file arcGraphPart.h.
Definition at line 83 of file arcGraphPart.h.
Definition at line 78 of file edgeGraphPart.h.
Definition at line 79 of file edgeGraphPart.h.
|
inherited |
Definition at line 271 of file nodeGraphPart.h.
|
inherited |
Definition at line 272 of file nodeGraphPart.h.