20namespace layer1_foundations {
21namespace orbiter_kernel_system {
31 cout <<
"orbiter_session::orbiter_session" << endl;
34 cout <<
"orbiter_session::orbiter_session The_Orbiter_session is non NULL" << endl;
96 cout <<
"orbiter_session::orbiter_session done" << endl;
108 cout <<
"orbiter_session::~orbiter_session" << endl;
124 cout <<
"orbiter_session::~orbiter_session done" << endl;
130 std::string *argv,
int i,
int verbose_level)
135 cout <<
"-v <int : verbosity>" << endl;
137 else if (ST.
stringcmp(argv[i],
"-draw_options") == 0) {
138 cout <<
"-draw_options ... -end" << endl;
140 else if (ST.
stringcmp(argv[i],
"-draw_incidence_structure_description") == 0) {
141 cout <<
"-draw_incidence_structure_description ... -end" << endl;
143 else if (ST.
stringcmp(argv[i],
"-list_arguments") == 0) {
144 cout <<
"-list_arguments" << endl;
146 else if (ST.
stringcmp(argv[i],
"-seed") == 0) {
147 cout <<
"-seed <int : seed>" << endl;
149 else if (ST.
stringcmp(argv[i],
"-memory_debug") == 0) {
150 cout <<
"-memory_debug <int : memory_debug_verbose_level>" << endl;
152 else if (ST.
stringcmp(argv[i],
"-override_polynomial") == 0) {
153 cout <<
"-override_polynomial <string : polynomial in decimal>" << endl;
155 else if (ST.
stringcmp(argv[i],
"-orbiter_path") == 0) {
156 cout <<
"-orbiter_path <string : path>" << endl;
158 else if (ST.
stringcmp(argv[i],
"-magma_path") == 0) {
159 cout <<
"-magma_path <string : path>" << endl;
161 else if (ST.
stringcmp(argv[i],
"-fork") == 0) {
162 cout <<
"-fork <string : variable> <string : logfile_mask> <int : from> <int : to> <int : step>" << endl;
167 std::string *argv,
int i,
int verbose_level)
174 else if (ST.
stringcmp(argv[i],
"-draw_options") == 0) {
177 else if (ST.
stringcmp(argv[i],
"-draw_incidence_structure_description") == 0) {
180 else if (ST.
stringcmp(argv[i],
"-list_arguments") == 0) {
183 else if (ST.
stringcmp(argv[i],
"-seed") == 0) {
186 else if (ST.
stringcmp(argv[i],
"-memory_debug") == 0) {
189 else if (ST.
stringcmp(argv[i],
"-override_polynomial") == 0) {
192 else if (ST.
stringcmp(argv[i],
"-orbiter_path") == 0) {
195 else if (ST.
stringcmp(argv[i],
"-magma_path") == 0) {
198 else if (ST.
stringcmp(argv[i],
"-fork") == 0) {
205 std::string *argv,
int i0)
211 cout <<
"orbiter_session::read_arguments" << endl;
219 for (i = i0; i < argc; i++) {
225 else if (ST.
stringcmp(argv[i],
"-draw_options") == 0) {
234 cout <<
"done reading -draw_options " << endl;
235 cout <<
"i = " << i << endl;
236 cout <<
"argc = " << argc << endl;
238 cout <<
"next argument is " << argv[i] << endl;
240 cout <<
"-f_draw_options " << endl;
244 else if (ST.
stringcmp(argv[i],
"-draw_incidence_structure_description") == 0) {
253 cout <<
"done reading -draw_incidence_structure_description " << endl;
254 cout <<
"i = " << i << endl;
255 cout <<
"argc = " << argc << endl;
257 cout <<
"next argument is " << argv[i] << endl;
259 cout <<
"-draw_incidence_structure_description " << endl;
264 else if (ST.
stringcmp(argv[i],
"-list_arguments") == 0) {
267 cout <<
"-list_arguments " << endl;
270 else if (ST.
stringcmp(argv[i],
"-seed") == 0) {
274 cout <<
"-seed " <<
the_seed << endl;
277 else if (ST.
stringcmp(argv[i],
"-memory_debug") == 0) {
284 else if (ST.
stringcmp(argv[i],
"-override_polynomial") == 0) {
291 else if (ST.
stringcmp(argv[i],
"-orbiter_path") == 0) {
298 else if (ST.
stringcmp(argv[i],
"-magma_path") == 0) {
305 else if (ST.
stringcmp(argv[i],
"-fork") == 0) {
328 cout <<
"orbiter_session::read_arguments done" << endl;
339 cout <<
"orbiter_session::fork" << endl;
343 int j, h, case_number;
346 for (j = 1; j < argc; j++) {
353 cout <<
"the variable appears in " << places.size() <<
" many places:" << endl;
354 for (j = 0; j < places.size(); j++) {
355 cout <<
"argument " << places[j] <<
" is " << argv[places[j]] << endl;
361 cout <<
"forking case " << case_number << endl;
366 cmd.append(
"orbiter.out");
369 for (h = 0; h < places.size(); h++) {
370 if (places[h] == j) {
374 if (h < places.size()) {
377 sprintf(str,
"%d", case_number);
391 cout <<
"system: " << cmd << endl;
395 cout <<
"orbiter_session::fork done" << endl;
417 int *&v,
int &sz,
int verbose_level)
422 cout <<
"orbiter_session::get_vector_from_label" << endl;
424 if (isalpha(label[0])) {
426 cout <<
"orbiter_session::get_vector_from_label "
427 "searching label " << label << endl;
460 cout <<
"orbiter_session::get_vector_from_label done" << endl;
465 int *&v,
int &sz,
int verbose_level)
470 cout <<
"orbiter_session::get_int_vector_from_label" << endl;
472 if (isalpha(label[0])) {
474 cout <<
"orbiter_session::get_int_vector_from_label "
475 "searching label " << label << endl;
508 cout <<
"orbiter_session::get_int_vector_from_label done" << endl;
514 long int *&v,
int &sz,
int verbose_level)
519 cout <<
"orbiter_session::get_lint_vector_from_label" << endl;
521 if (isalpha(label[0])) {
523 cout <<
"orbiter_session::get_lint_vector_from_label "
524 "searching label " << label << endl;
557 cout <<
"orbiter_session::get_lint_vector_from_label done" << endl;
562 int *&v,
int &m,
int &n)
568 cout <<
"orbiter_session::get_matrix_from_label" << endl;
570 if (isalpha(label[0])) {
572 cout <<
"orbiter_session::get_matrix_from_label "
573 "searching label " << label << endl;
592 cout <<
"orbiter_session::get_matrix_from_label "
593 "the vector does not have matrix formatting information" << endl;
597 n = (VB->
len + m - 1) / m;
600 cout <<
"orbiter_session::get_matrix_from_label "
601 "the object must be of type vector" << endl;
607 cout <<
"orbiter_session::get_matrix_from_label "
608 "an object label must be given, starting with a letter" << endl;
613 cout <<
"orbiter_session::get_matrix_from_label done" << endl;
624 for (i = 0; i < Labels.size(); i++) {
627 cout <<
"cannot find symbol " << Labels[i] << endl;
646 long int *&the_set,
int &set_size,
int verbose_level)
651 cout <<
"orbiter_session::get_lint_vec" << endl;
653 if (isalpha(label.c_str()[0])) {
657 cout <<
"orbiter_session::get_lint_vec" << endl;
658 cout <<
"object label " << label << endl;
664 cout <<
"orbiter_session::get_lint_vec" << endl;
665 cout <<
"idx = " << idx << endl;
668 cout <<
"orbiter_session::get_lint_vec cannot find symbol " << label << endl;
672 cout <<
"orbiter_session::get_lint_vec object not of type set" << endl;
684 cout <<
"orbiter_session::get_lint_vec" << endl;
695 cout <<
"orbiter_session::get_lint_vec done" << endl;
711 cout <<
"orbiter_session::get_object_of_type_vector cannot find symbol " << label << endl;
715 cout <<
"orbiter_session::get_object_of_type_vector object type != t_vector" << endl;
726 cout <<
"memory debugging started" << endl;
732 cout <<
"memory debugging stopped" << endl;
to create a set of integers from class set_builder_description
to create a vector of field elements from class vector_builder_description
options for drawing an incidence structure
int read_arguments(int argc, std::string *argv, int verbose_level)
options for drawing an object of type layered_graph
int read_arguments(int argc, std::string *argv, int verbose_level)
maintains a registry of allocated memory
The orbiter session is responsible for the command line interface and the program execution.
void start_memory_debug()
long int nb_times_finite_field_created
void fork(int argc, std::string *argv, int verbose_level)
orbiter_kernel_system::orbiter_symbol_table * Orbiter_symbol_table
void get_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level)
data_structures::vector_builder * get_object_of_type_vector(std::string &label)
void find_symbols(std::vector< std::string > &Labels, int *&Idx)
long int nb_times_projective_space_created
int read_arguments(int argc, std::string *argv, int i0)
int longinteger_f_print_scientific
symbol_table_object_type get_object_type(int idx)
void get_int_vector_from_label(std::string &label, int *&v, int &sz, int verbose_level)
void get_lint_vec(std::string &label, long int *&the_set, int &set_size, int verbose_level)
std::string fork_variable
std::string fork_logfile_mask
void get_lint_vector_from_label(std::string &label, long int *&v, int &sz, 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)
int f_override_polynomial
void * get_object(int idx)
int syntax_tree_node_index
void print_symbol_table()
graphics::layered_graph_draw_options * draw_options
int find_symbol(std::string &label)
void print_type(symbol_table_object_type t)
void add_symbol_table_entry(std::string &label, orbiter_symbol_table_entry *Symb, int verbose_level)
int memory_debug_verbose_level
long int nb_calls_to_densenauty
int f_draw_incidence_structure_description
graphics::draw_incidence_structure_description * Draw_incidence_structure_description
orbiter_kernel_system::mem_object_registry * global_mem_object_registry
data_structures::lint_vec * Lint_vec
data_structures::int_vec * Int_vec
std::string override_polynomial
void get_matrix_from_label(std::string &label, int *&v, int &m, int &n)
long int nb_times_action_created
symbol table to store data entries for the orbiter run-time system
symbol table to store data entries for the orbiter run-time system
void print_symbol_table()
int find_symbol(std::string &str)
symbol_table_object_type get_object_type(int idx)
void print_type(symbol_table_object_type t)
void * get_object(int idx)
void add_symbol_table_entry(std::string &str, orbiter_symbol_table_entry *Symb, int verbose_level)
interface to system functions
#define Lint_vec_copy(A, B, C)
#define Int_vec_scan(A, B, C)
#define Lint_vec_scan(A, B, C)
#define Lint_vec_print(A, B, C)
#define Lint_vec_copy_to_int(A, B, C)
#define Int_vec_copy(A, B, C)
#define Int_vec_copy_to_lint(A, B, C)
Basic data structures used throughout the project.
orbiter_kernel_system::orbiter_session * Orbiter
global Orbiter session
the orbiter library for the classification of combinatorial objects