aboutsummaryrefslogtreecommitdiff
path: root/TODO/2.1.md
diff options
context:
space:
mode:
Diffstat (limited to 'TODO/2.1.md')
-rw-r--r--TODO/2.1.md27
1 files changed, 26 insertions, 1 deletions
diff --git a/TODO/2.1.md b/TODO/2.1.md
index 92e4555..d65eb93 100644
--- a/TODO/2.1.md
+++ b/TODO/2.1.md
@@ -1,5 +1,31 @@
1# TODO-list for version 2.1 (or is it 3.0 at this point?) 1# TODO-list for version 2.1 (or is it 3.0 at this point?)
2 2
3## Alg and moveset changes (prerequisite for solve.h)
4
5### moveset.h
6* split off from alg.h
7
8### alg.h
9* There is a (future) bug in the way the solver checks if a move can
10be appended (allowed_next and similar): the last two moves are not enough.
11* Example: using QTM we have last 3 moves U U D. Considering only last 2,
12U could be appended, but it cannot (cancel to U').
13* Solution: the per-moveset bool allowed_next() should take an alg as
14parameter. There are going to be basically two versions, one for QTM and
15one for HTM (but more may be added).
16* Alg should be extended to remember the list of moves on inverse / normal
17separately (without looping over moves).
18* Maybe another parameter to know if it can assume there has not been
19any double switching, i.e. if the last moves are the only ones to
20be checked and there is no need to go back further (e.g. if alg is
21U (... stuff on inverse ...) D I don't want to have to check back
22to the U, but in practice we can often assume this does not happen).
23* Then we can remove last and lastinv from dfsdata.
24* move also can_niss to alg.h
25* the check for the order of the moves (to avoid counting L R and R L as
26different) can be made separately. Maybe add a "compare" function for moves,
27such that non-commuting moves are not comparable (return -1 0 1).
28
3## Rework solver 29## Rework solver
4 30
5* The architecture is the following: solve.h contains a solve() public 31* The architecture is the following: solve.h contains a solve() public
@@ -24,7 +50,6 @@ necessary). Maybe cleanup solveoptions too (e.g. threads not necessary).
24* solve.h depends only on moves (dependency on step and trans is removed). 50* solve.h depends only on moves (dependency on step and trans is removed).
25* preparation step should be reworked, maybe removed or delegated to the 51* preparation step should be reworked, maybe removed or delegated to the
26specific implementations. 52specific implementations.
27* allowed_moves and cancel_niss are moved to move.h.
28* All dfs stuff in the same function. Maybe remove also solvestop. 53* All dfs stuff in the same function. Maybe remove also solvestop.
29* Move two-step solve to a different module 54* Move two-step solve to a different module
30 55

Generated with cgit - Back to sebastiano.tronto.net