cpepe.h (1755B)
1 STATIC uint64_t coordinate_cpepe_coord(const cube_t, const unsigned char *); 2 STATIC cube_t coordinate_cpepe_cube(uint64_t, const unsigned char *); 3 STATIC bool coordinate_cpepe_isnasty(uint64_t, const unsigned char *); 4 STATIC size_t coordinate_cpepe_gendata(unsigned char *); 5 6 STATIC coord_t coordinate_cpepe = { 7 .name = "CPEPE", 8 .coord = &coordinate_cpepe_coord, 9 .cube = &coordinate_cpepe_cube, 10 .isnasty = &coordinate_cpepe_isnasty, 11 .gendata = coordinate_cpepe_gendata, 12 .max = CLASSES_CP_16 * FACT_4, 13 .trans_mask = TM_UDFIX, 14 .moves_mask_gendata = MM18_DR, 15 .moves_mask_solve = MM18_DR, 16 .is_admissible = &solution_always_valid, 17 .solution_prune = NULL, 18 .is_solvable = &is_drfinnoe_solvable, 19 .is_solved = NULL, 20 .allow_niss = false, 21 .pruning_distribution = { 22 [0] = 1, 23 [1] = 3, 24 [2] = 10, 25 [3] = 44, 26 [4] = 214, 27 [5] = 846, 28 [6] = 2413, 29 [7] = 5122, 30 [8] = 8639, 31 [9] = 12128, 32 [10] = 12571, 33 [11] = 12985, 34 [12] = 7754, 35 [13] = 3366, 36 [14] = 336, 37 }, 38 .pruning_max = 14, 39 .sym = { 40 .classes = CLASSES_CP_16, 41 .max = FACT_8, 42 .coord = &coord_cp, 43 .cube = &invcoord_cp, 44 .max2 = FACT_4, 45 .coord2 = &coord_epe, 46 .cube2 = &invcoord_epe, 47 .merge = &coordinate_merge_ce, 48 }, 49 }; 50 51 STATIC uint64_t 52 coordinate_cpepe_coord(const cube_t cube, const unsigned char *data) 53 { 54 return coord_coord_generic(&coordinate_cpepe, cube, data); 55 } 56 57 STATIC cube_t 58 coordinate_cpepe_cube(uint64_t i, const unsigned char *data) 59 { 60 return coord_cube_generic(&coordinate_cpepe, i, data); 61 } 62 63 STATIC bool 64 coordinate_cpepe_isnasty(uint64_t i, const unsigned char *data) 65 { 66 return coord_isnasty_generic(&coordinate_cpepe, i, data); 67 } 68 69 STATIC size_t 70 coordinate_cpepe_gendata(unsigned char *data) 71 { 72 return coord_gendata_generic(&coordinate_cpepe, data); 73 }