11#ifndef ORBITER_SRC_LIB_TOP_LEVEL_SOLVER_SOLVER_H_
12#define ORBITER_SRC_LIB_TOP_LEVEL_SOLVER_SOLVER_H_
16namespace layer4_classification {
45 long int *candidates,
int nb_candidates,
46 groups::strong_generators *Strong_gens,
47 solvers::diophant *&Dio,
long int *&col_label,
54 long int *candidates,
int nb_candidates,
55 long int *good_candidates,
int &nb_good_candidates,
56 void *data,
int verbose_level);
61 void *data,
int verbose_level);
66 int starter_case,
int verbose_level);
102 long int *candidates,
int nb_candidates,
103 long int *good_candidates,
int &nb_good_candidates,
104 void *data,
int verbose_level),
109 long int *candidates,
int nb_candidates,
110 groups::strong_generators *Strong_gens,
111 solvers::diophant *&Dio,
long int *&col_label,
120 void *data,
int verbose_level),
125 int starter_case,
int verbose_level)
128 int f_draw_system, std::string &fname_system,
129 int f_write_tree, std::string &fname_tree,
int verbose_level);
131 int f_solve,
int f_save,
int f_read_instead,
133 long int *&Solutions,
int &sol_length,
int &nb_sol,
134 int &nb_backtrack,
int &dt,
135 int f_draw_system, std::string &fname_system,
136 int f_write_tree, std::string &fname_tree,
138 void lexorder_test(
long int *live_blocks2,
int &nb_live_blocks2,
139 data_structures_groups::vector_ge *stab_gens,
184 long int *candidates,
int nb_candidates,
185 groups::strong_generators *Strong_gens,
186 solvers::diophant *&Dio,
long int *&col_label,
190 long int *candidates,
int nb_candidates,
191 long int *good_candidates,
int &nb_good_candidates,
192 void *data,
int verbose_level);
196 void *data,
int verbose_level);
200 int starter_case,
int verbose_level);
command line arguments to control the lifting via exact cover
void compute_lifts(int verbose_level)
std::string random_permutation_fname
void(* prepare_function_new)(exact_cover *E, int starter_case, long int *candidates, int nb_candidates, groups::strong_generators *Strong_gens, solvers::diophant *&Dio, long int *&col_label, int &f_ruled_out, int verbose_level)
int f_has_late_cleanup_function
void * solution_test_func_data
std::string solution_prefix
int f_has_solution_prefix
void(* late_cleanup_function)(exact_cover *EC, int starter_case, int verbose_level)
void(* early_test_function)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level)
std::string output_prefix
int read_arguments(int argc, std::string *argv, int verbose_level)
void * early_test_function_data
int(* solution_test_func)(exact_cover *EC, long int *S, int len, void *data, int verbose_level)
int f_has_solution_test_function
exact cover problems arising with the lifting of combinatorial objects
void set_single_case(int single_case, int verbose_level)
std::string solution_prefix
void set_split(int split_r, int split_m, int verbose_level)
std::string output_prefix
void(* prepare_function_new)(exact_cover *E, int starter_case, long int *candidates, int nb_candidates, groups::strong_generators *Strong_gens, solvers::diophant *&Dio, long int *&col_label, int &f_ruled_out, int verbose_level)
void add_solution_test_function(int(*solution_test_func)(exact_cover *EC, long int *S, int len, void *data, int verbose_level), void *solution_test_func_data, int verbose_level)
std::string fname_solutions
int(* solution_test_func)(exact_cover *EC, long int *S, int len, void *data, int verbose_level)
void init_basic(void *user_data, actions::action *A_base, actions::action *A_on_blocks, int target_size, int starter_size, std::string &input_prefix, std::string &output_prefix, std::string &solution_prefix, std::string &base_fname, int f_lex, int verbose_level)
void add_late_cleanup_function(void(*late_cleanup_function)(exact_cover *E, int starter_case, int verbose_level))
actions::action * A_on_blocks
void compute_liftings_new(int f_solve, int f_save, int f_read_instead, int f_draw_system, std::string &fname_system, int f_write_tree, std::string &fname_tree, int verbose_level)
void init_early_test_func(void(*early_test_func)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level), void *early_test_func_data, int verbose_level)
void * solution_test_func_data
void * early_test_func_data
void init_prepare_function_new(void(*prepare_function_new)(exact_cover *E, int starter_case, long int *candidates, int nb_candidates, groups::strong_generators *Strong_gens, solvers::diophant *&Dio, long int *&col_label, int &f_ruled_out, int verbose_level), int verbose_level)
void(* early_test_func)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level)
void(* late_cleanup_function)(exact_cover *E, int starter_case, int verbose_level)
int f_has_solution_test_func
std::string fname_statistics
void randomize(std::string &random_permutation_fname, int verbose_level)
int f_has_late_cleanup_function
void compute_liftings_single_case_new(int starter_case, int f_solve, int f_save, int f_read_instead, int &nb_col, long int *&Solutions, int &sol_length, int &nb_sol, int &nb_backtrack, int &dt, int f_draw_system, std::string &fname_system, int f_write_tree, std::string &fname_tree, int verbose_level)
std::string random_permutation_fname
void lexorder_test(long int *live_blocks2, int &nb_live_blocks2, data_structures_groups::vector_ge *stab_gens, int verbose_level)
the orbiter library for the classification of combinatorial objects