aboutsummaryrefslogtreecommitdiff
path: root/TODO.txt
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.txt')
-rw-r--r--TODO.txt46
1 files changed, 38 insertions, 8 deletions
diff --git a/TODO.txt b/TODO.txt
index 69d528a..6e000ad 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,11 +1,11 @@
1### Generic solver 1## Generic solver
2 2
3* finish implementation 3* finish implementation
4* tests: solve full cube (max 7-8 moves?) 4* tests: solve full cube (max 7-8 moves?)
5* more tests: eo and other stuff 5* more tests: eo and other stuff
6* benchmarks 6* benchmarks
7 7
8### Coordinates 8## Coordinates
9 9
10* [done] eo 10* [done] eo
11* co 11* co
@@ -17,7 +17,10 @@
17 17
18What about symcoord? 18What about symcoord?
19 19
20### Solving 20## More I/O
21
22
23## Solving
21 24
22All solving functions take a cube and some parameters as input. 25All solving functions take a cube and some parameters as input.
23 26
@@ -31,7 +34,8 @@ All solving functions take a cube and some parameters as input.
31 The table can be generated with a companion function, but reading 34 The table can be generated with a companion function, but reading
32 from and writing to file is delegated to the caller implementation. 35 from and writing to file is delegated to the caller implementation.
33 36
34Implement the following solvers: 37### Implement the following solvers:
38
35* Slow: basic solver without any table. 39* Slow: basic solver without any table.
36* H48: one-bit-per-entry table + fallback, 48 symmetries and so on. 40* H48: one-bit-per-entry table + fallback, 48 symmetries and so on.
37 See planner. 41 See planner.
@@ -39,16 +43,31 @@ Implement the following solvers:
39* other nxopt solvers: make generic and take the type as parameter. 43* other nxopt solvers: make generic and take the type as parameter.
40* Step solver: take a coordinate function and a moveset as a parameter. 44* Step solver: take a coordinate function and a moveset as a parameter.
41 45
42### cube.h changes 46### New method:
47
48* 48 symmetries, cocsep (or chtr, or similar) + epsep + some EO
49* 1 bit per entry + fallback
50* store necessary stuff (e.g. ttrep) all interleaved in the same table
51
52### Other considerations:
53
54* Reconsider going corners-first, so there is no need to sumco()
55
56## cube.h changes
43 57
44* better documentation: add parameter names, one-line comment 58* better documentation: add parameter names, one-line comment
45 for each function 59 for each function
46* prefix public functions with nissy_ or something similar 60* prefix public functions with libnissy_ or something similar
47* move() that takes a string (alg) as input 61* move() that takes a string (alg) as input
48* readtrans() should work like readmoves (read multiple, return n) 62* readtrans() should work like readmoves (read multiple, return n)
49* Add single moves and transformations to the interface? (performance!) 63* Add single moves and transformations to the interface? (performance!)
64* More I/O:
65 nissy
66 ascii art (color = 1 letter)
67 twizzle binary https://www.experiments.cubing.net/cubing.js/spec/binary/
68 reid?
50 69
51### Optimizations 70## Optimizations
52 71
53* Trans: don't do full compose, for some trans composing perm is enough. 72* Trans: don't do full compose, for some trans composing perm is enough.
54 Split out sumco() as a separate function and refactor, optimize. 73 Split out sumco() as a separate function and refactor, optimize.
@@ -60,10 +79,21 @@ Implement the following solvers:
60* find a better way for computing the inverse? 79* find a better way for computing the inverse?
61* Improve avx2 instructions in general 80* Improve avx2 instructions in general
62 81
63### Improvements and other things 82## Improvements and other things
64 83
65* NISS: Add mask to moves (e.g. U | NISS where NISS = 32 or something); 84* NISS: Add mask to moves (e.g. U | NISS where NISS = 32 or something);
66 adapt readmoves and writemoves. 85 adapt readmoves and writemoves.
67* Consider adding centers and other moves (for avx2: centers in the 86* Consider adding centers and other moves (for avx2: centers in the
68 same lane as corners, numbered from 9 to 14) 87 same lane as corners, numbered from 9 to 14)
69* rename to: libnissy? (also change all references to cube.c in doc) 88* rename to: libnissy? (also change all references to cube.c in doc)
89
90## "Front-end"
91
92* Write adapter code for other languages:
93 python
94 hare
95 rust, go
96 dart ffi, js
97 java
98* add also example code (e.g. an optimal solver) in examples/
99* solver in C: use pthread_cancel

Generated with cgit - Back to sebastiano.tronto.net