aboutsummaryrefslogtreecommitdiff
path: root/old/2021-07-15-almostbeforerefactor/cube.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano.tronto@gmail.com>2021-11-11 21:37:34 +0100
committerSebastiano Tronto <sebastiano.tronto@gmail.com>2021-11-11 21:37:34 +0100
commit3568412f8f230774d0d11d7ed1c897424f95d3ef (patch)
tree77223792d8c925a9b1fc32b3f4341e943b5f8209 /old/2021-07-15-almostbeforerefactor/cube.h
parent67e1b5e6e6a2c917a2fe58a37a1382c982b1e5c5 (diff)
downloadnissy-3568412f8f230774d0d11d7ed1c897424f95d3ef.tar.gz
nissy-3568412f8f230774d0d11d7ed1c897424f95d3ef.zip
Rewritten from scratch. Welocme nissy 2.0!
Diffstat (limited to 'old/2021-07-15-almostbeforerefactor/cube.h')
-rw-r--r--old/2021-07-15-almostbeforerefactor/cube.h79
1 files changed, 79 insertions, 0 deletions
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 @@
1#ifndef CUBE_H
2#define CUBE_H
3
4#include <stdio.h>
5#include <stdbool.h>
6#include <stdint.h>
7#include <stdlib.h>
8#include <string.h>
9#include <time.h>
10#include <unistd.h>
11#include <sys/stat.h>
12
13#include "macros.h"
14#include "cubetypes.h"
15
16extern Coordinate coord_eofb;
17extern Coordinate coord_eofbepos;
18extern Coordinate coord_coud;
19extern Coordinate coord_corners;
20extern Coordinate coord_cornershtr;
21extern Coordinate coord_drud;
22extern Coordinate coord_coud_sym16;
23extern Coordinate coord_eofbepos_sym16;
24extern Coordinate coord_drud_sym16;
25extern Coordinate coord_khuge;
26
27extern Trans trans_group_udfix[16];
28extern Trans trans_group_trivial[1];
29
30Cube apply_alg(Alg *alg, Cube cube);
31Cube apply_move(Move m, Cube cube);
32Cube apply_trans(Trans t, Cube cube);
33bool block_solved(Cube cube, Block);
34Cube compose(Cube c2, Cube c1); /* Use c2 as an alg on c1 */
35uint64_t cphtr(Cube cube); /* TODO: rename (something with cosets) */
36Cube anti_cphtr(uint64_t ind); /*TODO also this */
37uint64_t epos_dependent(Cube cube); /* TODO: rename and turn into an indexer */
38bool equal(Cube c1, Cube c2);
39Cube inverse_cube(Cube cube);
40Move inverse_move(Move m);
41Trans inverse_trans(Trans t);
42bool is_admissible(Cube cube);
43bool is_solved(Cube cube, bool reorient);
44bool is_solved_center(Cube cube, Center c);
45bool is_solved_corner(Cube cube, Corner c);
46bool is_solved_edge(Cube cube, Edge e);
47void print_cube(Cube cube);
48Cube random_cube();
49AlgList * solve(Cube cube, Step step, SolveOptions *opts);
50Center what_center_at(Cube cube, Center c);
51Corner what_corner_at(Cube cube, Corner c);
52Edge what_edge_at(Cube cube, Edge e);
53int what_orientation_corner(int co, Corner c);
54int what_orientation_edge(int eo, Edge e);
55Center where_is_center(Cube cube, Center c);
56Corner where_is_corner(Cube cube, Corner c);
57Edge where_is_edge(Cube cube, Edge e);
58
59bool check_centers(Cube cube);
60bool check_corners(Cube cube);
61bool check_cornershtr(Cube cube);
62bool check_coud(Cube cube);
63bool check_drud(Cube cube);
64bool check_eofb(Cube cube);
65bool check_eofbepos(Cube cube);
66bool check_epose(Cube cube);
67bool check_ep(Cube cube);
68bool check_khuge(Cube cube);
69bool check_nothing(Cube cube);
70
71void genptable(PruneData *pd);
72void print_ptable(PruneData *pd);
73uint64_t ptablesize(PruneData *pd);
74int ptableval(PruneData *pd, Cube cube);
75
76void init();
77
78#endif
79

Generated with cgit - Back to sebastiano.tronto.net