39 FILE * infp = fopen(
"uk-union.graph.bin",
"rb");
42 fread(gen_edges, 2*nedges,
sizeof(
uint32_t), infp);
43 cout <<
"Read data" << endl;
45 vector< vector<uint32_t> > adj(nverts);
46 vector< uint32_t > shuffler(nverts);
47 iota(shuffler.begin(), shuffler.end(),
static_cast<uint32_t>(0));
48 random_shuffle ( shuffler.begin(), shuffler.end() );
50 for(
int64_t i=0; i< 2*nedges; i+=2)
52 adj[shuffler[gen_edges[i]]].push_back(shuffler[gen_edges[i+1]]);
53 adj[shuffler[gen_edges[i+1]]].push_back(shuffler[gen_edges[i]]);
55 cout <<
"Made adjacencies" << endl;
58 FILE * outp = fopen(
"uk-union.symmetric.bin",
"wb");
61 for(
int64_t i=0; i< nverts; ++i)
65 sort(adj[i].begin(), adj[i].end());
66 vector<uint32_t>::iterator p_end = unique(adj[i].begin(), adj[i].end());
67 for(vector<uint32_t>::iterator p = adj[i].begin(); p != p_end; ++p)
70 fwrite(edge, 1, 2*
sizeof(
uint32_t), outp);
75 cout <<
"Number of edges: " << count << endl;