aboutsummaryrefslogtreecommitdiff
path: root/TODO.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO.md')
-rw-r--r--TODO.md23
1 files changed, 21 insertions, 2 deletions
diff --git a/TODO.md b/TODO.md
index 7ab3287..f6c464b 100644
--- a/TODO.md
+++ b/TODO.md
@@ -42,11 +42,31 @@ It's more of a personal reminder than anything else.
42 in non-posix systems 42 in non-posix systems
43* better man page 43* better man page
44* find a better way to distribute the large tables, especially khuge 44* find a better way to distribute the large tables, especially khuge
45(or just generate them quickly, see below)
45* webapp (cgi) 46* webapp (cgi)
46 47
47## Technical stuff 48## Technical stuff
48 49
49### Better pruning tables 50## Performance (optimal solver)
51* Khuge optimal solver: change direction of search when doing so leads to
52less branching (like nxopt). Need to add some info to EstimateData or to
53DfsData (like last moves on inverse/other scramble) and to change some of
54the logic of niss (allow for switching multiple times).
55* Light optimal solver: use drud table instead of khuge, with tricks as above
56and one more trick: if the last move is 180° avoid computing inverse cube
57and just use previous values for all 3 axes.
58
59## Coordinates, symmetries, pruning tables
60* use multiple threads to search for solutions in parallel
61* Faster pruning table generation: keep track of which positions are "nasty"
62(i.e. self-symmetric with respect to the base symmetry coordinate but not
63self-symmetric overall) by adding a function to struct coord and some datafield
64to struct symdata.
65* Faster pruning table generation: multithreading (divide table into large
66sections and use one mutex for each section to avoid too much locking)
67* Cleanup symcoord.c: some coordinates and symdata are never actually used;
68remove also sd_eofbepos and just use sd_coud for khuge (this changes the
69coordinate so the whole table must be generated again!)
50* Use pruning values mod 4 instead of mod 16 (or maybe not, I like the 70* Use pruning values mod 4 instead of mod 16 (or maybe not, I like the
51current system) 71current system)
52 72
@@ -60,4 +80,3 @@ current system)
60* client/server architecture: run a server process in the background so that 80* client/server architecture: run a server process in the background so that
61 multiple client processess can send it queries and get results; this would 81 multiple client processess can send it queries and get results; this would
62 open up the door for a web-based version or graphical clients 82 open up the door for a web-based version or graphical clients
63* use multiple threads to search for solutions in parallel

Generated with cgit - Back to sebastiano.tronto.net