commit 6dc6d1004393b7c093a3aef7456af67662d56fee
parent fcb3ac9b02c3ed150fbf6d539613510cc83627ea
Author: Sebastiano Tronto <sebastiano@tronto.net>
Date: Mon, 16 Jan 2023 18:47:50 +0100
Refined comments for solve rework
Diffstat:
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/TODO/2.1.md b/TODO/2.1.md
@@ -2,9 +2,22 @@
## Rework solver
-* Split solve in solve_coord, solve_generic (and maybe solve_singlethread, see
- notes about build options).
-* Add a void * extradata to DfsArg.
+### Architecture
+
+* Nail down the theory first
+* One generic solve module that does not depend on anything else,
+ not even on cube if possible
+* The generic file includes the logic for branching and calls functions
+ provided as parameters to move the cube and check the status etc...
+* This includes the logic for single/multithreading (simplify if compiled
+ with N_THREADS = 1 or whatever this option is going to be)
+* The data representing the cube is a void pointer
+* Move two-step solve to a different module
+* Each other solver (solve coord, solve fst, solve multistep)
+ should go in a separate module
+
+### Other practicalities
+
* remove cube from dfsarg? (i still need to save the scramble somewhere,
but I really only use it in dfs_niss)
* Re-work prepare_step process for solve_generic (nxopt table is special).