Go to the documentation of this file.
35 #ifndef GCG_GRAPH_GCG_H_
36 #define GCG_GRAPH_GCG_H_
42 #include <gsl/gsl_spmatrix.h>
43 #include <gsl/gsl_spblas.h>
63 std::vector<int> nodes;
65 gsl_spmatrix* adj_matrix_sparse;
66 gsl_spmatrix* working_adj_matrix;
68 std::vector<std::vector<double>> adj_matrix;
70 std::vector<EdgeGCG*> edges;
75 GraphGCG(
int _n_nodes,
bool _undirected);
78 virtual SCIP_RETCODE
addNNodes(
int _n_nodes);
79 virtual SCIP_RETCODE
addNNodes(
int _n_nodes, std::vector<int> weights);
85 virtual void expand(
int factor);
86 virtual void inflate(
double factor);
87 virtual void colL1Norm();
89 virtual bool stopMCL(
int iter);
90 virtual std::vector<int> getClustersMCL();
91 virtual void initMCL();
92 virtual void clearMCL();
96 virtual SCIP_RETCODE
getEdges(std::vector<void*>& edges);
97 virtual SCIP_Bool
isEdge(
int node_i,
int node_j);
101 virtual SCIP_RETCODE
addNode(
int node,
int weight);
102 virtual SCIP_RETCODE
addNode();
104 virtual SCIP_RETCODE
addEdge(
int i,
int j);
105 virtual SCIP_RETCODE
addEdge(
int node_i,
int node_j,
double weight);
106 virtual SCIP_RETCODE
setEdge(
int node_i,
int node_j,
double weight);
107 virtual SCIP_RETCODE
deleteEdge(
int node_i,
int node_j);
113 virtual SCIP_RETCODE
flush();
virtual int graphGetWeights(int node)
virtual double getEdgeWeight(int node_i, int node_j)
virtual int getNNeighbors(int node)
EdgeGCG(int s, int d, double w)
virtual SCIP_RETCODE addNNodes(int _n_nodes)
virtual int edgeComp(const EdgeGCG *a, const EdgeGCG *b)
virtual SCIP_RETCODE addNode()
virtual double getEdgeWeightPercentile(double q)
virtual SCIP_RETCODE normalize()
virtual SCIP_RETCODE flush()
virtual std::vector< int > getNeighbors(int node)
virtual std::vector< std::pair< int, double > > getNeighborWeights(int node)
virtual SCIP_RETCODE setEdge(int node_i, int node_j, double weight)
virtual SCIP_RETCODE addEdge(int i, int j)
virtual std::vector< std::vector< double > > getAdjMatrix()
virtual SCIP_RETCODE deleteEdge(int node_i, int node_j)
virtual SCIP_RETCODE deleteNode(int node)
virtual SCIP_Bool isEdge(int node_i, int node_j)
virtual SCIP_RETCODE getEdges(std::vector< void * > &edges)