aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md111
1 files changed, 71 insertions, 40 deletions
diff --git a/TODO.md b/TODO.md
index 2ef405d..b7481f1 100644
--- a/TODO.md
+++ b/TODO.md
@@ -3,50 +3,48 @@
3This is a list of things that I would like to add or change at some point. 3This is a list of things that I would like to add or change at some point.
4It's more of a personal reminder than anything else. 4It's more of a personal reminder than anything else.
5 5
6## Version 2.0.2
7### Website
8* now gen takes 40 minutes
9### Changelog
10* Only improved table generation speed, but this required huge changes in
11 coordinates.c and symcoord.c (+ some minor changes in other parts).
12
13## For version 2.1 6## For version 2.1
14### Coordinates 7### Slow: it is slower than the old nissy 2.0.2 :(
15* Text (README.md) description of coordinate system with 3 (or 4) types of 8* nxopt's trick (switching to reduce branching) actually saves about 50%!
16 coordinates: basic (+ fundamental), sym, composite (consisting of at most 9* Another factor is estimating *while* moving (i.e. do not move all
17 one sym + one or more basic) 10 coordinates if the first one already gives a high value!)
18* Use this to restructure the coordinate part; maybe fundamental coordinates 11* simplify solve, remove everything that is used only by optimal solvers
19 do not need to exist??? 12* Good compromise: each stepalt offers one of two alternatives: either solve
20* Add also "transform" for every coordinate. For example, for EO and similar 13 by simply using pruning tables and moving coordinates, or using a custom
21 only allow transformations that fix the EO axis. 14 estimator and moving a cube (or fast_cube) and computing coordinates
22* Also: "basic" symcoord do not allow trans, composite coordinates assume 15 in the estimator
23 the transformation fixes the basic sumcoord 16* is there really no way to use inverse branching trick with current system?
24* For each coordinate, manually disallow "bad" moves, or just ignore the error 17* new file optimal.c with the old solve logic; try first with the simple
25 (probably better to check: low performance cost, detect problems that I might 18 cube implementation and the new indexers, if it is still slow change
26 be overlooking) 19 to fast_cube (intermediate nissy v2.0.2 implementation)
27### Changes to Step and Solve 20### Changes to Step and Solve
28* Revolutionize: do everything based on coordinates, replace Cube with 21* remove cube from dfsarg? (i still need to save the scramble somewhere,
29 CubeArray (or just 4 values, so consistency check is super easy); 22 but I really only use it in dfs_niss)
30 remove tables for fast inverse. 23* coord.c: all old coordinates (WIP...)
31* No need for most of step data: just solve a list of coordinates 24* steps.c: checkers (use coordinates), all stepalt and steps (WIP...)
32 (+ associated pruning tables) 25* commands gen and freemem
33* For steps that accept multiple solved states (e.g. drany): 26* commands.c: twophase, ...?
34 just find a way to "merge" multiple steps as alternatives; or 27* Coordinate should have a moveset field? No, at worst there are some garbage
35 offer multiple lists of coordinates as alternatives 28 values in mtable, but no risk for errors
36* De Bondt's trick: list of 3 coords (as indexes in coord array of the step) 29### Rotate, not transform, before solving
37 that if evaluated to the same pruning value allow for de bondt's trick. 30* solve should re-orient first if needed and not just give up if centers are off
38* NISS: compute inverse based on current use moves just before switching,
39 using CubeArray; it is not too slow.
40### Loading at startup vs dynamically
41* Consider moving more things to the initial loading phase (i.e. remove
42 many of the "initialized" parts)
43### Documentation 31### Documentation
32* Document how coordinates and pruning tables work now
44* Write an examples.md file 33* Write an examples.md file
45* More screenshots! 34* More screenshots!
46### Tables management 35### Tables management
47* Check files in tables directory, add command to remove old / extraneous files 36* Check files in tables directory automatically remove old / extraneous files
48* Add checksum to check that tables are generated / downloaded correctly 37* Add checksum to check that tables are generated / downloaded correctly
49* Edit download page update instructions to tell what to do when changing tables 38### Conditional compiling
39* Option to avoid large tables at compile time
40* option to avoid multithreading (write a simpler solve for t=1, and also
41 check if found enough solutions before checking pruning values)
42### Technical
43* generic option parser
44* testing? Maybe just hardcode some examples generated with old nissy
45### Commands
46* Easy: add option -I (inverse) and -L (linear, like inverse + normal)
47 to do only linear NISS
50 48
51## Commands 49## Commands
52 50
@@ -62,16 +60,21 @@ including e.g. solutions that were not shown because -c)
62* 5-side solve (for robots) 60* 5-side solve (for robots)
63* Block-building steps (cross, roux blocks, ...) 61* Block-building steps (cross, roux blocks, ...)
64* Other common steps (LSE, ...) 62* Other common steps (LSE, ...)
63* Larger table for drudfin (include epe)? About 1Gb uncompressed,
64 500Mb compressed (fallback to noE), 250 compressed + parity trick
65 (is it doable?)
65 66
66### Improvements to currently implemented commands 67### Improvements to currently implemented commands
67* solve should re-orient first if needed and not just give up if centers are off 68* solve multidfs: do multithread by step, not by alternative (this way
69 if there are multiple alternatives it can make use of more threads)
68* solve should try up to a small bound without loading the large pruning table 70* solve should try up to a small bound without loading the large pruning table
71 (maybe this is not necessary if loading the table is fast enough)
69* silent batch mode without >>> 72* silent batch mode without >>>
70 73
71### New features 74### New features
75* EO analysis (and also DR and HTR analysis): group similar EOs together
76 and such (suggested by Jay)
72* configurability: add an `alias` command, run config file at startup 77* configurability: add an `alias` command, run config file at startup
73* configure max ram to be used (via config file and/or command line option)
74* transform alg, rufify etc...
75* command notation to list available moves 78* command notation to list available moves
76* make multi-step solve much more general and create command 79* make multi-step solve much more general and create command
77* input directly cube status instead of moves 80* input directly cube status instead of moves
@@ -105,7 +108,35 @@ including e.g. solutions that were not shown because -c)
105 108
106### Cleanup 109### Cleanup
107* sort again functions alphabetically in their files 110* sort again functions alphabetically in their files
111* change some function and variable names to make everything consistent
108* more stuff to load at start (or when suitable command is called) rather 112* more stuff to load at start (or when suitable command is called) rather
109 than when called directly, to avoid nasty problems with threading 113 than when called directly, to avoid nasty problems with threading
110* parse command args: one function per arg type, then each command has 114* parse command args: one function per arg type, then each command has
111 a list of options that it accepts (as a string) 115 a list of options that it accepts (as a string)
116
117### Style
118* do not declare all variables at the beginning of a function
119* remove var names from prototypes
120* various stuff from style(9)
121
122### Random
123Collect random info like this somewhere:
124
125Table pt_nxopt31_HTM
126Base value: 9
1270 1
1281 6
1292 29
1303 164
1314 1433
1325 16772
1336 205033
1347 2513871
1358 30329976
1369 342440769
13710 2815191126
13811 6147967200
13912 524918774
14013 3546
14114 0
14215 0

Generated with cgit - Back to sebastiano.tronto.net