Orbiter 2022
Combinatorial Objects
orbiter::layer4_classification::exact_cover Class Reference

exact cover problems arising with the lifting of combinatorial objects More...

#include <solver.h>

Public Member Functions

 exact_cover ()
 
 ~exact_cover ()
 
void null ()
 
void freeself ()
 
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 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 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 set_split (int split_r, int split_m, int verbose_level)
 
void set_single_case (int single_case, int verbose_level)
 
void randomize (std::string &random_permutation_fname, 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)
 
void add_late_cleanup_function (void(*late_cleanup_function)(exact_cover *E, int starter_case, int verbose_level))
 
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 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)
 
void lexorder_test (long int *live_blocks2, int &nb_live_blocks2, data_structures_groups::vector_ge *stab_gens, int verbose_level)
 

Public Attributes

std::string input_prefix
 
std::string output_prefix
 
std::string solution_prefix
 
std::string base_fname
 
std::string fname_solutions
 
std::string fname_statistics
 
void * user_data
 
actions::action * A_base
 
actions::action * A_on_blocks
 
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(* 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 f_has_solution_test_func
 
int(* solution_test_func )(exact_cover *EC, long int *S, int len, void *data, int verbose_level)
 
void * solution_test_func_data
 
int f_has_late_cleanup_function
 
void(* late_cleanup_function )(exact_cover *E, int starter_case, int verbose_level)
 
int target_size
 
int f_lex
 
int f_split
 
int split_r
 
int split_m
 
int f_single_case
 
int single_case
 
int starter_size
 
int starter_nb_cases
 
long int * starter
 
int f_randomized
 
std::string random_permutation_fname
 
int * random_permutation
 

Detailed Description

exact cover problems arising with the lifting of combinatorial objects

Definition at line 27 of file solver.h.

Constructor & Destructor Documentation

◆ exact_cover()

orbiter::layer4_classification::exact_cover::exact_cover ( )

Definition at line 21 of file exact_cover.cpp.

◆ ~exact_cover()

orbiter::layer4_classification::exact_cover::~exact_cover ( )

Definition at line 26 of file exact_cover.cpp.

Member Function Documentation

◆ add_late_cleanup_function()

void orbiter::layer4_classification::exact_cover::add_late_cleanup_function ( void(*)(exact_cover *E, int starter_case, int verbose_level)  late_cleanup_function)

Definition at line 289 of file exact_cover.cpp.

◆ add_solution_test_function()

void orbiter::layer4_classification::exact_cover::add_solution_test_function ( int(*)(exact_cover *EC, long int *S, int len, void *data, int verbose_level)  solution_test_func,
void *  solution_test_func_data,
int  verbose_level 
)

Definition at line 273 of file exact_cover.cpp.

◆ compute_liftings_new()

void orbiter::layer4_classification::exact_cover::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 
)

Definition at line 300 of file exact_cover.cpp.

◆ compute_liftings_single_case_new()

void orbiter::layer4_classification::exact_cover::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 
)

Definition at line 572 of file exact_cover.cpp.

◆ freeself()

void orbiter::layer4_classification::exact_cover::freeself ( )

Definition at line 47 of file exact_cover.cpp.

◆ init_basic()

void orbiter::layer4_classification::exact_cover::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 
)

Definition at line 58 of file exact_cover.cpp.

◆ init_early_test_func()

void orbiter::layer4_classification::exact_cover::init_early_test_func ( void(*)(long int *S, int len, long int *candidates, int nb_candidates, long int *good_candidates, int &nb_good_candidates, void *data, int verbose_level)  early_test_func,
void *  early_test_func_data,
int  verbose_level 
)

Definition at line 144 of file exact_cover.cpp.

◆ init_prepare_function_new()

void orbiter::layer4_classification::exact_cover::init_prepare_function_new ( void(*)(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)  prepare_function_new,
int  verbose_level 
)

Definition at line 161 of file exact_cover.cpp.

◆ lexorder_test()

void orbiter::layer4_classification::exact_cover::lexorder_test ( long int *  live_blocks2,
int &  nb_live_blocks2,
data_structures_groups::vector_ge stab_gens,
int  verbose_level 
)

Definition at line 908 of file exact_cover.cpp.

◆ null()

void orbiter::layer4_classification::exact_cover::null ( )

Definition at line 31 of file exact_cover.cpp.

◆ randomize()

void orbiter::layer4_classification::exact_cover::randomize ( std::string &  random_permutation_fname,
int  verbose_level 
)

Definition at line 241 of file exact_cover.cpp.

◆ set_single_case()

void orbiter::layer4_classification::exact_cover::set_single_case ( int  single_case,
int  verbose_level 
)

Definition at line 210 of file exact_cover.cpp.

◆ set_split()

void orbiter::layer4_classification::exact_cover::set_split ( int  split_r,
int  split_m,
int  verbose_level 
)

Definition at line 177 of file exact_cover.cpp.

Member Data Documentation

◆ A_base

actions::action* orbiter::layer4_classification::exact_cover::A_base

Definition at line 40 of file solver.h.

◆ A_on_blocks

actions::action* orbiter::layer4_classification::exact_cover::A_on_blocks

Definition at line 41 of file solver.h.

◆ base_fname

std::string orbiter::layer4_classification::exact_cover::base_fname

Definition at line 33 of file solver.h.

◆ early_test_func

void(* orbiter::layer4_classification::exact_cover::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)

Definition at line 53 of file solver.h.

◆ early_test_func_data

void* orbiter::layer4_classification::exact_cover::early_test_func_data

Definition at line 57 of file solver.h.

◆ f_has_late_cleanup_function

int orbiter::layer4_classification::exact_cover::f_has_late_cleanup_function

Definition at line 64 of file solver.h.

◆ f_has_solution_test_func

int orbiter::layer4_classification::exact_cover::f_has_solution_test_func

Definition at line 59 of file solver.h.

◆ f_lex

int orbiter::layer4_classification::exact_cover::f_lex

Definition at line 71 of file solver.h.

◆ f_randomized

int orbiter::layer4_classification::exact_cover::f_randomized

Definition at line 84 of file solver.h.

◆ f_single_case

int orbiter::layer4_classification::exact_cover::f_single_case

Definition at line 77 of file solver.h.

◆ f_split

int orbiter::layer4_classification::exact_cover::f_split

Definition at line 73 of file solver.h.

◆ fname_solutions

std::string orbiter::layer4_classification::exact_cover::fname_solutions

Definition at line 35 of file solver.h.

◆ fname_statistics

std::string orbiter::layer4_classification::exact_cover::fname_statistics

Definition at line 36 of file solver.h.

◆ input_prefix

std::string orbiter::layer4_classification::exact_cover::input_prefix

Definition at line 30 of file solver.h.

◆ late_cleanup_function

void(* orbiter::layer4_classification::exact_cover::late_cleanup_function) (exact_cover *E, int starter_case, int verbose_level)

Definition at line 65 of file solver.h.

◆ output_prefix

std::string orbiter::layer4_classification::exact_cover::output_prefix

Definition at line 31 of file solver.h.

◆ prepare_function_new

void(* orbiter::layer4_classification::exact_cover::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)

Definition at line 44 of file solver.h.

◆ random_permutation

int* orbiter::layer4_classification::exact_cover::random_permutation

Definition at line 86 of file solver.h.

◆ random_permutation_fname

std::string orbiter::layer4_classification::exact_cover::random_permutation_fname

Definition at line 85 of file solver.h.

◆ single_case

int orbiter::layer4_classification::exact_cover::single_case

Definition at line 78 of file solver.h.

◆ solution_prefix

std::string orbiter::layer4_classification::exact_cover::solution_prefix

Definition at line 32 of file solver.h.

◆ solution_test_func

int(* orbiter::layer4_classification::exact_cover::solution_test_func) (exact_cover *EC, long int *S, int len, void *data, int verbose_level)

Definition at line 60 of file solver.h.

◆ solution_test_func_data

void* orbiter::layer4_classification::exact_cover::solution_test_func_data

Definition at line 62 of file solver.h.

◆ split_m

int orbiter::layer4_classification::exact_cover::split_m

Definition at line 75 of file solver.h.

◆ split_r

int orbiter::layer4_classification::exact_cover::split_r

Definition at line 74 of file solver.h.

◆ starter

long int* orbiter::layer4_classification::exact_cover::starter

Definition at line 82 of file solver.h.

◆ starter_nb_cases

int orbiter::layer4_classification::exact_cover::starter_nb_cases

Definition at line 81 of file solver.h.

◆ starter_size

int orbiter::layer4_classification::exact_cover::starter_size

Definition at line 80 of file solver.h.

◆ target_size

int orbiter::layer4_classification::exact_cover::target_size

Definition at line 69 of file solver.h.

◆ user_data

void* orbiter::layer4_classification::exact_cover::user_data

Definition at line 38 of file solver.h.


The documentation for this class was generated from the following files: