diff options
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 23 |
1 files changed, 21 insertions, 2 deletions
| @@ -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 | ||
| 52 | less branching (like nxopt). Need to add some info to EstimateData or to | ||
| 53 | DfsData (like last moves on inverse/other scramble) and to change some of | ||
| 54 | the logic of niss (allow for switching multiple times). | ||
| 55 | * Light optimal solver: use drud table instead of khuge, with tricks as above | ||
| 56 | and one more trick: if the last move is 180° avoid computing inverse cube | ||
| 57 | and 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 | ||
| 63 | self-symmetric overall) by adding a function to struct coord and some datafield | ||
| 64 | to struct symdata. | ||
| 65 | * Faster pruning table generation: multithreading (divide table into large | ||
| 66 | sections and use one mutex for each section to avoid too much locking) | ||
| 67 | * Cleanup symcoord.c: some coordinates and symdata are never actually used; | ||
| 68 | remove also sd_eofbepos and just use sd_coud for khuge (this changes the | ||
| 69 | coordinate 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 |
| 51 | current system) | 71 | current 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 | ||
