16namespace layer5_applications {
17namespace apps_graph_theory {
35 int f_v = (verbose_level >= 1);
38 cout <<
"graph_theoretic_activity::init" << endl;
50 cout <<
"graph_theoretic_activity::init done" << endl;
56 int f_v = (verbose_level >= 1);
59 cout <<
"graph_theoretic_activity::perform_activity, CG->label=" <<
CG->
label << endl;
65 cout <<
"graph_theoretic_activity::perform_activity f_find_cliques" << endl;
69 cout <<
"graph_theoretic_activity::perform_activity before CG->all_cliques" << endl;
75 cout <<
"graph_theoretic_activity::perform_activity after CG->all_cliques" << endl;
88 cout <<
"graph_theoretic_activity::perform_activity f_export_magma" << endl;
103 cout <<
"exporting to magma as " << fname_magma << endl;
112 cout <<
"export_magma done" << endl;
117 cout <<
"graph_theoretic_activity::perform_activity f_export_maple" << endl;
129 cout <<
"exporting to maple as " << fname_maple << endl;
136 cout <<
"export_maple done" << endl;
142 cout <<
"graph_theoretic_activity::perform_activity f_export_csv" << endl;
153 cout <<
"exporting to csv as " << fname_csv << endl;
162 cout <<
"graph_theoretic_activity::perform_activity f_export_graphviz" << endl;
173 cout <<
"exporting to gv as " << fname_csv << endl;
182 cout <<
"graph_theoretic_activity::perform_activity f_print" << endl;
189 cout <<
"graph_theoretic_activity::perform_activity f_sort_by_colors" << endl;
198 CG2->
save(fname2, verbose_level);
213 cout <<
"We found " << m <<
" cases for splitting" << endl;
214 for (c = 0; c < m; c++) {
216 cout <<
"splitting case " << c <<
" / " << m <<
":" << endl;
217 a = Split[2 * c + 0];
224 vertex_subset, color_subset,
233 sprintf(str,
"_case_%03d.bin", c);
234 fname_out.append(str);
237 Subgraph->
save(fname_out, verbose_level - 2);
252 Reps, verbose_level);
255 cout <<
"We found " << Reps->
nb_sets <<
" cases for splitting" << endl;
257 for (c = 0; c < Reps->
nb_sets; c++) {
259 cout <<
"splitting case " << c <<
" / " << Reps->
nb_sets <<
":" << endl;
268 vertex_subset, color_subset,
277 sprintf(str,
"_case_%03d.bin", c);
278 fname_out.append(str);
281 Subgraph->
save(fname_out, verbose_level - 2);
300 vertex_subset, color_subset,
305 string fname_base, fname_out, fname_subset;
309 fname_base.append(
"_");
312 fname_out.assign(fname_base);
313 fname_out.append(
".graph");
316 Subgraph->
save(fname_out, verbose_level - 2);
318 fname_subset.assign(fname_base);
319 fname_subset.append(
"_subset.txt");
321 vertex_subset->
save(fname_subset, verbose_level);
333 fname.append(
".colored_graph");
335 cout <<
"before save fname_graph=" << fname << endl;
336 CG->
save(fname, verbose_level);
337 cout <<
"after save" << endl;
342 cout <<
"We will write to the file " << fname << endl;
346 cout <<
"Written file " << fname <<
" of size "
356 cout <<
"graph_theoretic_activity::perform_activity f_automorphism_group" << endl;
363 fname.append(
".colored_graph");
370 cout <<
"graph_theoretic_activity::perform_activity before Nauty.create_automorphism_group_of_colored_graph_object" << endl;
374 cout <<
"graph_theoretic_activity::perform_activity after Nauty.create_automorphism_group_of_colored_graph_object" << endl;
379 fname_report.assign(
CG->
label);
380 fname_report.append(
"_report.tex");
387 snprintf(title, 1000,
"Automorphism group of %s",
CG->
label_tex.c_str());
393 ofstream ost(fname_report);
412 ost <<
"\\noindent The automorphism group of $" <<
CG->
label_tex <<
"$ "
413 "has order " << go <<
" and is generated by:\\\\" << endl;
418 cout <<
"graph_theoretic_activity::perform_activity after report" << endl;
427 cout <<
"written file " << fname_report <<
" of size "
434 fname_group.append(
"_group.makefile");
437 cout <<
"graph_theoretic_activity::perform_activity before Aut->export_to_orbiter_as_bsgs label = " <<
CG->
label << endl;
441 cout <<
"graph_theoretic_activity::perform_activity before Aut->export_to_orbiter_as_bsgs degree = " << Aut->
degree << endl;
445 cout <<
"graph_theoretic_activity::perform_activity after Aut->export_to_orbiter_as_bsgs" << endl;
449 cout <<
"written file " << fname_group <<
" of size "
456 cout <<
"graph_theoretic_activity::perform_activity f_properties" << endl;
464 cout <<
"graph_theoretic_activity::perform_activity f_properties" << endl;
474 cout <<
"The eigenvalues are:" << endl;
476 cout << i <<
" : " << E[i] << endl;
483 cout <<
"The energy is " << energy << endl;
485 cout <<
"The Laplace eigenvalues are:" << endl;
487 cout << i <<
" : " << L[i] << endl;
496 snprintf(title, 1000,
"Eigenvalues of %s",
CG->
label_tex.c_str());
501 fname.append(
"_eigenvalues.tex");
520 cout <<
"graph_theoretic_activity::perform_activity before report" << endl;
525 ost <<
"\\begin{array}{|r|r|r|}" << endl;
526 ost <<
"\\hline" << endl;
527 ost <<
" i & \\lambda_i & \\theta_i \\\\" << endl;
528 ost <<
"\\hline" << endl;
529 ost <<
"\\hline" << endl;
536 ost <<
"\\\\" << endl;
537 ost <<
"\\hline" << endl;
539 ost <<
"\\end{array}" << endl;
542 ost <<
"The energy is " << energy <<
"\\\\" << endl;
543 ost <<
"Eigenvalues: $\\lambda_i$\\\\" << endl;
544 ost <<
"Laplace eigenvalues: $\\theta_i$\\\\" << endl;
547 cout <<
"graph_theoretic_activity::perform_activity after report" << endl;
556 cout <<
"graph_theoretic_activity::perform_activity written file " << fname <<
" of size "
568 cout <<
"graph_theoretic_activity::perform_activity f_draw" << endl;
574 fname.append(
"_draw.mp");
586 cout <<
"graph_theoretic_activity::perform_activity done" << endl;
subset of size k of a set of size n
void save(std::string &fname, int verbose_level)
a graph with a vertex coloring
void export_to_maple(std::string &fname, int verbose_level)
colored_graph * sort_by_color_classes(int verbose_level)
void export_to_csv(std::string &fname, int verbose_level)
void Laplace_eigenvalues(double *&E, int verbose_level)
void save(std::string &fname, int verbose_level)
void export_to_magma(std::string &fname, int verbose_level)
void export_to_text(std::string &fname, int verbose_level)
void properties(int verbose_level)
void all_cliques(clique_finder_control *Control, std::string &graph_label, int verbose_level)
colored_graph * compute_neighborhood_subgraph(int pt, data_structures::fancy_set *&vertex_subset, data_structures::fancy_set *&color_subset, int verbose_level)
void eigenvalues(double *&E, int verbose_level)
void draw_on_circle(std::string &fname, graphics::layered_graph_draw_options *Draw_options, int verbose_level)
colored_graph * compute_neighborhood_subgraph_based_on_subset(long int *subset, int subset_sz, data_structures::fancy_set *&vertex_subset, data_structures::fancy_set *&color_subset, int verbose_level)
void export_to_graphviz(std::string &fname, int verbose_level)
a collection of functions related to file io
void read_column_and_parse(std::string &fname, std::string &col_label, data_structures::set_of_sets *&SoS, int verbose_level)
long int file_size(std::string &fname)
void lint_matrix_read_csv(std::string &fname, long int *&M, int &m, int &n, int verbose_level)
void write_set_to_file(std::string &fname, long int *the_set, int set_size, int verbose_level)
interface to create latex output files
void head(std::ostream &ost, int f_book, int f_title, const char *title, const char *author, int f_toc, int f_landscape, int f_12pt, int f_enlarged_page, int f_pagenumbers, const char *extras_for_preamble)
void foot(std::ostream &ost)
a class to represent arbitrary precision integers
a permutation group in a fixed action.
groups::strong_generators * Strong_gens
void export_to_orbiter_as_bsgs(std::string &fname, std::string &label, std::string &label_tex, groups::strong_generators *SG, int verbose_level)
Interface to the graph canonization software Nauty.
action * create_automorphism_group_of_colored_graph_object(graph_theory::colored_graph *CG, int verbose_level)
void print_generators_tex()
void group_order(ring_theory::longinteger_object &go)
description of an activity for graphs
std::string split_by_clique_set
std::string split_by_file
graph_theory::clique_finder_control * Clique_finder_control
std::string split_input_fname
std::string split_by_clique_label
std::string split_by_starters_fname_reps
std::string split_by_starters_col_label
~graph_theoretic_activity()
graph_theory::colored_graph * CG
void perform_activity(int verbose_level)
graph_theoretic_activity_description * Descr
void init(graph_theoretic_activity_description *Descr, graph_theory::colored_graph *CG, int verbose_level)
graph_theoretic_activity()
#define Lint_vec_scan(A, B, C)
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects