int main(int argc, const char **argv){ if( argc<5 ){ usage(cerr); return 1; } try{ Params params; set_params( argc, argv, params ); params.check(); K_Clust c( ¶ms ); if (params.profile_query){ std::cerr << "Preprocessing...\n"; c.prepare(); std::cerr << "done.\n"; } Chronometer chron; chron.start(); c.cluster(); // c.kDP_benchmark_scop_tpfp(); float cl_seconds = chron.getSnapShotSeconds(); cerr << "Runtime for representatives: " << cl_seconds << " seconds" << endl; c.write_representatives_db(); float wrep_seconds = chron.getSnapShotSeconds(); cerr << "Runtime for write representatives: " << wrep_seconds - cl_seconds << " seconds" << endl; c.write_dmp_files(); float wdmp_seconds = chron.getSnapShotSeconds(); cerr << "Runtime for write dmp files: " << wdmp_seconds - wrep_seconds << " seconds" << endl; // c.write_debug_files((params.get_working_dir() +"debug.dat").c_str()); // float wdebug_seconds = chron.getSnapShotSeconds(); // cerr << "Runtime for write debug files: " << wdebug_seconds - wdmp_seconds << " seconds" << endl; if( params.refinement ){ cerr << "Perform refinement" << endl; c.refine(); cerr << "Runtime for refinement: " << chron.getSnapShotSeconds()-wdmp_seconds << " seconds" << endl; } //cerr << "After refinement - before free tables" << endl; c.free_tables_seedlists_kmeraln(); if( params.refinement ){ //cerr << "Write refined nodes" << endl; c.write_refined_nodes_dmp(); } //cerr << "write debug files" << endl; // c.write_debug_files( (params.get_working_dir() +"debug_refined.dat").c_str() ); //cerr << "cleanup tmp-files" << endl; c.cleanup_tmp_files(); //cerr << "Print time" << endl; chron.stop(); chron.print_time( std::cerr ); }catch(const std::exception &e){ std::cerr << std::endl << ">" << std::endl; std::cerr << "ERROR: " << e.what() << std::endl; std::cerr << ">" << std::endl; return 3; } return 0; }