コード例 #1
0
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;
}
コード例 #2
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;
}
コード例 #3
0
ファイル: Infomap.cpp プロジェクト: ddarmon/sfi-dynComm
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;
}