diff options
| -rw-r--r-- | TODO.md | 10 | ||||
| -rwxr-xr-x | nissy | bin | 192888 -> 192888 bytes | |||
| -rw-r--r-- | src/steps.c | 4 |
3 files changed, 11 insertions, 3 deletions
| @@ -45,9 +45,13 @@ It's more of a personal reminder than anything else. | |||
| 45 | ## Performance | 45 | ## Performance |
| 46 | * solve (allow_next): filter out based on base_move; only check once for each | 46 | * solve (allow_next): filter out based on base_move; only check once for each |
| 47 | triple of moves; how to deal with different movesets? | 47 | triple of moves; how to deal with different movesets? |
| 48 | * Light optimal solver: use drud table instead of khuge, with tricks as above | 48 | * try htr corners + edges in slice but not oriented (300Mb table); |
| 49 | and one more trick: if the last move is 180° avoid computing inverse cube | 49 | de Bondt's trick does not work, but I can use full symmetry and |
| 50 | and just use previous values for all 3 axes. | 50 | take advantage of the fact that it is a subset invariant under half-turns |
| 51 | (like in light optimal solver) | ||
| 52 | * Another idea: DR + cornershtr (5Gb table); same as above, de Bondt's trick | ||
| 53 | does not work but I can use half-turn trick | ||
| 54 | * On the contrary: DR + separate UD corners allow dB's trick, but no ht-trick | ||
| 51 | 55 | ||
| 52 | ## Coordinates, symmetries, pruning tables | 56 | ## Coordinates, symmetries, pruning tables |
| 53 | * Cleanup symcoord.c: some coordinates and symdata are never actually used; | 57 | * Cleanup symcoord.c: some coordinates and symdata are never actually used; |
| Binary files differ | |||
diff --git a/src/steps.c b/src/steps.c index 7478ce6..c4d1279 100644 --- a/src/steps.c +++ b/src/steps.c | |||
| @@ -1330,6 +1330,10 @@ estimate_light_HTM(DfsArg *arg) | |||
| 1330 | ptableval(&pd_drud_sym16_HTM, aux); | 1330 | ptableval(&pd_drud_sym16_HTM, aux); |
| 1331 | } | 1331 | } |
| 1332 | UPDATECHECKSTOP(ret, arg->ed->inverse_rl, target); | 1332 | UPDATECHECKSTOP(ret, arg->ed->inverse_rl, target); |
| 1333 | } else { | ||
| 1334 | UPDATECHECKSTOP(ret, arg->ed->inverse_ud, target); | ||
| 1335 | UPDATECHECKSTOP(ret, arg->ed->inverse_fb, target); | ||
| 1336 | UPDATECHECKSTOP(ret, arg->ed->inverse_rl, target); | ||
| 1333 | } | 1337 | } |
| 1334 | 1338 | ||
| 1335 | /* Michel de Bondt's trick*/ | 1339 | /* Michel de Bondt's trick*/ |
