diff options
Diffstat (limited to 'src/_move_logic_arr.c')
| -rw-r--r-- | src/_move_logic_arr.c | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/src/_move_logic_arr.c b/src/_move_logic_arr.c deleted file mode 100644 index d8aec10..0000000 --- a/src/_move_logic_arr.c +++ /dev/null | |||
| @@ -1,149 +0,0 @@ | |||
| 1 | #define PERM4(r, i, j, k, l) \ | ||
| 2 | aux = r[i]; \ | ||
| 3 | r[i] = r[l]; \ | ||
| 4 | r[l] = r[k]; \ | ||
| 5 | r[k] = r[j]; \ | ||
| 6 | r[j] = aux; | ||
| 7 | #define PERM22(r, i, j, k, l) \ | ||
| 8 | aux = r[i]; \ | ||
| 9 | r[i] = r[j]; \ | ||
| 10 | r[j] = aux; \ | ||
| 11 | aux = r[k]; \ | ||
| 12 | r[k] = r[l]; \ | ||
| 13 | r[l] = aux; | ||
| 14 | #define CO(a, b) \ | ||
| 15 | aux = (a & _cobits) + (b & _cobits); \ | ||
| 16 | auy = (aux + _ctwist_cw) >> 2U; \ | ||
| 17 | auz = (aux + auy) & _cobits2; \ | ||
| 18 | a = (a & _pbits) | auz; | ||
| 19 | #define CO4(r, i, j, k, l) \ | ||
| 20 | CO(r[i], _ctwist_cw) \ | ||
| 21 | CO(r[j], _ctwist_cw) \ | ||
| 22 | CO(r[k], _ctwist_ccw) \ | ||
| 23 | CO(r[l], _ctwist_ccw) | ||
| 24 | #define EO4(r, i, j, k, l) \ | ||
| 25 | r[i] ^= _eobit; \ | ||
| 26 | r[j] ^= _eobit; \ | ||
| 27 | r[k] ^= _eobit; \ | ||
| 28 | r[l] ^= _eobit; | ||
| 29 | |||
| 30 | uint8_t aux, auy, auz; | ||
| 31 | cube_t ret = c; | ||
| 32 | |||
| 33 | switch (m) { | ||
| 34 | case U: | ||
| 35 | PERM4(ret.e, _e_uf, _e_ul, _e_ub, _e_ur) | ||
| 36 | PERM4(ret.c, _c_ufr, _c_ufl, _c_ubl, _c_ubr) | ||
| 37 | |||
| 38 | return ret; | ||
| 39 | case U2: | ||
| 40 | PERM22(ret.e, _e_uf, _e_ub, _e_ul, _e_ur) | ||
| 41 | PERM22(ret.c, _c_ufr, _c_ubl, _c_ufl, _c_ubr) | ||
| 42 | |||
| 43 | return ret; | ||
| 44 | case U3: | ||
| 45 | PERM4(ret.e, _e_uf, _e_ur, _e_ub, _e_ul) | ||
| 46 | PERM4(ret.c, _c_ufr, _c_ubr, _c_ubl, _c_ufl) | ||
| 47 | |||
| 48 | return ret; | ||
| 49 | case D: | ||
| 50 | PERM4(ret.e, _e_df, _e_dr, _e_db, _e_dl) | ||
| 51 | PERM4(ret.c, _c_dfr, _c_dbr, _c_dbl, _c_dfl) | ||
| 52 | |||
| 53 | return ret; | ||
| 54 | case D2: | ||
| 55 | PERM22(ret.e, _e_df, _e_db, _e_dr, _e_dl) | ||
| 56 | PERM22(ret.c, _c_dfr, _c_dbl, _c_dbr, _c_dfl) | ||
| 57 | |||
| 58 | return ret; | ||
| 59 | case D3: | ||
| 60 | PERM4(ret.e, _e_df, _e_dl, _e_db, _e_dr) | ||
| 61 | PERM4(ret.c, _c_dfr, _c_dfl, _c_dbl, _c_dbr) | ||
| 62 | |||
| 63 | return ret; | ||
| 64 | case R: | ||
| 65 | PERM4(ret.e, _e_ur, _e_br, _e_dr, _e_fr) | ||
| 66 | PERM4(ret.c, _c_ufr, _c_ubr, _c_dbr, _c_dfr) | ||
| 67 | |||
| 68 | CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr) | ||
| 69 | |||
| 70 | return ret; | ||
| 71 | case R2: | ||
| 72 | PERM22(ret.e, _e_ur, _e_dr, _e_fr, _e_br) | ||
| 73 | PERM22(ret.c, _c_ufr, _c_dbr, _c_ubr, _c_dfr) | ||
| 74 | |||
| 75 | return ret; | ||
| 76 | case R3: | ||
| 77 | PERM4(ret.e, _e_ur, _e_fr, _e_dr, _e_br) | ||
| 78 | PERM4(ret.c, _c_ufr, _c_dfr, _c_dbr, _c_ubr) | ||
| 79 | |||
| 80 | CO4(ret.c, _c_ubr, _c_dfr, _c_ufr, _c_dbr) | ||
| 81 | |||
| 82 | return ret; | ||
| 83 | case L: | ||
| 84 | PERM4(ret.e, _e_ul, _e_fl, _e_dl, _e_bl) | ||
| 85 | PERM4(ret.c, _c_ufl, _c_dfl, _c_dbl, _c_ubl) | ||
| 86 | |||
| 87 | CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl) | ||
| 88 | |||
| 89 | return ret; | ||
| 90 | case L2: | ||
| 91 | PERM22(ret.e, _e_ul, _e_dl, _e_fl, _e_bl) | ||
| 92 | PERM22(ret.c, _c_ufl, _c_dbl, _c_ubl, _c_dfl) | ||
| 93 | |||
| 94 | return ret; | ||
| 95 | case L3: | ||
| 96 | PERM4(ret.e, _e_ul, _e_bl, _e_dl, _e_fl) | ||
| 97 | PERM4(ret.c, _c_ufl, _c_ubl, _c_dbl, _c_dfl) | ||
| 98 | |||
| 99 | CO4(ret.c, _c_ufl, _c_dbl, _c_dfl, _c_ubl) | ||
| 100 | |||
| 101 | return ret; | ||
| 102 | case F: | ||
| 103 | PERM4(ret.e, _e_uf, _e_fr, _e_df, _e_fl) | ||
| 104 | PERM4(ret.c, _c_ufr, _c_dfr, _c_dfl, _c_ufl) | ||
| 105 | |||
| 106 | EO4(ret.e, _e_uf, _e_fr, _e_df, _e_fl) | ||
| 107 | CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl) | ||
| 108 | |||
| 109 | return ret; | ||
| 110 | case F2: | ||
| 111 | PERM22(ret.e, _e_uf, _e_df, _e_fr, _e_fl) | ||
| 112 | PERM22(ret.c, _c_ufr, _c_dfl, _c_ufl, _c_dfr) | ||
| 113 | |||
| 114 | return ret; | ||
| 115 | case F3: | ||
| 116 | PERM4(ret.e, _e_uf, _e_fl, _e_df, _e_fr) | ||
| 117 | PERM4(ret.c, _c_ufr, _c_ufl, _c_dfl, _c_dfr) | ||
| 118 | |||
| 119 | EO4(ret.e, _e_uf, _e_fr, _e_df, _e_fl) | ||
| 120 | CO4(ret.c, _c_ufr, _c_dfl, _c_dfr, _c_ufl) | ||
| 121 | |||
| 122 | return ret; | ||
| 123 | case B: | ||
| 124 | PERM4(ret.e, _e_ub, _e_bl, _e_db, _e_br) | ||
| 125 | PERM4(ret.c, _c_ubr, _c_ubl, _c_dbl, _c_dbr) | ||
| 126 | |||
| 127 | EO4(ret.e, _e_ub, _e_br, _e_db, _e_bl) | ||
| 128 | CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr) | ||
| 129 | |||
| 130 | return ret; | ||
| 131 | case B2: | ||
| 132 | PERM22(ret.e, _e_ub, _e_db, _e_br, _e_bl) | ||
| 133 | PERM22(ret.c, _c_ubr, _c_dbl, _c_ubl, _c_dbr) | ||
| 134 | |||
| 135 | return ret; | ||
| 136 | case B3: | ||
| 137 | PERM4(ret.e, _e_ub, _e_br, _e_db, _e_bl) | ||
| 138 | PERM4(ret.c, _c_ubr, _c_dbr, _c_dbl, _c_ubl) | ||
| 139 | |||
| 140 | EO4(ret.e, _e_ub, _e_br, _e_db, _e_bl) | ||
| 141 | CO4(ret.c, _c_ubl, _c_dbr, _c_dbl, _c_ubr) | ||
| 142 | |||
| 143 | return ret; | ||
| 144 | default: | ||
| 145 | #ifdef DEBUG | ||
| 146 | fprintf(stderr, "mover error, unknown move\n"); | ||
| 147 | #endif | ||
| 148 | goto move_error; | ||
| 149 | } | ||
