diff options
Diffstat (limited to 'TODO.md')
| -rw-r--r-- | TODO.md | 36 |
1 files changed, 21 insertions, 15 deletions
| @@ -3,20 +3,28 @@ | |||
| 3 | This is a list of things that I would like to add or change at some point. | 3 | This is a list of things that I would like to add or change at some point. |
| 4 | It's more of a personal reminder than anything else. | 4 | It's more of a personal reminder than anything else. |
| 5 | 5 | ||
| 6 | ## After symcoord | ||
| 7 | ### Solving standard coordinates | ||
| 8 | * add Void * extradata to DfsArg and a custom move function | ||
| 9 | * add optional custom pre-process for generating special table (nx) | ||
| 10 | * copy_dfsdata should copy extra too! | ||
| 11 | * Pruning: remove base value? | ||
| 12 | ### nx.c | ||
| 13 | * implement nxopt with all tables and all tricks | ||
| 14 | (maybe compile time variable for maximum memory to use?) | ||
| 15 | * custom pruning table, copy some code from pruning.h | ||
| 16 | * generate compressed: hard-code the base value, doable! | ||
| 17 | * special type of pruning table with fallback and whatnot | ||
| 18 | * is_valid should also unniss / cleanup the alg | ||
| 19 | ### fst_cube | ||
| 20 | * slightly different from cube in v2.0.2: each "side" coordinate | ||
| 21 | is a transformation of the other, not an eorl or similar (changes | ||
| 22 | the permutation!) | ||
| 23 | * add fst_index for some coordinates? | ||
| 24 | * inverse: for edges, just generate ep[12] and convert back | ||
| 25 | * corners: big table (150Mb if 16bit integers are used) | ||
| 26 | |||
| 6 | ## For version 2.1 | 27 | ## For version 2.1 |
| 7 | ### Slow: it is slower than the old nissy 2.0.2 :( | ||
| 8 | * nxopt's trick (switching to reduce branching) actually saves about 50%! | ||
| 9 | * Another factor is estimating *while* moving (i.e. do not move all | ||
| 10 | coordinates if the first one already gives a high value!) | ||
| 11 | * simplify solve, remove everything that is used only by optimal solvers | ||
| 12 | * Good compromise: each stepalt offers one of two alternatives: either solve | ||
| 13 | by simply using pruning tables and moving coordinates, or using a custom | ||
| 14 | estimator and moving a cube (or fast_cube) and computing coordinates | ||
| 15 | in the estimator | ||
| 16 | * is there really no way to use inverse branching trick with current system? | ||
| 17 | * new file optimal.c with the old solve logic; try first with the simple | ||
| 18 | cube implementation and the new indexers, if it is still slow change | ||
| 19 | to fast_cube (intermediate nissy v2.0.2 implementation) | ||
| 20 | ### Changes to Step and Solve | 28 | ### Changes to Step and Solve |
| 21 | * remove cube from dfsarg? (i still need to save the scramble somewhere, | 29 | * remove cube from dfsarg? (i still need to save the scramble somewhere, |
| 22 | but I really only use it in dfs_niss) | 30 | but I really only use it in dfs_niss) |
| @@ -24,8 +32,6 @@ It's more of a personal reminder than anything else. | |||
| 24 | * steps.c: checkers (use coordinates), all stepalt and steps (WIP...) | 32 | * steps.c: checkers (use coordinates), all stepalt and steps (WIP...) |
| 25 | * commands gen and freemem | 33 | * commands gen and freemem |
| 26 | * commands.c: twophase, ...? | 34 | * commands.c: twophase, ...? |
| 27 | * Coordinate should have a moveset field? No, at worst there are some garbage | ||
| 28 | values in mtable, but no risk for errors | ||
| 29 | ### Rotate, not transform, before solving | 35 | ### Rotate, not transform, before solving |
| 30 | * solve should re-orient first if needed and not just give up if centers are off | 36 | * solve should re-orient first if needed and not just give up if centers are off |
| 31 | ### Documentation | 37 | ### Documentation |
