aboutsummaryrefslogtreecommitdiff
path: root/src/solvers/coord/drfinnoe.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-07-29 16:57:21 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-07-30 16:10:29 +0200
commit6cf7cd87a90a1314332aace1d25b9c0f230dc227 (patch)
treec246fbd0d400b34e6461e88a1bb50b4812eae8e5 /src/solvers/coord/drfinnoe.h
parentea0387796a349c91032fbcb10f50c6ad8607b0f6 (diff)
downloadnissy-core-6cf7cd87a90a1314332aace1d25b9c0f230dc227.tar.gz
nissy-core-6cf7cd87a90a1314332aace1d25b9c0f230dc227.zip
added drslice coordinate
Diffstat (limited to 'src/solvers/coord/drfinnoe.h')
-rw-r--r--src/solvers/coord/drfinnoe.h42
1 files changed, 8 insertions, 34 deletions
diff --git a/src/solvers/coord/drfinnoe.h b/src/solvers/coord/drfinnoe.h
index 984b10a..c088ac4 100644
--- a/src/solvers/coord/drfinnoe.h
+++ b/src/solvers/coord/drfinnoe.h
@@ -13,12 +13,7 @@ In the worst case, it is a bug to be fixed, but I find it unlikely.
13 13
14#define CLASSES_CP_16 2768 14#define CLASSES_CP_16 2768
15 15
16STATIC uint64_t coordinate_cp_coord(cube_t);
17STATIC cube_t coordinate_cp_cube(uint64_t);
18STATIC uint64_t coordinate_epud_coord(cube_t);
19STATIC cube_t coordinate_epud_cube(uint64_t);
20STATIC cube_t coordinate_drfinnoe_merge(cube_t, cube_t); 16STATIC cube_t coordinate_drfinnoe_merge(cube_t, cube_t);
21
22STATIC uint64_t coordinate_drfinnoe_coord(cube_t, const unsigned char *); 17STATIC uint64_t coordinate_drfinnoe_coord(cube_t, const unsigned char *);
23STATIC cube_t coordinate_drfinnoe_cube(uint64_t, const unsigned char *); 18STATIC cube_t coordinate_drfinnoe_cube(uint64_t, const unsigned char *);
24STATIC bool coordinate_drfinnoe_isnasty(uint64_t, const unsigned char *); 19STATIC bool coordinate_drfinnoe_isnasty(uint64_t, const unsigned char *);
@@ -34,7 +29,8 @@ STATIC coord_t coordinate_drfinnoe = {
34 .gendata = coordinate_drfinnoe_gendata, 29 .gendata = coordinate_drfinnoe_gendata,
35 .max = CLASSES_CP_16 * FACT_8, 30 .max = CLASSES_CP_16 * FACT_8,
36 .trans_mask = TM_UDFIX, 31 .trans_mask = TM_UDFIX,
37 .moves_mask = MM18_DR, 32 .moves_mask_gendata = MM18_DR,
33 .moves_mask_solve = MM18_DR,
38 .axistrans = { 34 .axistrans = {
39 [AXIS_UD] = TRANS_UFr, 35 [AXIS_UD] = TRANS_UFr,
40 [AXIS_RL] = TRANS_RFr, 36 [AXIS_RL] = TRANS_RFr,
@@ -42,6 +38,8 @@ STATIC coord_t coordinate_drfinnoe = {
42 }, 38 },
43 .is_admissible = &solution_always_valid, 39 .is_admissible = &solution_always_valid,
44 .is_solvable = &is_drfinnoe_solvable, 40 .is_solvable = &is_drfinnoe_solvable,
41 .is_solved = NULL,
42 .allow_niss = false,
45 .pruning_distribution = { 43 .pruning_distribution = {
46 [0] = 1, 44 [0] = 1,
47 [1] = 3, 45 [1] = 3,
@@ -64,39 +62,15 @@ STATIC coord_t coordinate_drfinnoe = {
64 .sym = { 62 .sym = {
65 .classes = CLASSES_CP_16, 63 .classes = CLASSES_CP_16,
66 .max = FACT_8, 64 .max = FACT_8,
67 .coord = &coordinate_cp_coord, 65 .coord = &coord_cp,
68 .cube = &coordinate_cp_cube, 66 .cube = &invcoord_cp,
69 .max2 = FACT_8, 67 .max2 = FACT_8,
70 .coord2 = &coordinate_epud_coord, 68 .coord2 = &coord_epud,
71 .cube2 = &coordinate_epud_cube, 69 .cube2 = &invcoord_epud,
72 .merge = &coordinate_drfinnoe_merge, 70 .merge = &coordinate_drfinnoe_merge,
73 }, 71 },
74}; 72};
75 73
76STATIC uint64_t
77coordinate_cp_coord(cube_t c)
78{
79 return coord_cp(c);
80}
81
82STATIC cube_t
83coordinate_cp_cube(uint64_t i)
84{
85 return invcoord_cp(i);
86}
87
88STATIC uint64_t
89coordinate_epud_coord(cube_t c)
90{
91 return coord_epud(c);
92}
93
94STATIC cube_t
95coordinate_epud_cube(uint64_t i)
96{
97 return invcoord_epud(i);
98}
99
100STATIC cube_t 74STATIC cube_t
101coordinate_drfinnoe_merge(cube_t c1, cube_t c2) 75coordinate_drfinnoe_merge(cube_t c1, cube_t c2)
102{ 76{

Generated with cgit - Back to sebastiano.tronto.net