8#ifndef SRC_LIB_TOP_LEVEL_INTERFACES_INTERFACES_H_
9#define SRC_LIB_TOP_LEVEL_INTERFACES_INTERFACES_H_
15namespace layer5_applications {
16namespace user_interface {
31 int f_finite_field_activity;
32 field_theory::finite_field_activity_description *Finite_field_activity_description;
34 int f_projective_space_activity;
37 int f_orthogonal_space_activity;
40 int f_group_theoretic_activity;
43 int f_cubic_surface_activity;
46 int f_quartic_curve_activity;
49 int f_combinatorial_object_activity;
52 int f_graph_theoretic_activity;
55 int f_classification_of_cubic_surfaces_with_double_sixes_activity;
58 int f_spread_table_activity;
61 int f_packing_with_symmetry_assumption_activity;
64 int f_packing_fixed_points_activity;
67 int f_graph_classification_activity;
70 int f_diophant_activity;
71 solvers::diophant_activity_description *Diophant_activity_description;
73 int f_design_activity;
76 int f_large_set_was_activity;
84 int argc, std::string *argv,
int &i,
int verbose_level);
85 void worker(
int verbose_level);
118 int f_count_subprimitive;
119 int count_subprimitive_Q_max;
120 int count_subprimitive_H_max;
122 int f_equivalence_class_of_fractions;
123 int equivalence_class_of_fractions_N;
125 int f_character_table_symmetric_group;
126 int character_table_symmetric_group_n;
128 int f_make_A5_in_PSL_2_q;
129 int make_A5_in_PSL_2_q_q;
131 int f_search_for_primitive_polynomial_in_range;
132 int p_min, p_max, deg_min, deg_max;
134 int f_order_of_q_mod_n;
135 int order_of_q_mod_n_q;
136 int order_of_q_mod_n_n_min;
137 int order_of_q_mod_n_n_max;
139 int f_eulerfunction_interval;
140 int eulerfunction_interval_n_min;
141 int eulerfunction_interval_n_max;
143 int f_young_symmetrizer;
144 int young_symmetrizer_n;
145 int f_young_symmetrizer_sym_4;
148 graphics::draw_mod_n_description *Draw_mod_n_description;
150 int f_power_function_mod_n;
151 int power_function_mod_n_k;
152 int power_function_mod_n_n;
154 int f_all_rational_normal_forms;
155 std::string all_rational_normal_forms_finite_field_label;
156 int all_rational_normal_forms_d;
159 int f_eigenstuff_from_file;
160 std::string eigenstuff_finite_field_label;
162 std::string eigenstuff_coeffs;
163 std::string eigenstuff_fname;
168 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
171 std::string *argv,
int &i,
int verbose_level);
173 void worker(
int verbose_level);
189 int f_make_macwilliams_system;
190 int make_macwilliams_system_q;
191 int make_macwilliams_system_n;
192 int make_macwilliams_system_k;
194 int f_table_of_bounds;
195 int table_of_bounds_n_max;
196 int table_of_bounds_q;
198 int f_make_bounds_for_d_given_n_and_k_and_q;
210 int f_Hamming_space_distance_matrix;
214 int f_general_code_binary;
215 int general_code_binary_n;
216 std::string general_code_binary_text;
219 std::string code_diagram_label;
220 std::string code_diagram_codewords_text;
223 int f_code_diagram_from_file;
224 std::string code_diagram_from_file_codewords_fname;
230 int metric_ball_radius;
233 int f_linear_code_through_basis;
234 int linear_code_through_basis_n;
235 std::string linear_code_through_basis_text;
237 int f_linear_code_through_columns_of_parity_check_projectively;
238 int f_linear_code_through_columns_of_parity_check;
240 int linear_code_through_columns_of_parity_check_k;
241 std::string linear_code_through_columns_of_parity_check_text;
245 std::vector<std::string> long_code_generators;
247 int f_encode_text_5bits;
248 std::string encode_text_5bits_input;
249 std::string encode_text_5bits_fname;
251 int f_field_induction;
252 std::string field_induction_fname_in;
253 std::string field_induction_fname_out;
254 int field_induction_nb_bits;
260 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
263 std::string *argv,
int &i,
int verbose_level);
265 void worker(
int verbose_level);
279 solvers::diophant_description *Diophant_description;
281 int f_diophant_activity;
282 solvers::diophant_activity_description *Diophant_activity_description;
287 int f_random_permutation;
288 int random_permutation_degree;
289 std::string random_permutation_fname_csv;
291 int f_read_poset_file;
292 std::string read_poset_file_fname;
295 double grouping_x_stretch;
297 int f_list_parameters_of_SRG;
298 int list_parameters_of_SRG_v_max;
300 int f_conjugacy_classes_Sym_n;
301 int conjugacy_classes_Sym_n_n;
303 int f_tree_of_all_k_subsets;
304 int tree_of_all_k_subsets_n;
305 int tree_of_all_k_subsets_k;
307 int f_Delandtsheer_Doyen;
310 int f_tdo_refinement;
311 combinatorics::tdo_refinement_description *Tdo_refinement_descr;
314 std::string tdo_print_fname;
316 int f_convert_stack_to_tdo;
317 std::string stack_fname;
319 int f_maximal_arc_parameters;
320 int maximal_arc_parameters_q, maximal_arc_parameters_r;
322 int f_arc_parameters;
323 int arc_parameters_q, arc_parameters_s, arc_parameters_r;
325 int f_pentomino_puzzle;
327 int f_regular_linear_space_classify;
330 int f_draw_layered_graph;
331 std::string draw_layered_graph_fname;
332 graphics::layered_graph_draw_options *Layered_graph_draw_options;
334 int f_read_solutions_and_tally;
335 std::string read_solutions_and_tally_fname;
336 int read_solutions_and_tally_sz;
338 int f_make_elementary_symmetric_functions;
339 int make_elementary_symmetric_functions_n;
340 int make_elementary_symmetric_functions_k_max;
342 int f_Dedekind_numbers;
351 std::string rank_k_subset_text;
353 int f_geometry_builder;
354 geometry_builder::geometry_builder_description *Geometry_builder_description;
359 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
362 std::string *argv,
int &i,
int verbose_level);
364 void worker(
int verbose_level);
365 void do_diophant(solvers::diophant_description *Descr,
int verbose_level);
367 void do_bent(
int n,
int verbose_level);
393 int key_length, threshold;
405 std::string RSA_text;
407 int f_primitive_root;
408 std::string primitive_root_p;
410 int f_smallest_primitive_root;
411 int smallest_primitive_root_p;
413 int f_smallest_primitive_root_interval;
414 int smallest_primitive_root_interval_min;
415 int smallest_primitive_root_interval_max;
417 int f_number_of_primitive_roots_interval;
428 std::string power_mod_a;
429 std::string power_mod_k;
430 std::string power_mod_n;
433 long int discrete_log_y;
434 long int discrete_log_a;
435 long int discrete_log_m;
438 int RSA_setup_nb_bits;
439 int RSA_setup_nb_tests_solovay_strassen;
440 int RSA_setup_f_miller_rabin_test;
442 int f_RSA_encrypt_text;
444 std::string RSA_encrypt_text;
447 int sift_smooth_from;
449 std::string sift_smooth_factor_base;
452 std::string square_root_number;
454 int f_square_root_mod;
455 std::string square_root_mod_a;
456 std::string square_root_mod_m;
458 int f_all_square_roots_mod_n;
459 std::string all_square_roots_mod_n_a;
460 std::string all_square_roots_mod_n_n;
462 int f_quadratic_sieve;
463 int quadratic_sieve_n;
464 int quadratic_sieve_factorbase;
465 int quadratic_sieve_x0;
471 int f_solovay_strassen;
472 int solovay_strassen_p;
473 int solovay_strassen_a;
477 int miller_rabin_nb_times;
481 int fermat_test_nb_times;
483 int f_find_pseudoprime;
484 int find_pseudoprime_nb_digits;
485 int find_pseudoprime_nb_fermat;
486 int find_pseudoprime_nb_miller_rabin;
487 int find_pseudoprime_nb_solovay_strassen;
489 int f_find_strong_pseudoprime;
491 int f_miller_rabin_text;
492 int miller_rabin_text_nb_times;
493 std::string miller_rabin_number_text;
497 std::string random_fname_csv;
502 int f_affine_sequence;
503 int affine_sequence_a;
504 int affine_sequence_c;
505 int affine_sequence_m;
509 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
511 void read_arguments(
int argc, std::string *argv,
int &i,
int verbose_level);
513 void worker(
int verbose_level);
528 graphics::povray_job_description *Povray_job_description;
530 int f_prepare_frames;
531 orbiter_kernel_system::prepare_frames *Prepare_frames;
535 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
537 void read_arguments(
int argc, std::string *argv,
int &i,
int verbose_level);
539 void worker(
int verbose_level);
555 int f_create_points_on_quartic;
556 double desired_distance;
558 int f_create_points_on_parabola;
565 std::string smooth_curve_label;
567 double smooth_curve_boundary;
568 double smooth_curve_t_min;
569 double smooth_curve_t_max;
570 function_polish_description *FP_descr;
577 int f_make_table_of_surfaces;
579 int f_create_surface_reports;
580 std::string create_surface_reports_field_orders_text;
582 int f_create_surface_atlas;
583 int create_surface_atlas_q_max;
585 int f_create_dickson_atlas;
587 std::vector<std::string> transform_coeffs;
588 std::vector<int> f_inverse_transform;
595 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
598 std::string *argv,
int &i,
int verbose_level);
600 void worker(
int verbose_level);
638 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
641 int argc, std::string *argv,
int &i,
int verbose_level);
643 int argc, std::string *argv,
int &i,
int verbose_level);
644 void worker(
int verbose_level);
662 orbiter_kernel_system::create_file_description *Create_file_description;
664 int f_csv_file_select_rows;
665 std::string csv_file_select_rows_fname;
666 std::string csv_file_select_rows_text;
668 int f_csv_file_split_rows_modulo;
669 std::string csv_file_split_rows_modulo_fname;
670 int csv_file_split_rows_modulo_n;
672 int f_csv_file_select_cols;
673 std::string csv_file_select_cols_fname;
674 std::string csv_file_select_cols_text;
676 int f_csv_file_select_rows_and_cols;
677 std::string csv_file_select_rows_and_cols_fname;
678 std::string csv_file_select_rows_and_cols_R_text;
679 std::string csv_file_select_rows_and_cols_C_text;
681 int f_csv_file_sort_each_row;
682 std::string csv_file_sort_each_row_fname;
686 std::vector<std::string> csv_file_join_fname;
687 std::vector<std::string> csv_file_join_identifier;
689 int f_csv_file_concatenate;
690 std::string csv_file_concatenate_fname_out;
691 std::vector<std::string> csv_file_concatenate_fname_in;
693 int f_csv_file_extract_column_to_txt;
694 std::string csv_file_extract_column_to_txt_fname;
695 std::string csv_file_extract_column_to_txt_col_label;
698 int f_csv_file_latex;
699 int f_produce_latex_header;
700 std::string csv_file_latex_fname;
703 graphics::draw_bitmap_control *Draw_bitmap_control;
706 std::string reformat_fname_in;
707 std::string reformat_fname_out;
708 int reformat_nb_cols;
710 int f_split_by_values;
711 std::string split_by_values_fname_in;
713 int f_store_as_csv_file;
714 std::string store_as_csv_file_fname;
715 int store_as_csv_file_m;
716 int store_as_csv_file_n;
717 std::string store_as_csv_file_data;
727 std::string loop_variable;
731 std::string *loop_argv;
734 std::string plot_function_fname;
736 int f_draw_projective_curve;
737 graphics::draw_projective_curve_description *Draw_projective_curve_description;
740 graphics::tree_draw_options *Tree_draw_options;
746 void print_help(
int argc, std::string *argv,
int i,
int verbose_level);
749 std::string *argv,
int &i,
int verbose_level);
751 void worker(
int verbose_level);
798 int argc, std::string *Argv,
int &i,
int verbose_level);
799 void execute(
int verbose_level);
823 std::string *argv,
int i0);
826 void parse(
int argc, std::string *Argv,
int &i, std::vector<void * > &program,
int verbose_level);
830 void find_symbols(std::vector<std::string> &Labels,
int *&Idx);
833 orbiter_kernel_system::orbiter_symbol_table_entry *Symb,
int verbose_level);
876 expression_parser::formula *
F;
948 int argc, std::string *argv,
int &i,
int verbose_level);
960 expression_parser::formula *
F,
description of an activity for a classification of cubic surfaces with 27 lines with double sixes
description of an activity associated with a cubic surface
description of an activity associated with a quartic curve
a wrapper for linear_group and permutation_group_create
create a new group or group action from an old
description of an activity associated with a linear group
description of an activity for a combinatorial object
description of the problem for delandtsheer_doyen
to describe an activity for a design
to describe the construction of a known design from the command line
description of an activity for a large set search with assumed symmetry
command line description of tasks for large sets with assumed symmetry
a description of a class of regular linear spaces from the command line
a description of a graph using command line arguments
an activity for a classification of graphs and tournaments
classification of graphs and tournaments
description of an activity for graphs
description of an activity associated with an orthogonal space
description of an orthogonal space with action
command line description of picking long orbits of packings with assumed symmetry
description of an activity involving a packing_was
command line description of tasks for packings with assumed symmetry
description of an activity after the fixed points have been selected in the construction of packings ...
description of an activity associated with a projective space
description of a projective space with action
projective space PG(n,q) with automorphism group PGGL(n+1,q)
to describe the construction of a known spread from the command line
description of an activity for a spread table
description of an activity for an orbiter symbol
void do_packing_was_activity(int verbose_level)
void do_diophant_activity(int verbose_level)
void do_projective_space_activity(int verbose_level)
void do_finite_field_activity(int verbose_level)
void do_graph_theoretic_activity(int verbose_level)
void do_quartic_curve_activity(int verbose_level)
void do_classification_of_cubic_surfaces_with_double_sixes_activity(int verbose_level)
void print_finite_field_activity()
void do_design_activity(int verbose_level)
void worker(int verbose_level)
void read_arguments(interface_symbol_table *Sym, int argc, std::string *argv, int &i, int verbose_level)
void do_packing_fixed_points_activity(int verbose_level)
void do_orthogonal_space_activity(int verbose_level)
void do_large_set_was_activity(int verbose_level)
void do_spread_table_activity(int verbose_level)
void do_group_theoretic_activity(int verbose_level)
void do_cubic_surface_activity(int verbose_level)
void do_graph_classification_activity(int verbose_level)
void do_combinatorial_object_activity(int verbose_level)
interface to the algebra module
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void do_character_table_symmetric_group(int deg, int verbose_level)
void worker(int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
interface to the coding theory module
interface_coding_theory()
void print_help(int argc, std::string *argv, int i, int verbose_level)
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void worker(int verbose_level)
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
interface to the coding theory module
interface_combinatorics()
void do_bent(int n, int verbose_level)
void do_diophant(solvers::diophant_description *Descr, int verbose_level)
void worker(int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
void do_conjugacy_classes_Sym_n(int n, int verbose_level)
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void do_diophant_activity(solvers::diophant_activity_description *Descr, int verbose_level)
void do_Delandtsheer_Doyen(apps_combinatorics::delandtsheer_doyen_description *Descr, int verbose_level)
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
interface to the cryptography module
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
void worker(int verbose_level)
interface to the povray rendering module
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void worker(int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
interface to the projective geometry module
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
void print_help(int argc, std::string *argv, int i, int verbose_level)
void do_create_spread(spreads::spread_create_description *Descr, int verbose_level)
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
void worker(int verbose_level)
interface to the orbiter symbol table
orbiter_top_level_session * Orbiter_top_level_session
void print_help(int argc, std::string *argv, int i, int verbose_level)
void init(orbiter_top_level_session *Orbiter_top_level_session, int verbose_level)
void worker(int verbose_level)
void read_with(int argc, std::string *argv, int &i, int verbose_level)
symbol_definition * Symbol_definition
activity_description * Activity_description
void read_arguments(int argc, std::string *argv, int &i, int verbose_level)
int recognize_keyword(int argc, std::string *argv, int i, int verbose_level)
std::vector< std::string > with_labels
a single command in the Orbiter dash code language
interface_coding_theory * Coding_theory
interface_projective * Projective
interface_symbol_table * Symbol_table
interface_toolkit * Toolkit
interface_combinatorics * Combinatorics
interface_cryptography * Cryptography
void parse(orbiter_top_level_session *Orbiter_top_level_session, int argc, std::string *Argv, int &i, int verbose_level)
interface_povray * Povray
void execute(int verbose_level)
orbiter_top_level_session * Orbiter_top_level_session
interface_algebra * Algebra
The top level orbiter session is responsible for the command line interface and the program execution...
projective_geometry::projective_space_with_action * get_object_of_type_projective_space(std::string &label)
int find_symbol(std::string &label)
orbiter_kernel_system::orbiter_session * Orbiter_session
~orbiter_top_level_session()
void add_symbol_table_entry(std::string &label, orbiter_kernel_system::orbiter_symbol_table_entry *Symb, int verbose_level)
void handle_everything(int argc, std::string *Argv, int i, int verbose_level)
int startup_and_read_arguments(int argc, std::string *argv, int i0)
void * get_object(int idx)
void parse(int argc, std::string *Argv, int &i, std::vector< void * > &program, int verbose_level)
orbiter_top_level_session()
void print_symbol_table()
apps_algebra::any_group * get_object_of_type_any_group(std::string &label)
void find_symbols(std::vector< std::string > &Labels, int *&Idx)
void parse_and_execute(int argc, std::string *Argv, int i, int verbose_level)
symbol_table_object_type get_object_type(int idx)
definition of an orbiter symbol
int packing_with_assumed_symmetry_choose_fixed_points_clique_size
void definition_of_spread_table(int verbose_level)
std::string packing_with_assumed_symmetry_label
apps_combinatorics::design_create_description * Design_create_description
void definition_of_formula(expression_parser::formula *F, int verbose_level)
orthogonal_geometry_applications::orthogonal_space_with_action_description * Orthogonal_space_with_action_description
int f_graph_classification
packings::packing_long_orbits_description * Packing_long_orbits_description
data_structures::set_builder_description * Set_builder_description
std::string design_table_group
expression_parser::formula * F
std::string geometric_object_projective_space_label
std::string spread_selection_text
void definition_of_graph(int verbose_level)
std::string spread_tables_prefix
void definition_of_graph_classification(int verbose_level)
geometry::geometric_object_description * Geometric_object_description
apps_combinatorics::large_set_was_description * large_set_was_descr
std::string packing_long_orbits_choose_fixed_points_label
void definition_of_combinatorial_object(int verbose_level)
void definition_of_large_set_was(int verbose_level)
std::string list_of_objects
interface_symbol_table * Sym
void definition_of_collection(std::string &list_of_objects, int verbose_level)
void definition_of_packing_was_choose_fixed_points(int verbose_level)
geometry_builder::geometry_builder_description * Geometry_builder_description
void definition_of_geometric_object(int verbose_level)
groups::linear_group_description * Linear_group_description
std::string design_table_label
void definition_of_modified_group(int verbose_level)
projective_geometry::projective_space_with_action_description * Projective_space_with_action_description
void read_definition(interface_symbol_table *Sym, int argc, std::string *argv, int &i, int verbose_level)
void definition_of_diophant(int verbose_level)
std::string large_set_was_label_design_table
void definition_of_packing_was(int verbose_level)
void perform_definition(int verbose_level)
int f_packing_was_choose_fixed_points
field_theory::finite_field_description * Finite_field_description
solvers::diophant_description * Diophant_description
std::string spread_table_label_PA
void do_geometry_builder(int verbose_level)
void definition_of_orthogonal_space(int verbose_level)
int f_combinatorial_objects
void definition_of_packing_long_orbits(int verbose_level)
void definition_of_design_table(int verbose_level)
int f_packing_long_orbits
data_structures::vector_builder_description * Vector_builder_description
std::string managed_variables
void definition_of_vector(int verbose_level)
void definition_of_set(int verbose_level)
apps_graph_theory::graph_classify_description * Graph_classify_description
apps_graph_theory::create_graph_description * Create_graph_description
void print_definition_of_projective_space(int verbose_level)
void definition_of_design(int verbose_level)
groups::permutation_group_description * Permutation_group_description
void definition_of_projective_space(int verbose_level)
void definition_of_linear_group(int verbose_level)
void definition_of_permutation_group(int verbose_level)
std::string packing_was_label_spread_table
apps_algebra::group_modification_description * Group_modification_description
poset_classification::poset_classification_control * packing_with_assumed_symmetry_choose_fixed_points_control
data_structures::data_input_stream_description * Data_input_stream_description
std::string design_table_label_design
int dimension_of_spread_elements
packings::packing_was_description * packing_was_descr
void definition_of_finite_field(int verbose_level)
user_interface::orbiter_top_level_session * The_Orbiter_top_level_session
the orbiter library for the classification of combinatorial objects