|
|
| Network ()=default |
| | Construct a new empty Network object.
|
| std::unordered_map< Id, std::unique_ptr< node_t > > const & | nodes () const |
| | Get the nodes as an unordered map.
|
| std::unordered_map< Id, std::unique_ptr< edge_t > > const & | edges () const |
| | Get the edges as an unordered map.
|
| size_t | nNodes () const |
| | Get the number of nodes.
|
| size_t | nEdges () const |
| | Get the number of edges.
|
| template<typename TNode = node_t, typename... TArgs> |
| void | addNode (TArgs &&... args) |
| | Add a node to the network.
|
|
template<typename TNode = node_t> |
| void | addNDefaultNodes (size_t n) |
| template<typename TEdge = edge_t, typename... TArgs> |
| void | addEdge (TArgs &&... args) |
| | Add an edge to the network.
|
| std::unique_ptr< node_t > const & | node (Id nodeId) const |
| | Get a node by id.
|
| std::unique_ptr< node_t > & | node (Id nodeId) |
| | Get a node by id.
|
| std::unique_ptr< edge_t > const & | edge (Id edgeId) const |
| | Get an edge by id.
|
| std::unique_ptr< edge_t > & | edge (Id edgeId) |
| | Get an edge by id.
|
|
std::unique_ptr< edge_t > const & | edge (Id source, Id target) const |
| template<typename TNode> |
| TNode & | node (Id nodeId) |
| | Get a node by id.
|
| template<typename TEdge> |
| TEdge & | edge (Id edgeId) |
| | Get an edge by id.
|
| template<typename WeightFunc> |
| void | computeBetweennessCentralities (WeightFunc getEdgeWeight) |
| | Compute betweenness centralities for all nodes using Brandes' algorithm.
|
| template<typename WeightFunc> |
| void | computeEdgeBetweennessCentralities (WeightFunc getEdgeWeight) |
| | Compute edge betweenness centralities for all edges using Brandes' algorithm.
|
|
|
Id | m_cantorHash (Id u, Id v) const |
|
Id | m_cantorHash (std::pair< Id, Id > const &idPair) const |
|
|
std::unordered_map< Id, std::unique_ptr< node_t > > | m_nodes |
|
std::unordered_map< Id, std::unique_ptr< edge_t > > | m_edges |
◆ addEdge()
template<typename node_t, typename edge_t>
template<typename TEdge, typename... TArgs>
| void dsf::Network< node_t, edge_t >::addEdge |
( |
TArgs &&... | args | ) |
|
Add an edge to the network.
- Template Parameters
-
| TEdge | The type of the edge (default is edge_t) |
| TArgs | The types of the arguments |
- Parameters
-
| args | The arguments to pass to the edge's constructor |
◆ addNode()
template<typename node_t, typename edge_t>
template<typename TNode, typename... TArgs>
| void dsf::Network< node_t, edge_t >::addNode |
( |
TArgs &&... | args | ) |
|
Add a node to the network.
- Template Parameters
-
| TNode | The type of the node (default is node_t) |
| TArgs | The types of the arguments |
- Parameters
-
| args | The arguments to pass to the node's constructor |
◆ computeBetweennessCentralities()
template<typename node_t, typename edge_t>
template<typename WeightFunc>
| void dsf::Network< node_t, edge_t >::computeBetweennessCentralities |
( |
WeightFunc | getEdgeWeight | ) |
|
Compute betweenness centralities for all nodes using Brandes' algorithm.
- Template Parameters
-
| WeightFunc | A callable type that takes a const reference to a unique_ptr<edge_t> and returns a double representing the edge weight |
- Parameters
-
| getEdgeWeight | A callable that takes a const reference to a unique_ptr<edge_t> and returns a double (must be positive) |
Implements Brandes' algorithm for directed weighted graphs. The computed centrality for each node v is: C_B(v) = sum_{s != v != t} sigma_st(v) / sigma_st where sigma_st is the number of shortest paths from s to t, and sigma_st(v) is the number of those paths passing through v. Results are stored via Node::setBetweennessCentrality.
◆ computeEdgeBetweennessCentralities()
template<typename node_t, typename edge_t>
template<typename WeightFunc>
| void dsf::Network< node_t, edge_t >::computeEdgeBetweennessCentralities |
( |
WeightFunc | getEdgeWeight | ) |
|
Compute edge betweenness centralities for all edges using Brandes' algorithm.
- Template Parameters
-
| WeightFunc | A callable type that takes a const reference to a unique_ptr<edge_t> and returns a double representing the edge weight |
- Parameters
-
| getEdgeWeight | A callable that takes a const reference to a unique_ptr<edge_t> and returns a double (must be positive) |
Implements Brandes' algorithm for directed weighted graphs. The computed centrality for each edge e is: C_B(e) = sum_{s != t} sigma_st(e) / sigma_st where sigma_st is the number of shortest paths from s to t, and sigma_st(e) is the number of those paths using edge e. Results are stored via Edge::setBetweennessCentrality.
◆ edge() [1/3]
template<typename node_t, typename edge_t>
template<typename TEdge>
Get an edge by id.
- Template Parameters
-
| TEdge | The type of the edge |
- Parameters
-
- Returns
- TEdge& A reference to the edge
◆ edge() [2/3]
template<typename node_t, typename edge_t>
| std::unique_ptr< edge_t > & dsf::Network< node_t, edge_t >::edge |
( |
Id | edgeId | ) |
|
Get an edge by id.
- Parameters
-
- Returns
- std::unique_ptr<edge_t>& A reference to the edge
◆ edge() [3/3]
template<typename node_t, typename edge_t>
| std::unique_ptr< edge_t > const & dsf::Network< node_t, edge_t >::edge |
( |
Id | edgeId | ) |
const |
Get an edge by id.
- Parameters
-
- Returns
- std::unique_ptr<edge_t> const& A const reference to the edge
◆ edges()
template<typename node_t, typename edge_t>
| std::unordered_map< Id, std::unique_ptr< edge_t > > const & dsf::Network< node_t, edge_t >::edges |
( |
| ) |
const |
Get the edges as an unordered map.
- Returns
- std::unordered_map<Id, std::unique_ptr<edge_t>> The edges
◆ nEdges()
template<typename node_t, typename edge_t>
Get the number of edges.
- Returns
- size_t The number of edges
◆ nNodes()
template<typename node_t, typename edge_t>
Get the number of nodes.
- Returns
- size_t The number of nodes
◆ node() [1/3]
template<typename node_t, typename edge_t>
template<typename TNode>
Get a node by id.
- Template Parameters
-
| TNode | The type of the node |
- Parameters
-
- Returns
- TNode& A reference to the node
◆ node() [2/3]
template<typename node_t, typename edge_t>
| std::unique_ptr< node_t > & dsf::Network< node_t, edge_t >::node |
( |
Id | nodeId | ) |
|
Get a node by id.
- Parameters
-
- Returns
- std::unique_ptr<node_t>& A reference to the node
◆ node() [3/3]
template<typename node_t, typename edge_t>
| std::unique_ptr< node_t > const & dsf::Network< node_t, edge_t >::node |
( |
Id | nodeId | ) |
const |
Get a node by id.
- Parameters
-
- Returns
- std::unique_ptr<node_t> const& A const reference to the node
◆ nodes()
template<typename node_t, typename edge_t>
| std::unordered_map< Id, std::unique_ptr< node_t > > const & dsf::Network< node_t, edge_t >::nodes |
( |
| ) |
const |
Get the nodes as an unordered map.
- Returns
- std::unordered_map<Id, std::unique_ptr<node_t>> The nodes
The documentation for this class was generated from the following file: