From 3568412f8f230774d0d11d7ed1c897424f95d3ef Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 11 Nov 2021 21:37:34 +0100 Subject: Rewritten from scratch. Welocme nissy 2.0! --- src/pruning_tables.c | 483 --------------------------------------------------- 1 file changed, 483 deletions(-) delete mode 100644 src/pruning_tables.c (limited to 'src/pruning_tables.c') diff --git a/src/pruning_tables.c b/src/pruning_tables.c deleted file mode 100644 index 8936b99..0000000 --- a/src/pruning_tables.c +++ /dev/null @@ -1,483 +0,0 @@ -#include -#include "pruning_tables.h" -#include "moves.h" - -/* The data contained in e.g. eofb pruning table is the same that is contained - * in eolr pruning table and so on. For small tables the memory wasted is not - * too much and it makes things easier. I may change this when I implement - * bigger tables. */ -int eofb_pruning_table[pow2to11]; -int eorl_pruning_table[pow2to11]; -int eoud_pruning_table[pow2to11]; -int coud_pruning_table[pow3to7]; -int cofb_pruning_table[pow3to7]; -int corl_pruning_table[pow3to7]; -int cp_pruning_table[factorial8]; - -int eorl_from_eofb_pruning_table[pow2to11]; -int eoud_from_eofb_pruning_table[pow2to11]; -int eoud_from_eorl_pruning_table[pow2to11]; -int eofb_from_eorl_pruning_table[pow2to11]; -int eofb_from_eoud_pruning_table[pow2to11]; -int eorl_from_eoud_pruning_table[pow2to11]; - -int coud_from_eofb_pruning_table[pow3to7]; -int coud_from_eorl_pruning_table[pow3to7]; -int cofb_from_eorl_pruning_table[pow3to7]; -int cofb_from_eoud_pruning_table[pow3to7]; -int corl_from_eoud_pruning_table[pow3to7]; -int corl_from_eofb_pruning_table[pow3to7]; - -int cp_drud_pruning_table[factorial8]; -int cp_drfb_pruning_table[factorial8]; -int cp_drrl_pruning_table[factorial8]; -int epud_pruning_table[factorial8]; -int epfb_pruning_table[factorial8]; -int eprl_pruning_table[factorial8]; - -int cp_htr_pruning_table[factorial8]; - -int cpud_to_htr_pruning_table[factorial8]; -int cpfb_to_htr_pruning_table[factorial8]; -int cprl_to_htr_pruning_table[factorial8]; - - -/* About 1Mb each */ -int8_t eofb_epose_pruning_table[pow2to11][binom12on4]; -int8_t eorl_eposs_pruning_table[pow2to11][binom12on4]; -int8_t eoud_eposm_pruning_table[pow2to11][binom12on4]; - -/* About 4.5Mb each */ -int8_t eofb_coud_pruning_table[pow2to11][pow3to7]; -int8_t eofb_corl_pruning_table[pow2to11][pow3to7]; -int8_t eorl_coud_pruning_table[pow2to11][pow3to7]; -int8_t eorl_cofb_pruning_table[pow2to11][pow3to7]; -int8_t eoud_cofb_pruning_table[pow2to11][pow3to7]; -int8_t eoud_corl_pruning_table[pow2to11][pow3to7]; - -/* About 1Mb each */ -int8_t coud_epose_from_eofb_pruning_table[pow3to7][binom12on4]; -int8_t cofb_eposs_from_eorl_pruning_table[pow3to7][binom12on4]; -int8_t corl_eposm_from_eoud_pruning_table[pow3to7][binom12on4]; -int8_t coud_epose_from_eorl_pruning_table[pow3to7][binom12on4]; -int8_t cofb_eposs_from_eoud_pruning_table[pow3to7][binom12on4]; -int8_t corl_eposm_from_eofb_pruning_table[pow3to7][binom12on4]; - - -/* Firs one is 88Mb, second one is 71Mb */ -int8_t cp_co_pruning_table[factorial8][pow3to7]; -int8_t triple_eo_pruning_table[pow2to11][binom12on4*binom8on4]; - -int initialized_small = 0; -int initialized_directdr = 0; -int initialized_drfromeo = 0; -int initialized_huge = 0; - -void init_single_table(int n, int t_tab[][19], int p_tab[n], int mask) { - int state[n]; - state[0] = 0; /* 0 should always be the solved state. */ - p_tab[0] = 0; - int state_count = 1; - for (int i = 0; i < state_count; i++) { - for (int m = 1; m < 19; m++) { - int next = t_tab[state[i]][m]; - if (mask & (1< p_tab[state[i]] + 1) && next) { - p_tab[next] = p_tab[state[i]] + 1; - state[state_count++] = next; - } - } - } - } -} - -void init_double_table(int n1, int n2, - int t_table1[n1][19], int t_table2[n2][19], - int8_t p_table[n1][n2], int mask) { - static int state1[factorial8*pow3to7], state2[factorial8*pow3to7]; - state1[0] = 0; - state2[0] = 0; - p_table[0][0] = 0; - int state_count = 1; - for (int i = 0; i < state_count; i++) { - for (int m = 1; m < 19; m++) { - int next1 = t_table1[state1[i]][m]; - int next2 = t_table2[state2[i]][m]; - if (mask & (1<