aboutsummaryrefslogtreecommitdiff
path: root/TODO.txt
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-11-10 14:44:48 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2023-11-10 14:44:48 +0100
commitfb9ae9e41eaf01b3651395fdd450ac1a4743e592 (patch)
tree8fb29e9b62d40d6407f082f55a7164775154bf78 /TODO.txt
parent04c3ee1f5acac47650be8d0ffbf90e238df0d12b (diff)
downloadnissy-core-fb9ae9e41eaf01b3651395fdd450ac1a4743e592.tar.gz
nissy-core-fb9ae9e41eaf01b3651395fdd450ac1a4743e592.zip
Big changes to the interface
Diffstat (limited to 'TODO.txt')
-rw-r--r--TODO.txt40
1 files changed, 19 insertions, 21 deletions
diff --git a/TODO.txt b/TODO.txt
index 4d21b5e..c2edfa0 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,30 +1,11 @@
1## Big changes 1## Big change
2 2
3### cube type changess 3* Add tests for multiple moves
4
5* rename cube_t to cube_internal_t and cube_array_t to cube_t
6* include only cube_t typedef in cube.h, remove ifdef from cube.h
7* rework public functions: for many the simple implementation
8 in the first section of cube.c is fine, other should first
9 convert and then call the internal function
10* for CO: move to bits 5 and 6, no need for padding bit
11
12### Remove stuff from API, use more strings
13
14* Remove move_t and trans_t
15* Remove all functions related to trans, not useful for users
16 (or maybe keep and let use transform? can see some use
17 for it, in strange cases)
18* Removes functions that read or write moves
19* All functions should take strings instead of moves
20* Performance is worse, more stuff must be done internally,
21 expose only stuf that users are likely to use
22* Benchmark: add some simple benchmarking functions to nissy.h, 4* Benchmark: add some simple benchmarking functions to nissy.h,
23 bench.c becomes very short 5 bench.c becomes very short
24 6
25### More for moves 7### More for moves
26 8
27* keep move(cube_t, move), but prefer direct inline moves over it
28* define macro to loop over moves e.g. #define FOREACHMOVE(action) 9* define macro to loop over moves e.g. #define FOREACHMOVE(action)
29 10
30### API goals: 11### API goals:
@@ -131,6 +112,8 @@ What about symcoord?
131 112
132## Improvements and other things 113## Improvements and other things
133 114
115* add centers (and moves...)
116* for CO: move to bits 5 and 6, no need for padding bit
134* NISS: Add mask to moves (e.g. U | NISS where NISS = 32 or something); 117* NISS: Add mask to moves (e.g. U | NISS where NISS = 32 or something);
135 adapt readmoves and writemoves. 118 adapt readmoves and writemoves.
136* Consider adding centers and other moves (for avx2: centers in the 119* Consider adding centers and other moves (for avx2: centers in the
@@ -150,3 +133,18 @@ What about symcoord?
150 dart ffi, js 133 dart ffi, js
151 java 134 java
152* add also example code (e.g. an optimal solver) in examples/ 135* add also example code (e.g. an optimal solver) in examples/
136
137## More documentation?
138
139* Add documentation comments inside cube.c?
140* Copy this to cube.c
141
142Transformations can be either simple rotations or a rotation composed
143with a mirroring. A composed rotation + mirror is obtained by applying
144the corresponding rotation to the solved cube mirrored along the M plane.
145
146For example, to apply the transformation RBm (mirrored RB) to a cube C:
147 1. Apply a mirror along the M plane to the solved cube
148 2. Rotate the mirrored cube with z' y2
149 3. Apply the cube C to the transformed solved cube
150 4. Apply the transformations of step 1a and 1b in reverse

Generated with cgit - Back to sebastiano.tronto.net