h48

A prototype for an optimal Rubik's cube solver, work in progress.
git clone https://git.tronto.net/h48
Download | Log | Files | Refs | README | LICENSE

eo.h (1009B)


      1 STATIC uint64_t coordinate_eo_coord(cube_t, const void *);
      2 STATIC cube_t coordinate_eo_cube(uint64_t, const void *);
      3 STATIC bool coordinate_eo_isnasty(uint64_t, const void *);
      4 STATIC size_t coordinate_eo_gendata(void *);
      5 
      6 STATIC coord_t coordinate_eo = {
      7 	.name = "EO",
      8 	.coord = &coordinate_eo_coord,
      9 	.cube = &coordinate_eo_cube,
     10 	.isnasty = &coordinate_eo_isnasty,
     11 	.gendata = coordinate_eo_gendata,
     12 	.max = POW_2_11,
     13 	.trans_mask = TM_SINGLE(TRANS_UFr),
     14 	.moves_mask = MM_ALLMOVES,
     15 	.axistrans = {
     16 		[AXIS_UD] = TRANS_FDr,
     17 		[AXIS_RL] = TRANS_URr,
     18 		[AXIS_FB] = TRANS_UFr,
     19 	},
     20 	.is_admissible = &solution_lastqt_cw,
     21 };
     22 
     23 STATIC uint64_t
     24 coordinate_eo_coord(cube_t c, const void *data)
     25 {
     26 	return (uint64_t)coord_eo(c);
     27 }
     28 
     29 STATIC cube_t
     30 coordinate_eo_cube(uint64_t c, const void *data)
     31 {
     32 	cube_t cube = SOLVED_CUBE;
     33 	set_eo(&cube, (int64_t)c);
     34 	return cube;
     35 }
     36 
     37 STATIC bool
     38 coordinate_eo_isnasty(uint64_t c, const void *data)
     39 {
     40 	return false;
     41 }
     42 
     43 STATIC size_t
     44 coordinate_eo_gendata(void *data)
     45 {
     46 	return 0;
     47 }