From 082cdd96c693d3035539959bd8d400d19b200f67 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sun, 6 Oct 2024 18:02:09 +0200 Subject: Tiny optimization for moves (avoid unnecessary CO) This is like 1% improvement to solver, but it is easy enough so I'll keep it --- src/core/moves.h | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'src/core') diff --git a/src/core/moves.h b/src/core/moves.h index f0d7646..0a91aca 100644 --- a/src/core/moves.h +++ b/src/core/moves.h @@ -1,5 +1,7 @@ #define MOVE(M, c) compose(c, MOVE_CUBE_ ## M) +#define MOVE_NOCO(M, c) compose_epcpeo(c, MOVE_CUBE_ ## M) #define PREMOVE(M, c) compose(MOVE_CUBE_ ## M, c) +#define PREMOVE_NOCO(M, c) compose_epcpeo(MOVE_CUBE_ ## M, c) STATIC_INLINE bool allowednextmove(uint8_t *, uint8_t); @@ -88,39 +90,39 @@ move(cube_t c, uint8_t m) { switch (m) { case MOVE_U: - return MOVE(U, c); + return MOVE_NOCO(U, c); case MOVE_U2: - return MOVE(U2, c); + return MOVE_NOCO(U2, c); case MOVE_U3: - return MOVE(U3, c); + return MOVE_NOCO(U3, c); case MOVE_D: - return MOVE(D, c); + return MOVE_NOCO(D, c); case MOVE_D2: - return MOVE(D2, c); + return MOVE_NOCO(D2, c); case MOVE_D3: - return MOVE(D3, c); + return MOVE_NOCO(D3, c); case MOVE_R: return MOVE(R, c); case MOVE_R2: - return MOVE(R2, c); + return MOVE_NOCO(R2, c); case MOVE_R3: return MOVE(R3, c); case MOVE_L: return MOVE(L, c); case MOVE_L2: - return MOVE(L2, c); + return MOVE_NOCO(L2, c); case MOVE_L3: return MOVE(L3, c); case MOVE_F: return MOVE(F, c); case MOVE_F2: - return MOVE(F2, c); + return MOVE_NOCO(F2, c); case MOVE_F3: return MOVE(F3, c); case MOVE_B: return MOVE(B, c); case MOVE_B2: - return MOVE(B2, c); + return MOVE_NOCO(B2, c); case MOVE_B3: return MOVE(B3, c); default: -- cgit v1.3