38 template<
typename T_Graph>
41 typedef typename T_Graph::Vertex Vertex;
42 typedef typename T_Graph::Edge Edge;
46 std::vector<idx_t> xadj(1,i);
47 std::vector<idx_t> adjncy;
50 for(Vertex v : graph.getVertices()){
51 for(Edge link : graph.getOutEdges(v)){
52 adjncy.push_back(link.target.id);
60 return std::make_pair(xadj, adjncy);
63 template<
typename T_Graph>
64 std::vector<typename T_Graph::Vertex> operator()(
const unsigned processID,
const unsigned processCount, T_Graph &graph){
66 typedef typename T_Graph::Vertex Vertex;
67 std::vector<Vertex> myVertices;
71 nParts = processCount;
75 return graph.getVertices();
78 idx_t nVertices = graph.getVertices().size();
81 std::vector<idx_t> part(nVertices, 0);
83 METIS_PartGraphKway(&nVertices, &nWeights,
84 csr.first.data(), csr.second.data(),
85 NULL, NULL, NULL, &nParts, NULL,
91 for(
unsigned part_i = 0; part_i < part.size(); part_i++){
92 if(part[part_i] == (
int)processID){
93 myVertices.push_back(graph.getVertex(part_i));
Definition: GraphPartition.hpp:20
std::pair< std::vector< idx_t >, std::vector< idx_t > > toCompressedRowStorage(T_Graph &graph)
Definition: GraphPartition.hpp:39