int run(const std::string& flags) { Date startDate; Config conf; try { std::vector<ParsedOption> parsedFlags = getConfig(conf, flags); Log::init(conf.verbosity, conf.silent, conf.verboseNumberPrecision); Log() << "=======================================================\n"; Log() << " Infomap v" << INFOMAP_VERSION << " starts at " << Date() << "\n"; Log() << " -> Input network: " << conf.networkFile << "\n"; Log() << " -> Output path: " << conf.outDirectory << "\n"; if (!parsedFlags.empty()) { for (unsigned int i = 0; i < parsedFlags.size(); ++i) Log() << (i == 0 ? " -> Configuration: " : " ") << parsedFlags[i] << "\n"; } Log() << " -> Use " << (conf.isUndirected()? "undirected" : "directed") << " flow and " << (conf.isMemoryNetwork()? "2nd" : "1st") << " order Markov dynamics"; if (conf.useTeleportation()) Log() << " with " << (conf.recordedTeleportation ? "recorded" : "unrecorded") << " teleportation to " << (conf.teleportToNodes ? "nodes" : "links"); Log() << "\n"; Log() << "=======================================================\n"; if (conf.benchmark) initBenchmark(conf, flags); conf.adaptDefaults(); runInfomap(conf); } catch (std::exception& e) { std::cerr << e.what() << std::endl; return EXIT_FAILURE; } ASSERT(NodeBase::nodeCount() == 0); //TODO: Not working with OpenMP // if (NodeBase::nodeCount() != 0) // Log() << "Warning: " << NodeBase::nodeCount() << " nodes not deleted!\n"; Log() << "===================================================\n"; Log() << " Infomap ends at " << Date() << "\n"; Log() << " (Elapsed time: " << (Date() - startDate) << ")\n"; Log() << "===================================================\n"; return 0; }
int run(Network& input, HierarchicalNetwork& output) { try { runInfomap(input.config(), input, output); } catch (std::exception& e) { std::cerr << e.what() << std::endl; return 1; } return 0; }
int run(int argc, char* argv[]) { Date startDate; Config conf; try { conf = getConfig(argc, argv); if (conf.benchmark) initBenchmark(conf, argc, argv); if (conf.verbosity == 0) conf.verboseNumberPrecision = 4; std::cout << std::setprecision(conf.verboseNumberPrecision); } catch (std::exception& e) { std::cerr << e.what() << std::endl; return 1; } std::cout << "===========================================\n"; std::cout << " Infomap v" << INFOMAP_VERSION << " starts at " << Date() << "\n"; std::cout << "===========================================\n"; runInfomap(conf); ASSERT(NodeBase::nodeCount() == 0); //TODO: Not working with OpenMP // if (NodeBase::nodeCount() != 0) // std::cout << "Warning: " << NodeBase::nodeCount() << " nodes not deleted!\n"; std::cout << "===========================================\n"; std::cout << " Infomap ends at " << Date() << "\n"; std::cout << " (Elapsed time: " << (Date() - startDate) << ")\n"; std::cout << "===========================================\n"; // ElapsedTime t1 = (Date() - startDate); // std::cout << "Elapsed time: " << t1 << " (" << // Stopwatch::getElapsedTimeSinceProgramStartInSec() << "s serial)." << std::endl; return 0; }