22namespace layer1_foundations {
23namespace data_structures {
40#define HASH_PRIME 174962718
64 for (i = 0; i < bit_length; i++) {
73 cout <<
"algorithms::hashing_fixed_width a is not zero" << endl;
74 cout <<
"a=" << a1 << endl;
75 cout <<
"bit_length=" << bit_length << endl;
87 for (i = 0; i < 8; i++) {
88 mask = ((
uchar) 1) << i;
102 for (i = 0; i < len; i++) {
123 for (i = (
int)
sizeof(
pvoid) - 1; i >= 0; i--) {
136 ost << (char)(
'0' + digit);
138 else if (digit < 16) {
139 ost << (char)(
'a' + (digit - 10));
142 cout <<
"algorithms::print_hex_digit illegal digit " << digit << endl;
151 for (i = 0; i < n; i++) {
165 int nb_rows,
int nb_cols,
int nb_needed,
166 int f_has_Rhs,
int *Rhs,
167 long int *&Solutions,
int &nb_sol,
long int &nb_backtrack,
int &dt,
172 int f_v = (verbose_level >= 1);
178 cout <<
"algorithms::solve_diophant nb_rows=" << nb_rows <<
" nb_cols="
179 << nb_cols <<
" f_has_Rhs=" << f_has_Rhs
180 <<
" verbose_level=" << verbose_level << endl;
181 cout <<
"f_DLX=" << f_DLX << endl;
188 nb_cols, Inc, nb_needed,
194 nb_cols, Inc, nb_needed,
202 if (f_DLX && !f_has_Rhs) {
214 cout <<
"Solutions:" << endl;
225 cout <<
"algorithms::solve_diophant done nb_sol=" << nb_sol
226 <<
" nb_backtrack=" << nb_backtrack <<
" dt=" << dt << endl;
231#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
232 || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
233#define get16bits(d) (*((const uint16_t *) (d)))
236#if !defined (get16bits)
237#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\
238 +(uint32_t)(((const uint8_t *)(d))[0]) )
244uint32_t hash = len, tmp;
247 if (len <= 0 || data == 0)
return 0;
253 for (;len > 0; len--) {
256 hash = (hash << 16) ^ tmp;
257 data += 2*
sizeof (uint16_t);
265 hash ^= ((
signed char)data[
sizeof (uint16_t)]) << 18;
272 case 1: hash += (
signed char)*data;
uint32_t SuperFastHash(const char *data, int len)
int hashing(int hash0, int a)
int hashing_fixed_width(int hash0, int a, int bit_length)
void uchar_print_bitwise(std::ostream &ost, uchar u)
void int_swap(int &x, int &y)
uint32_t root_of_tree_uint32_t(uint32_t *S, uint32_t i)
void uchar_move(uchar *p, uchar *q, int len)
void print_pointer_hex(std::ostream &ost, void *p)
void print_repeated_character(std::ostream &ost, char c, int n)
void print_hex_digit(std::ostream &ost, int digit)
void solve_diophant(int *Inc, int nb_rows, int nb_cols, int nb_needed, int f_has_Rhs, int *Rhs, long int *&Solutions, int &nb_sol, long int &nb_backtrack, int &dt, int f_DLX, int verbose_level)
interface to system functions
diophantine systems of equations (i.e., linear systems over the integers)
void get_solutions(long int *&Sol, int &nb_sol, int verbose_level)
int solve_all_DLX(int verbose_level)
void init_problem_of_Steiner_type_with_RHS(int nb_rows, int nb_cols, int *Inc, int nb_to_select, int *Rhs, int verbose_level)
int solve_all_mckay(long int &nb_backtrack_nodes, int maxresults, int verbose_level)
void init_problem_of_Steiner_type(int nb_rows, int nb_cols, int *Inc, int nb_to_select, int verbose_level)
#define Lint_matrix_print(A, B, C)
the orbiter library for the classification of combinatorial objects