From 3568412f8f230774d0d11d7ed1c897424f95d3ef Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 11 Nov 2021 21:37:34 +0100 Subject: Rewritten from scratch. Welocme nissy 2.0! --- old/2021-07-15-almostbeforerefactor/cube.h | 79 ++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 old/2021-07-15-almostbeforerefactor/cube.h (limited to 'old/2021-07-15-almostbeforerefactor/cube.h') diff --git a/old/2021-07-15-almostbeforerefactor/cube.h b/old/2021-07-15-almostbeforerefactor/cube.h new file mode 100644 index 0000000..c400d14 --- /dev/null +++ b/old/2021-07-15-almostbeforerefactor/cube.h @@ -0,0 +1,79 @@ +#ifndef CUBE_H +#define CUBE_H + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "macros.h" +#include "cubetypes.h" + +extern Coordinate coord_eofb; +extern Coordinate coord_eofbepos; +extern Coordinate coord_coud; +extern Coordinate coord_corners; +extern Coordinate coord_cornershtr; +extern Coordinate coord_drud; +extern Coordinate coord_coud_sym16; +extern Coordinate coord_eofbepos_sym16; +extern Coordinate coord_drud_sym16; +extern Coordinate coord_khuge; + +extern Trans trans_group_udfix[16]; +extern Trans trans_group_trivial[1]; + +Cube apply_alg(Alg *alg, Cube cube); +Cube apply_move(Move m, Cube cube); +Cube apply_trans(Trans t, Cube cube); +bool block_solved(Cube cube, Block); +Cube compose(Cube c2, Cube c1); /* Use c2 as an alg on c1 */ +uint64_t cphtr(Cube cube); /* TODO: rename (something with cosets) */ +Cube anti_cphtr(uint64_t ind); /*TODO also this */ +uint64_t epos_dependent(Cube cube); /* TODO: rename and turn into an indexer */ +bool equal(Cube c1, Cube c2); +Cube inverse_cube(Cube cube); +Move inverse_move(Move m); +Trans inverse_trans(Trans t); +bool is_admissible(Cube cube); +bool is_solved(Cube cube, bool reorient); +bool is_solved_center(Cube cube, Center c); +bool is_solved_corner(Cube cube, Corner c); +bool is_solved_edge(Cube cube, Edge e); +void print_cube(Cube cube); +Cube random_cube(); +AlgList * solve(Cube cube, Step step, SolveOptions *opts); +Center what_center_at(Cube cube, Center c); +Corner what_corner_at(Cube cube, Corner c); +Edge what_edge_at(Cube cube, Edge e); +int what_orientation_corner(int co, Corner c); +int what_orientation_edge(int eo, Edge e); +Center where_is_center(Cube cube, Center c); +Corner where_is_corner(Cube cube, Corner c); +Edge where_is_edge(Cube cube, Edge e); + +bool check_centers(Cube cube); +bool check_corners(Cube cube); +bool check_cornershtr(Cube cube); +bool check_coud(Cube cube); +bool check_drud(Cube cube); +bool check_eofb(Cube cube); +bool check_eofbepos(Cube cube); +bool check_epose(Cube cube); +bool check_ep(Cube cube); +bool check_khuge(Cube cube); +bool check_nothing(Cube cube); + +void genptable(PruneData *pd); +void print_ptable(PruneData *pd); +uint64_t ptablesize(PruneData *pd); +int ptableval(PruneData *pd, Cube cube); + +void init(); + +#endif + -- cgit v1.3