Mercurial > repos > petrn > repeatexplorer
view louvain/main_convert.cpp @ 5:7e55ef6f9a05 draft
Uploaded
author | petrn |
---|---|
date | Fri, 20 Dec 2019 12:45:18 +0000 |
parents | f6ebec6e235e |
children |
line wrap: on
line source
// File: main_convert.cpp // -- conversion of a graph from ascii to binary, sample main file //----------------------------------------------------------------------------- // Community detection // Based on the article "Fast unfolding of community hierarchies in large networks" // Copyright (C) 2008 V. Blondel, J.-L. Guillaume, R. Lambiotte, E. Lefebvre // // This program must not be distributed without agreement of the above mentionned authors. //----------------------------------------------------------------------------- // Author : E. Lefebvre, adapted by J.-L. Guillaume // Email : jean-loup.guillaume@lip6.fr // Location : Paris, France // Time : February 2008 //----------------------------------------------------------------------------- // see readme.txt for more details #include "graph.h" using namespace std; char *infile = NULL; char *outfile = NULL; char *outfile_w = NULL; int type = UNWEIGHTED; bool do_renumber = false; void usage(char *prog_name, const char *more) { cerr << more; cerr << "usage: " << prog_name << " -i input_file -o outfile [-r] [-w outfile_weight]" << endl << endl; cerr << "read the graph and convert it to binary format." << endl; cerr << "-r\tnodes are renumbered from 0 to nb_nodes-1 (the order is kept)." << endl; cerr << "-w filename\tread the graph as a weighted one and writes the weights in a separate file." << endl; cerr << "-h\tshow this usage message." << endl; exit(0); } void parse_args(int argc, char **argv) { for (int i = 1; i < argc; i++) { if(argv[i][0] == '-') { switch(argv[i][1]) { case 'i': if (i==argc-1) usage(argv[0], "Infile missing\n"); infile = argv[i+1]; i++; break; case 'o': if (i==argc-1) usage(argv[0], "Outfile missing\n"); outfile = argv[i+1]; i++; break; case 'w' : type = WEIGHTED; outfile_w = argv[i+1]; i++; break; case 'r' : do_renumber=true; break; default: usage(argv[0], "Unknown option\n"); } } else { usage(argv[0], "More than one filename\n"); } } if (infile==NULL || outfile==NULL) usage(argv[0], "In or outfile missing\n"); } int main(int argc, char **argv) { parse_args(argc, argv); Graph g(infile, type); g.clean(type); if (do_renumber) g.renumber(type); g.display_binary(outfile, outfile_w, type); }