aboutsummaryrefslogtreecommitdiff
path: root/src/solvers/coord/corners.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/solvers/coord/corners.h')
-rw-r--r--src/solvers/coord/corners.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/solvers/coord/corners.h b/src/solvers/coord/corners.h
new file mode 100644
index 0000000..cc0d9a5
--- /dev/null
+++ b/src/solvers/coord/corners.h
@@ -0,0 +1,72 @@
1#define CLASSES_CP_48 984
2
3STATIC uint64_t coordinate_corners_coord(const cube_t, const unsigned char *);
4STATIC cube_t coordinate_corners_cube(uint64_t, const unsigned char *);
5STATIC bool coordinate_corners_isnasty(uint64_t, const unsigned char *);
6STATIC size_t coordinate_corners_gendata(unsigned char *);
7
8STATIC coord_t coordinate_corners = {
9 .name = "CORNERS",
10 .coord = &coordinate_corners_coord,
11 .cube = &coordinate_corners_cube,
12 .isnasty = &coordinate_corners_isnasty,
13 .gendata = coordinate_corners_gendata,
14 .max = CLASSES_CP_48 * POW_3_7,
15 .trans_mask = TM_ALLTRANS,
16 .moves_mask_gendata = MM18_ALLMOVES,
17 .moves_mask_solve = MM18_ALLMOVES,
18 .is_admissible = &solution_always_valid,
19 .solution_prune = NULL,
20 .is_solvable = &cube_true,
21 .is_solved = NULL,
22 .allow_niss = false,
23 .pruning_distribution = {
24 [0] = 1,
25 [1] = 2,
26 [2] = 9,
27 [3] = 76,
28 [4] = 708,
29 [5] = 5022,
30 [6] = 28248,
31 [7] = 132076,
32 [8] = 505705,
33 [9] = 1102421,
34 [10] = 375380,
35 [11] = 2360,
36 },
37 .pruning_max = 11,
38 .sym = {
39 .classes = CLASSES_CP_48,
40 .max = FACT_8,
41 .coord = &coord_cp,
42 .cube = &invcoord_cp,
43 .max2 = POW_3_7,
44 .coord2 = &coord_co,
45 .cube2 = &invcoord_co,
46 .merge = &coordinate_merge_cpco,
47 },
48};
49
50STATIC uint64_t
51coordinate_corners_coord(const cube_t cube, const unsigned char *data)
52{
53 return coord_coord_generic(&coordinate_corners, cube, data);
54}
55
56STATIC cube_t
57coordinate_corners_cube(uint64_t i, const unsigned char *data)
58{
59 return coord_cube_generic(&coordinate_corners, i, data);
60}
61
62STATIC bool
63coordinate_corners_isnasty(uint64_t i, const unsigned char *data)
64{
65 return coord_isnasty_generic(&coordinate_corners, i, data);
66}
67
68STATIC size_t
69coordinate_corners_gendata(unsigned char *data)
70{
71 return coord_gendata_generic(&coordinate_corners, data);
72}

Generated with cgit - Back to sebastiano.tronto.net