aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xnissybin326824 -> 0 bytes
-rw-r--r--src/pruning.c10
-rw-r--r--src/pruning.h1
-rw-r--r--src/steps.c31
-rw-r--r--src/symcoord.c82
-rw-r--r--src/symcoord.h1
-rw-r--r--src/trans.c16
-rw-r--r--src/trans.h13
8 files changed, 28 insertions, 126 deletions
diff --git a/nissy b/nissy
deleted file mode 100755
index 85e2f3f..0000000
--- a/nissy
+++ /dev/null
Binary files differ
diff --git a/src/pruning.c b/src/pruning.c
index 51bea10..d484a12 100644
--- a/src/pruning.c
+++ b/src/pruning.c
@@ -78,15 +78,6 @@ pd_htrfin_htr = {
78 .moveset = &moveset_htr, 78 .moveset = &moveset_htr,
79}; 79};
80 80
81/*
82PruneData
83pd_khuge_HTM = {
84 .filename = "pt_khuge_HTM",
85 .coord = &coord_khuge,
86 .moveset = &moveset_HTM,
87};
88*/
89
90PruneData 81PruneData
91pd_nxopt31_HTM = { 82pd_nxopt31_HTM = {
92 .filename = "pt_nxopt31_HTM", 83 .filename = "pt_nxopt31_HTM",
@@ -108,7 +99,6 @@ PruneData * allpd[] = {
108 &pd_drudfin_noE_sym16_drud, 99 &pd_drudfin_noE_sym16_drud,
109 &pd_htr_drud, 100 &pd_htr_drud,
110 &pd_htrfin_htr, 101 &pd_htrfin_htr,
111/* &pd_khuge_HTM,*/
112 &pd_nxopt31_HTM, 102 &pd_nxopt31_HTM,
113 NULL 103 NULL
114}; 104};
diff --git a/src/pruning.h b/src/pruning.h
index 7da1e3e..df95ea2 100644
--- a/src/pruning.h
+++ b/src/pruning.h
@@ -12,7 +12,6 @@ extern PruneData pd_drud_eofb;
12extern PruneData pd_drudfin_noE_sym16_drud; 12extern PruneData pd_drudfin_noE_sym16_drud;
13extern PruneData pd_htr_drud; 13extern PruneData pd_htr_drud;
14extern PruneData pd_htrfin_htr; 14extern PruneData pd_htrfin_htr;
15extern PruneData pd_khuge_HTM;
16extern PruneData pd_nxopt31_HTM; 15extern PruneData pd_nxopt31_HTM;
17 16
18extern PruneData * allpd[]; 17extern PruneData * allpd[];
diff --git a/src/steps.c b/src/steps.c
index 83d105c..3189811 100644
--- a/src/steps.c
+++ b/src/steps.c
@@ -27,7 +27,6 @@ static int estimate_dr_eofb(DfsArg *arg);
27static int estimate_drudfin_drud(DfsArg *arg); 27static int estimate_drudfin_drud(DfsArg *arg);
28static int estimate_htr_drud(DfsArg *arg); 28static int estimate_htr_drud(DfsArg *arg);
29static int estimate_htrfin_htr(DfsArg *arg); 29static int estimate_htrfin_htr(DfsArg *arg);
30/*static int estimate_khuge_HTM(DfsArg *arg);*/
31static int estimate_nxopt31_HTM(DfsArg *arg); 30static int estimate_nxopt31_HTM(DfsArg *arg);
32static int estimate_light_HTM(DfsArg *arg); 31static int estimate_light_HTM(DfsArg *arg);
33 32
@@ -54,28 +53,6 @@ static char check_drany_msg[100] = "DR must be solved on at least one axis";
54 53
55/* Optimal solvers *******************/ 54/* Optimal solvers *******************/
56 55
57/* This is not used anymore, I'll keep it just in case */
58/*
59Step
60optimal_khuge_HTM = {
61 .shortname = "khuge",
62 .name = "Optimal solve (in HTM) using khuge table",
63
64 .final = true,
65 .is_done = is_solved,
66 .estimate = estimate_khuge_HTM,
67 .ready = check_centers,
68 .ready_msg = check_centers_msg,
69 .is_valid = always_valid,
70 .moveset = &moveset_HTM,
71
72 .pre_trans = uf,
73
74 .tables = {&pd_khuge_HTM, &pd_corners_HTM},
75 .ntables = 2,
76};
77*/
78
79Step 56Step
80optimal_HTM = { 57optimal_HTM = {
81 .shortname = "optimal", 58 .shortname = "optimal",
@@ -1196,14 +1173,6 @@ estimate_htrfin_htr(DfsArg *arg)
1196 return ptableval(&pd_htrfin_htr, arg->cube); 1173 return ptableval(&pd_htrfin_htr, arg->cube);
1197} 1174}
1198 1175
1199/*
1200static int
1201estimate_khuge_HTM(DfsArg *arg)
1202{
1203 return estimate_nxoptlike(arg, &pd_khuge_HTM);
1204}
1205*/
1206
1207static int 1176static int
1208estimate_nxopt31_HTM(DfsArg *arg) 1177estimate_nxopt31_HTM(DfsArg *arg)
1209{ 1178{
diff --git a/src/symcoord.c b/src/symcoord.c
index cb105a9..b2099a7 100644
--- a/src/symcoord.c
+++ b/src/symcoord.c
@@ -8,19 +8,16 @@ static Cube antindex_cp_sym16(uint64_t ind);
8static Cube antindex_eofbepos_sym16(uint64_t ind); 8static Cube antindex_eofbepos_sym16(uint64_t ind);
9static Cube antindex_drud_sym16(uint64_t ind); 9static Cube antindex_drud_sym16(uint64_t ind);
10static Cube antindex_drudfin_noE_sym16(uint64_t ind); 10static Cube antindex_drudfin_noE_sym16(uint64_t ind);
11/*static Cube antindex_khuge(uint64_t ind);*/
12static Cube antindex_nxopt31(uint64_t ind); 11static Cube antindex_nxopt31(uint64_t ind);
13 12
14static uint64_t index_cp_sym16(Cube cube); 13static uint64_t index_cp_sym16(Cube cube);
15static uint64_t index_eofbepos_sym16(Cube cube); 14static uint64_t index_eofbepos_sym16(Cube cube);
16static uint64_t index_drud_sym16(Cube cube); 15static uint64_t index_drud_sym16(Cube cube);
17static uint64_t index_drudfin_noE_sym16(Cube cube); 16static uint64_t index_drudfin_noE_sym16(Cube cube);
18/*static uint64_t index_khuge(Cube cube);*/
19static uint64_t index_nxopt31(Cube cube); 17static uint64_t index_nxopt31(Cube cube);
20 18
21static int transfinder_drud_sym16(uint64_t ind, Trans *ret); 19static int transfinder_drud_sym16(uint64_t ind, Trans *ret);
22static int transfinder_drudfin_noE_sym16(uint64_t ind, Trans *ret); 20static int transfinder_drudfin_noE_sym16(uint64_t ind, Trans *ret);
23/*static int transfinder_khuge(uint64_t ind, Trans *ret);*/
24static int transfinder_nxopt31(uint64_t ind, Trans *ret); 21static int transfinder_nxopt31(uint64_t ind, Trans *ret);
25 22
26static void gensym(SymData *sd); 23static void gensym(SymData *sd);
@@ -93,16 +90,6 @@ coord_drudfin_noE_sym16 = {
93 .trans = transfinder_drudfin_noE_sym16, 90 .trans = transfinder_drudfin_noE_sym16,
94}; 91};
95 92
96/*
97Coordinate
98coord_khuge = {
99 .index = index_khuge,
100 .cube = antindex_khuge,
101 .max = POW3TO7 * FACTORIAL4 * CLASSES_EOFBEPOS_16,
102 .trans = transfinder_khuge,
103};
104*/
105
106Coordinate 93Coordinate
107coord_nxopt31 = { 94coord_nxopt31 = {
108 .index = index_nxopt31, 95 .index = index_nxopt31,
@@ -150,20 +137,6 @@ antindex_drudfin_noE_sym16(uint64_t ind)
150 return c1; 137 return c1;
151} 138}
152 139
153/*
154static Cube
155antindex_khuge(uint64_t ind)
156{
157 Cube c;
158
159 c = antindex_eofbepos_sym16(ind/(FACTORIAL4*POW3TO7));
160 c.epose = ((c.epose / 24) * 24) + ((ind/POW3TO7) % 24);
161 c.coud = ind % POW3TO7;
162
163 return c;
164}
165*/
166
167static Cube 140static Cube
168antindex_nxopt31(uint64_t ind) 141antindex_nxopt31(uint64_t ind)
169{ 142{
@@ -186,12 +159,10 @@ static uint64_t
186index_drud_sym16(Cube cube) 159index_drud_sym16(Cube cube)
187{ 160{
188 Trans t; 161 Trans t;
189 Cube c;
190 162
191 t = sd_eofbepos_16.transtorep[coord_eofbepos.index(cube)]; 163 t = sd_eofbepos_16.transtorep[coord_eofbepos.index(cube)];
192 c = apply_trans(t, cube);
193 164
194 return index_eofbepos_sym16(c) * POW3TO7 + c.coud; 165 return index_eofbepos_sym16(cube) * POW3TO7 + co_ttable[t][cube.coud];
195} 166}
196 167
197static uint64_t 168static uint64_t
@@ -212,34 +183,19 @@ index_eofbepos_sym16(Cube cube)
212 return sd_eofbepos_16.class[coord_eofbepos.index(cube)]; 183 return sd_eofbepos_16.class[coord_eofbepos.index(cube)];
213} 184}
214 185
215/*
216static uint64_t
217index_khuge(Cube cube)
218{
219 Trans t;
220 Cube c;
221 uint64_t a;
222
223 t = sd_eofbepos_16.transtorep[coord_eofbepos.index(cube)];
224 c = apply_trans(t, cube);
225 a = (index_eofbepos_sym16(c) * 24) + (c.epose % 24);
226
227 return a * POW3TO7 + c.coud;
228}
229*/
230
231static uint64_t 186static uint64_t
232index_nxopt31(Cube cube) 187index_nxopt31(Cube cube)
233{ 188{
234 Trans t; 189 Trans t;
235 Cube c;
236 uint64_t a; 190 uint64_t a;
237 191 int coud, cp;
192
238 t = sd_eofbepos_16.transtorep[coord_eofbepos.index(cube)]; 193 t = sd_eofbepos_16.transtorep[coord_eofbepos.index(cube)];
239 c = apply_trans(t, cube); 194 coud = co_ttable[t][cube.coud];
240 a = (index_eofbepos_sym16(c)*POW3TO7) + c.coud; 195 cp = cp_ttable[t][cube.cp];
196 a = (index_eofbepos_sym16(cube)*POW3TO7) + coud;
241 197
242 return a * BINOM8ON4 + coord_cpud_separate.index(c); 198 return a * BINOM8ON4 + coord_cpud_separate.index((Cube){.cp = cp});
243} 199}
244 200
245static int 201static int
@@ -286,30 +242,6 @@ transfinder_drudfin_noE_sym16(uint64_t ind, Trans *ret)
286 return naux[trueind]; 242 return naux[trueind];
287} 243}
288 244
289/*
290static int
291transfinder_khuge(uint64_t ind, Trans *ret)
292{
293 uint64_t i, trueind;
294 int j;
295 static bool initialized = false;
296 static int naux[CLASSES_EOFBEPOS_16];
297 static Trans retaux[CLASSES_EOFBEPOS_16][NTRANS];
298
299 if (!initialized) {
300 for (i = 0; i < CLASSES_EOFBEPOS_16; i++)
301 naux[i] = selfsims(&sd_eofbepos_16, i, retaux[i]);
302
303 initialized = true;
304 }
305
306 trueind = ind/(FACTORIAL4*POW3TO7);
307 for (j = 0; j < naux[trueind]; j++)
308 ret[j] = retaux[trueind][j];
309 return naux[trueind];
310}
311*/
312
313static int 245static int
314transfinder_nxopt31(uint64_t ind, Trans *ret) 246transfinder_nxopt31(uint64_t ind, Trans *ret)
315{ 247{
diff --git a/src/symcoord.h b/src/symcoord.h
index 4ba3815..a7b71ba 100644
--- a/src/symcoord.h
+++ b/src/symcoord.h
@@ -7,7 +7,6 @@ extern Coordinate coord_cp_sym16;
7extern Coordinate coord_eofbepos_sym16; 7extern Coordinate coord_eofbepos_sym16;
8extern Coordinate coord_drud_sym16; 8extern Coordinate coord_drud_sym16;
9extern Coordinate coord_drudfin_noE_sym16; 9extern Coordinate coord_drudfin_noE_sym16;
10extern Coordinate coord_khuge;
11extern Coordinate coord_nxopt31; 10extern Coordinate coord_nxopt31;
12 11
13void init_symcoord(); 12void init_symcoord();
diff --git a/src/trans.c b/src/trans.c
index 72f8dd2..e267a17 100644
--- a/src/trans.c
+++ b/src/trans.c
@@ -44,14 +44,14 @@ static int coud_source[NTRANS]; /* 0=coud, 1=corl, 2=cofb */
44static int cofb_source[NTRANS]; 44static int cofb_source[NTRANS];
45static int corl_source[NTRANS]; 45static int corl_source[NTRANS];
46 46
47static int epose_ttable[NTRANS][FACTORIAL12/FACTORIAL8]; 47int epose_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
48static int eposs_ttable[NTRANS][FACTORIAL12/FACTORIAL8]; 48int eposs_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
49static int eposm_ttable[NTRANS][FACTORIAL12/FACTORIAL8]; 49int eposm_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
50static int eo_ttable[NTRANS][POW2TO11]; 50int eo_ttable[NTRANS][POW2TO11];
51static int cp_ttable[NTRANS][FACTORIAL8]; 51int cp_ttable[NTRANS][FACTORIAL8];
52static int co_ttable[NTRANS][POW3TO7]; 52int co_ttable[NTRANS][POW3TO7];
53static int cpos_ttable[NTRANS][FACTORIAL6]; 53int cpos_ttable[NTRANS][FACTORIAL6];
54static Move moves_ttable[NTRANS][NMOVES]; 54Move moves_ttable[NTRANS][NMOVES];
55 55
56/* Local functions implementation ********************************************/ 56/* Local functions implementation ********************************************/
57 57
diff --git a/src/trans.h b/src/trans.h
index 2eda568..13d17d8 100644
--- a/src/trans.h
+++ b/src/trans.h
@@ -3,6 +3,19 @@
3 3
4#include "moves.h" 4#include "moves.h"
5 5
6/*
7 * Tables are exposed to allow faster partial transofrmations in some
8 * specific cases (in symcoord)
9 */
10extern int epose_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
11extern int eposs_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
12extern int eposm_ttable[NTRANS][FACTORIAL12/FACTORIAL8];
13extern int eo_ttable[NTRANS][POW2TO11];
14extern int cp_ttable[NTRANS][FACTORIAL8];
15extern int co_ttable[NTRANS][POW3TO7];
16extern int cpos_ttable[NTRANS][FACTORIAL6];
17extern Move moves_ttable[NTRANS][NMOVES];
18
6Cube apply_trans(Trans t, Cube cube); 19Cube apply_trans(Trans t, Cube cube);
7Trans inverse_trans(Trans t); 20Trans inverse_trans(Trans t);
8Alg * rotation_alg(Trans i); 21Alg * rotation_alg(Trans i);

Generated with cgit - Back to sebastiano.tronto.net