nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

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 }