diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2023-11-01 19:26:09 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2023-11-01 19:26:09 +0100 |
| commit | 08efbd62ef956327924aaea1fcfa97fde4dc1678 (patch) | |
| tree | 656d9f6ab50eee73a6e7fd79098e0dcfa1fc9034 /README.md | |
| parent | d65ce8e86b517ef3f7d48cf5ded1101444e05b2b (diff) | |
| download | nissy-core-08efbd62ef956327924aaea1fcfa97fde4dc1678.tar.gz nissy-core-08efbd62ef956327924aaea1fcfa97fde4dc1678.zip | |
Reworked moves and transformations, moved some stuff
Diffstat (limited to '')
| -rw-r--r-- | README.md | 44 |
1 files changed, 11 insertions, 33 deletions
| @@ -13,51 +13,29 @@ $ make test | |||
| 13 | 13 | ||
| 14 | ## TODO: | 14 | ## TODO: |
| 15 | 15 | ||
| 16 | ### Tests | 16 | ### Make AVX2 work |
| 17 | 17 | ||
| 18 | * inverse_move | 18 | * writecube to AVX2-src format (+ tests) |
| 19 | * inverse_trans | 19 | * generate moves and transformations with scripts in utils/ |
| 20 | 20 | * fix base get_ and set_ macros (constant arguments?) | |
| 21 | ### Simple additions | 21 | * optimize things that use get_ and set_ |
| 22 | |||
| 23 | * Write to AVX2-src format | ||
| 24 | * move() that takes a string (alg) as input | ||
| 25 | |||
| 26 | ### Changes | ||
| 27 | |||
| 28 | * write one function (static inline or public?) for each move (and trans) | ||
| 29 | * only call the specific functions in performance-critical steps (i.e. solve | ||
| 30 | - if the functions are static inline, all performance-critical steps must | ||
| 31 | be internal to cube.c) | ||
| 32 | * this also enables skipping some unnecessary work (e.g. flip edges, twist | ||
| 33 | corners) for many moves (and mirror transformations) | ||
| 34 | * add benchmarks with moves / trans called directly instead of via the | ||
| 35 | generic function | ||
| 36 | * keep generic move and trans functions with big switch case | ||
| 37 | * bring back constants into cube.c, and maybe also moves (TBD: what to | ||
| 38 | do with architecture-specific code? leave in separate files like now, | ||
| 39 | use just one file for each architecture...) | ||
| 40 | 22 | ||
| 41 | ### Documentation and interface | 23 | ### Documentation and interface |
| 42 | 24 | ||
| 43 | * inline some documentation as comments in cube.h or cube.c | 25 | * inline some documentation as comments in cube.h or cube.c |
| 44 | * README.md (maybe convert to txt?) becomes the reference documentation | 26 | * README.md (maybe convert to txt?) becomes the reference documentation |
| 45 | 27 | ||
| 46 | ### AVX2 | ||
| 47 | |||
| 48 | * fix base get_ and set_ macros (constant arguments?) | ||
| 49 | * implement missing stuff (moves, transform) | ||
| 50 | * optimize things that use get_ and set_ | ||
| 51 | |||
| 52 | ### More features | 28 | ### More features |
| 53 | 29 | ||
| 30 | * move() that takes a string (alg) as input | ||
| 54 | * coordinates: co, eo, epsep, cpsep_sym, cocpsep_sym, cphtr_sym, cocphtr_sym | 31 | * coordinates: co, eo, epsep, cpsep_sym, cocpsep_sym, cphtr_sym, cocphtr_sym |
| 55 | * pruning tables (1 bit per entry + fallback) | ||
| 56 | * solve.c | ||
| 57 | 32 | ||
| 58 | ### Optimizations: | 33 | ### Solving |
| 59 | 34 | ||
| 60 | * multi-move (up to 4/5 moves at once) | 35 | * Fixed depth |
| 36 | * pruning tables (1 bit per entry + fallback) | ||
| 37 | * Takes as parameters the amount of memory to use and a FILE for the tables | ||
| 38 | * Use multi-move (up to 4/5 moves at once) | ||
| 61 | 39 | ||
| 62 | ### Things I need to learn: | 40 | ### Things I need to learn: |
| 63 | 41 | ||
