forked from Conedy/Conedy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstatisticsNetwork.h
89 lines (51 loc) · 1.96 KB
/
statisticsNetwork.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#ifndef __statisticsN
#define __statisticsN
#include "network.h"
#include "baseType.h"
#include "globals.h"
namespace conedy
{
//! Contains functions, which calculate network characteristics
class statisticsNetwork : public virtual network
{
public:
//! prints debug information to the console.
void printNodeStatistics(nodeBlueprint *n = network::stdNode);
//! returns true if the network has only one connected component. (works only for undirected networks at the moment.)
bool isConnected();
//! returns the degree of node v
nodeDescriptor degree (nodeDescriptor v) { return dynNode::lookUp(v)->degree(); }
//! returns the mean degree of the network
baseType meanDegree ();
//! return the in-degree of node n
int inDegree(nodeDescriptor n);
//! return the out-degree of node n
int outDegree(nodeDescriptor n);
//! returns the mean clustering coefficient
baseType meanClustering();
//! obsolete ?
void printStatistics ( string s );
//! returns the mean path length as determined by Dijkstra's algorithm
baseType meanPathLength();
//! returns the mean weight of connections in th network
baseType meanWeight();
void degreeCentrality ( string filename );
void closenessCentrality ( string filename );
void betweennessCentrality ( string filename );
void saveAdjacencyMatrix (string fileName);
unsigned int countEdges (edgeVirtual *e);
void inDegreeDistributionToFile ( string fileName );
void saveAdjacencyList(string fileName);
void saveGraphML(string fileName);
// void loadGraphML(string fileName) { throw "loadGraphML is a stub !";}
void printAdjacencyList();
void outDegreeDistributionToFile ( string fileName );
// obsolete ?
double networkSize();
void dijkstra( vector<baseType>& ret, nodeList vl, unsigned int v);
vector<unsigned int> inDegreeDistribution();
vector<int> outDegreeDistribution();
statisticsNetwork() {};
};
}
#endif