From fd5ddb3db9f50411ca579d84f225f265ca35b56a Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 5 Sep 2024 08:53:38 +0200 Subject: Rename constants from _underscore to CAPS --- src/core/constant_cubes.h | 228 +++++++-------- src/core/cube.h | 70 ++--- src/core/io_cube.h | 104 +++---- src/core/io_moves.h | 26 +- src/core/io_trans.h | 10 +- src/core/moves.h | 122 ++++---- src/core/transform.h | 229 +++++++-------- src/core/transform_with_switch.h | 616 +++++++++++++++++++-------------------- 8 files changed, 692 insertions(+), 713 deletions(-) (limited to 'src/core') diff --git a/src/core/constant_cubes.h b/src/core/constant_cubes.h index b7748d8..e6a9e88 100644 --- a/src/core/constant_cubes.h +++ b/src/core/constant_cubes.h @@ -1,229 +1,229 @@ -#define _move_cube_U static_cube( \ +#define MOVE_CUBE_U static_cube( \ 5, 4, 2, 3, 0, 1, 6, 7, 4, 5, 2, 3, 1, 0, 6, 7, 8, 9, 10, 11) -#define _move_cube_U2 static_cube( \ +#define MOVE_CUBE_U2 static_cube( \ 1, 0, 2, 3, 5, 4, 6, 7, 1, 0, 2, 3, 5, 4, 6, 7, 8, 9, 10, 11) -#define _move_cube_U3 static_cube( \ +#define MOVE_CUBE_U3 static_cube( \ 4, 5, 2, 3, 1, 0, 6, 7, 5, 4, 2, 3, 0, 1, 6, 7, 8, 9, 10, 11) -#define _move_cube_D static_cube( \ +#define MOVE_CUBE_D static_cube( \ 0, 1, 7, 6, 4, 5, 2, 3, 0, 1, 7, 6, 4, 5, 2, 3, 8, 9, 10, 11) -#define _move_cube_D2 static_cube( \ +#define MOVE_CUBE_D2 static_cube( \ 0, 1, 3, 2, 4, 5, 7, 6, 0, 1, 3, 2, 4, 5, 7, 6, 8, 9, 10, 11) -#define _move_cube_D3 static_cube( \ +#define MOVE_CUBE_D3 static_cube( \ 0, 1, 6, 7, 4, 5, 3, 2, 0, 1, 6, 7, 4, 5, 3, 2, 8, 9, 10, 11) -#define _move_cube_R static_cube( \ +#define MOVE_CUBE_R static_cube( \ 70, 1, 2, 69, 4, 32, 35, 7, 0, 1, 2, 3, 8, 5, 6, 11, 7, 9, 10, 4) -#define _move_cube_R2 static_cube( \ +#define MOVE_CUBE_R2 static_cube( \ 3, 1, 2, 0, 4, 6, 5, 7, 0, 1, 2, 3, 7, 5, 6, 4, 11, 9, 10, 8) -#define _move_cube_R3 static_cube( \ +#define MOVE_CUBE_R3 static_cube( \ 69, 1, 2, 70, 4, 35, 32, 7, 0, 1, 2, 3, 11, 5, 6, 8, 4, 9, 10, 7) -#define _move_cube_L static_cube( \ +#define MOVE_CUBE_L static_cube( \ 0, 71, 68, 3, 33, 5, 6, 34, 0, 1, 2, 3, 4, 10, 9, 7, 8, 5, 6, 11) -#define _move_cube_L2 static_cube( \ +#define MOVE_CUBE_L2 static_cube( \ 0, 2, 1, 3, 7, 5, 6, 4, 0, 1, 2, 3, 4, 6, 5, 7, 8, 10, 9, 11) -#define _move_cube_L3 static_cube( \ +#define MOVE_CUBE_L3 static_cube( \ 0, 68, 71, 3, 34, 5, 6, 33, 0, 1, 2, 3, 4, 9, 10, 7, 8, 6, 5, 11) -#define _move_cube_F static_cube( \ +#define MOVE_CUBE_F static_cube( \ 36, 1, 38, 3, 66, 5, 64, 7, 25, 1, 2, 24, 4, 5, 6, 7, 16, 19, 10, 11) -#define _move_cube_F2 static_cube( \ +#define MOVE_CUBE_F2 static_cube( \ 2, 1, 0, 3, 6, 5, 4, 7, 3, 1, 2, 0, 4, 5, 6, 7, 9, 8, 10, 11) -#define _move_cube_F3 static_cube( \ +#define MOVE_CUBE_F3 static_cube( \ 38, 1, 36, 3, 64, 5, 66, 7, 24, 1, 2, 25, 4, 5, 6, 7, 19, 16, 10, 11) -#define _move_cube_B static_cube( \ +#define MOVE_CUBE_B static_cube( \ 0, 37, 2, 39, 4, 67, 6, 65, 0, 27, 26, 3, 4, 5, 6, 7, 8, 9, 17, 18) -#define _move_cube_B2 static_cube( \ +#define MOVE_CUBE_B2 static_cube( \ 0, 3, 2, 1, 4, 7, 6, 5, 0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 11, 10) -#define _move_cube_B3 static_cube( \ +#define MOVE_CUBE_B3 static_cube( \ 0, 39, 2, 37, 4, 65, 6, 67, 0, 26, 27, 3, 4, 5, 6, 7, 8, 9, 18, 17) -#define _trans_cube_UFr static_cube( \ +#define TRANS_CUBE_UFr static_cube( \ 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) -#define _trans_cube_UFr_inverse static_cube( \ +#define TRANS_CUBE_UFr_INVERSE static_cube( \ 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) -#define _trans_cube_ULr static_cube( \ +#define TRANS_CUBE_ULr static_cube( \ 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24) -#define _trans_cube_ULr_inverse static_cube( \ +#define TRANS_CUBE_ULr_INVERSE static_cube( \ 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26) -#define _trans_cube_UBr static_cube( \ +#define TRANS_CUBE_UBr static_cube( \ 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9) -#define _trans_cube_UBr_inverse static_cube( \ +#define TRANS_CUBE_UBr_INVERSE static_cube( \ 1, 0, 3, 2, 5, 4, 7, 6, 1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9) -#define _trans_cube_URr static_cube( \ +#define TRANS_CUBE_URr static_cube( \ 5, 4, 6, 7, 0, 1, 3, 2, 4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26) -#define _trans_cube_URr_inverse static_cube( \ +#define TRANS_CUBE_URr_INVERSE static_cube( \ 4, 5, 7, 6, 1, 0, 2, 3, 5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24) -#define _trans_cube_DFr static_cube( \ +#define TRANS_CUBE_DFr static_cube( \ 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10) -#define _trans_cube_DFr_inverse static_cube( \ +#define TRANS_CUBE_DFr_INVERSE static_cube( \ 2, 3, 0, 1, 6, 7, 4, 5, 3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10) -#define _trans_cube_DLr static_cube( \ +#define TRANS_CUBE_DLr static_cube( \ 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27) -#define _trans_cube_DLr_inverse static_cube( \ +#define TRANS_CUBE_DLr_INVERSE static_cube( \ 7, 6, 4, 5, 2, 3, 1, 0, 6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27) -#define _trans_cube_DBr static_cube( \ +#define TRANS_CUBE_DBr static_cube( \ 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8) -#define _trans_cube_DBr_inverse static_cube( \ +#define TRANS_CUBE_DBr_INVERSE static_cube( \ 3, 2, 1, 0, 7, 6, 5, 4, 2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8) -#define _trans_cube_DRr static_cube( \ +#define TRANS_CUBE_DRr static_cube( \ 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25) -#define _trans_cube_DRr_inverse static_cube( \ +#define TRANS_CUBE_DRr_INVERSE static_cube( \ 6, 7, 5, 4, 3, 2, 0, 1, 7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25) -#define _trans_cube_RUr static_cube( \ +#define TRANS_CUBE_RUr static_cube( \ 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3) -#define _trans_cube_RUr_inverse static_cube( \ +#define TRANS_CUBE_RUr_INVERSE static_cube( \ 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21) -#define _trans_cube_RFr static_cube( \ +#define TRANS_CUBE_RFr static_cube( \ 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18) -#define _trans_cube_RFr_inverse static_cube( \ +#define TRANS_CUBE_RFr_INVERSE static_cube( \ 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17) -#define _trans_cube_RDr static_cube( \ +#define TRANS_CUBE_RDr static_cube( \ 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1) -#define _trans_cube_RDr_inverse static_cube( \ +#define TRANS_CUBE_RDr_INVERSE static_cube( \ 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20) -#define _trans_cube_RBr static_cube( \ +#define TRANS_CUBE_RBr static_cube( \ 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16) -#define _trans_cube_RBr_inverse static_cube( \ +#define TRANS_CUBE_RBr_INVERSE static_cube( \ 37, 38, 39, 36, 67, 64, 65, 66, 27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16) -#define _trans_cube_LUr static_cube( \ +#define TRANS_CUBE_LUr static_cube( \ 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2) -#define _trans_cube_LUr_inverse static_cube( \ +#define TRANS_CUBE_LUr_INVERSE static_cube( \ 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23) -#define _trans_cube_LFr static_cube( \ +#define TRANS_CUBE_LFr static_cube( \ 36, 39, 38, 37, 66, 65, 64, 67, 25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17) -#define _trans_cube_LFr_inverse static_cube( \ +#define TRANS_CUBE_LFr_INVERSE static_cube( \ 38, 37, 36, 39, 64, 67, 66, 65, 24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18) -#define _trans_cube_LDr static_cube( \ +#define TRANS_CUBE_LDr static_cube( \ 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0) -#define _trans_cube_LDr_inverse static_cube( \ +#define TRANS_CUBE_LDr_INVERSE static_cube( \ 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22) -#define _trans_cube_LBr static_cube( \ +#define TRANS_CUBE_LBr static_cube( \ 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19) -#define _trans_cube_LBr_inverse static_cube( \ +#define TRANS_CUBE_LBr_INVERSE static_cube( \ 39, 36, 37, 38, 65, 66, 67, 64, 26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19) -#define _trans_cube_FUr static_cube( \ +#define TRANS_CUBE_FUr static_cube( \ 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6) -#define _trans_cube_FUr_inverse static_cube( \ +#define TRANS_CUBE_FUr_INVERSE static_cube( \ 68, 70, 69, 71, 32, 34, 33, 35, 16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6) -#define _trans_cube_FRr static_cube( \ +#define TRANS_CUBE_FRr static_cube( \ 32, 34, 35, 33, 70, 68, 69, 71, 8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21) -#define _trans_cube_FRr_inverse static_cube( \ +#define TRANS_CUBE_FRr_INVERSE static_cube( \ 64, 67, 65, 66, 37, 38, 36, 39, 20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3) -#define _trans_cube_FDr static_cube( \ +#define TRANS_CUBE_FDr static_cube( \ 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4) -#define _trans_cube_FDr_inverse static_cube( \ +#define TRANS_CUBE_FDr_INVERSE static_cube( \ 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7) -#define _trans_cube_FLr static_cube( \ +#define TRANS_CUBE_FLr static_cube( \ 34, 32, 33, 35, 68, 70, 71, 69, 9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23) -#define _trans_cube_FLr_inverse static_cube( \ +#define TRANS_CUBE_FLr_INVERSE static_cube( \ 65, 66, 64, 67, 36, 39, 37, 38, 21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2) -#define _trans_cube_BUr static_cube( \ +#define TRANS_CUBE_BUr static_cube( \ 69, 71, 68, 70, 33, 35, 32, 34, 17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7) -#define _trans_cube_BUr_inverse static_cube( \ +#define TRANS_CUBE_BUr_INVERSE static_cube( \ 70, 68, 71, 69, 34, 32, 35, 33, 19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4) -#define _trans_cube_BRr static_cube( \ +#define TRANS_CUBE_BRr static_cube( \ 35, 33, 32, 34, 69, 71, 70, 68, 11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22) -#define _trans_cube_BRr_inverse static_cube( \ +#define TRANS_CUBE_BRr_INVERSE static_cube( \ 66, 65, 67, 64, 39, 36, 38, 37, 22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0) -#define _trans_cube_BDr static_cube( \ +#define TRANS_CUBE_BDr static_cube( \ 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5) -#define _trans_cube_BDr_inverse static_cube( \ +#define TRANS_CUBE_BDr_INVERSE static_cube( \ 71, 69, 70, 68, 35, 33, 34, 32, 18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5) -#define _trans_cube_BLr static_cube( \ +#define TRANS_CUBE_BLr static_cube( \ 33, 35, 34, 32, 71, 69, 68, 70, 10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20) -#define _trans_cube_BLr_inverse static_cube( \ +#define TRANS_CUBE_BLr_INVERSE static_cube( \ 67, 64, 66, 65, 38, 37, 39, 36, 23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1) -#define _trans_cube_UFm static_cube( \ +#define TRANS_CUBE_UFm static_cube( \ 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10) -#define _trans_cube_UFm_inverse static_cube( \ +#define TRANS_CUBE_UFm_INVERSE static_cube( \ 4, 5, 6, 7, 0, 1, 2, 3, 0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10) -#define _trans_cube_ULm static_cube( \ +#define TRANS_CUBE_ULm static_cube( \ 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25) -#define _trans_cube_ULm_inverse static_cube( \ +#define TRANS_CUBE_ULm_INVERSE static_cube( \ 0, 1, 3, 2, 5, 4, 6, 7, 4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25) -#define _trans_cube_UBm static_cube( \ +#define TRANS_CUBE_UBm static_cube( \ 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8) -#define _trans_cube_UBm_inverse static_cube( \ +#define TRANS_CUBE_UBm_INVERSE static_cube( \ 5, 4, 7, 6, 1, 0, 3, 2, 1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8) -#define _trans_cube_URm static_cube( \ +#define TRANS_CUBE_URm static_cube( \ 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27) -#define _trans_cube_URm_inverse static_cube( \ +#define TRANS_CUBE_URm_INVERSE static_cube( \ 1, 0, 2, 3, 4, 5, 7, 6, 5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27) -#define _trans_cube_DFm static_cube( \ +#define TRANS_CUBE_DFm static_cube( \ 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11) -#define _trans_cube_DFm_inverse static_cube( \ +#define TRANS_CUBE_DFm_INVERSE static_cube( \ 6, 7, 4, 5, 2, 3, 0, 1, 3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11) -#define _trans_cube_DLm static_cube( \ +#define TRANS_CUBE_DLm static_cube( \ 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26) -#define _trans_cube_DLm_inverse static_cube( \ +#define TRANS_CUBE_DLm_INVERSE static_cube( \ 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24) -#define _trans_cube_DBm static_cube( \ +#define TRANS_CUBE_DBm static_cube( \ 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9) -#define _trans_cube_DBm_inverse static_cube( \ +#define TRANS_CUBE_DBm_INVERSE static_cube( \ 7, 6, 5, 4, 3, 2, 1, 0, 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9) -#define _trans_cube_DRm static_cube( \ +#define TRANS_CUBE_DRm static_cube( \ 2, 3, 1, 0, 7, 6, 4, 5, 6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24) -#define _trans_cube_DRm_inverse static_cube( \ +#define TRANS_CUBE_DRm_INVERSE static_cube( \ 3, 2, 0, 1, 6, 7, 5, 4, 7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26) -#define _trans_cube_RUm static_cube( \ +#define TRANS_CUBE_RUm static_cube( \ 68, 71, 69, 70, 33, 34, 32, 35, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3) -#define _trans_cube_RUm_inverse static_cube( \ +#define TRANS_CUBE_RUm_INVERSE static_cube( \ 70, 68, 69, 71, 32, 34, 35, 33, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22) -#define _trans_cube_RFm static_cube( \ +#define TRANS_CUBE_RFm static_cube( \ 34, 33, 32, 35, 68, 71, 70, 69, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18) -#define _trans_cube_RFm_inverse static_cube( \ +#define TRANS_CUBE_RFm_INVERSE static_cube( \ 66, 65, 64, 67, 36, 39, 38, 37, 25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18) -#define _trans_cube_RDm static_cube( \ +#define TRANS_CUBE_RDm static_cube( \ 71, 68, 70, 69, 34, 33, 35, 32, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1) -#define _trans_cube_RDm_inverse static_cube( \ +#define TRANS_CUBE_RDm_INVERSE static_cube( \ 71, 69, 68, 70, 33, 35, 34, 32, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23) -#define _trans_cube_RBm static_cube( \ +#define TRANS_CUBE_RBm static_cube( \ 33, 34, 35, 32, 71, 68, 69, 70, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16) -#define _trans_cube_RBm_inverse static_cube( \ +#define TRANS_CUBE_RBm_INVERSE static_cube( \ 67, 64, 65, 66, 37, 38, 39, 36, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19) -#define _trans_cube_LUm static_cube( \ +#define TRANS_CUBE_LUm static_cube( \ 69, 70, 68, 71, 32, 35, 33, 34, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2) -#define _trans_cube_LUm_inverse static_cube( \ +#define TRANS_CUBE_LUm_INVERSE static_cube( \ 68, 70, 71, 69, 34, 32, 33, 35, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20) -#define _trans_cube_LFm static_cube( \ +#define TRANS_CUBE_LFm static_cube( \ 32, 35, 34, 33, 70, 69, 68, 71, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17) -#define _trans_cube_LFm_inverse static_cube( \ +#define TRANS_CUBE_LFm_INVERSE static_cube( \ 64, 67, 66, 65, 38, 37, 36, 39, 24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17) -#define _trans_cube_LDm static_cube( \ +#define TRANS_CUBE_LDm static_cube( \ 70, 69, 71, 68, 35, 32, 34, 33, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0) -#define _trans_cube_LDm_inverse static_cube( \ +#define TRANS_CUBE_LDm_INVERSE static_cube( \ 69, 71, 70, 68, 35, 33, 32, 34, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21) -#define _trans_cube_LBm static_cube( \ +#define TRANS_CUBE_LBm static_cube( \ 35, 32, 33, 34, 69, 70, 71, 68, 27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19) -#define _trans_cube_LBm_inverse static_cube( \ +#define TRANS_CUBE_LBm_INVERSE static_cube( \ 65, 66, 67, 64, 39, 36, 37, 38, 26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16) -#define _trans_cube_FUm static_cube( \ +#define TRANS_CUBE_FUm static_cube( \ 64, 66, 65, 67, 36, 38, 37, 39, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7) -#define _trans_cube_FUm_inverse static_cube( \ +#define TRANS_CUBE_FUm_INVERSE static_cube( \ 32, 34, 33, 35, 68, 70, 69, 71, 16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7) -#define _trans_cube_FRm static_cube( \ +#define TRANS_CUBE_FRm static_cube( \ 36, 38, 39, 37, 66, 64, 65, 67, 9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20) -#define _trans_cube_FRm_inverse static_cube( \ +#define TRANS_CUBE_FRm_INVERSE static_cube( \ 37, 38, 36, 39, 64, 67, 65, 66, 20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2) -#define _trans_cube_FDm static_cube( \ +#define TRANS_CUBE_FDm static_cube( \ 66, 64, 67, 65, 38, 36, 39, 37, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5) -#define _trans_cube_FDm_inverse static_cube( \ +#define TRANS_CUBE_FDm_INVERSE static_cube( \ 33, 35, 32, 34, 69, 71, 68, 70, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6) -#define _trans_cube_FLm static_cube( \ +#define TRANS_CUBE_FLm static_cube( \ 38, 36, 37, 39, 64, 66, 67, 65, 8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22) -#define _trans_cube_FLm_inverse static_cube( \ +#define TRANS_CUBE_FLm_INVERSE static_cube( \ 36, 39, 37, 38, 65, 66, 64, 67, 21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3) -#define _trans_cube_BUm static_cube( \ +#define TRANS_CUBE_BUm static_cube( \ 65, 67, 64, 66, 37, 39, 36, 38, 17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6) -#define _trans_cube_BUm_inverse static_cube( \ +#define TRANS_CUBE_BUm_INVERSE static_cube( \ 34, 32, 35, 33, 70, 68, 71, 69, 19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5) -#define _trans_cube_BRm static_cube( \ +#define TRANS_CUBE_BRm static_cube( \ 39, 37, 36, 38, 65, 67, 66, 64, 10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23) -#define _trans_cube_BRm_inverse static_cube( \ +#define TRANS_CUBE_BRm_INVERSE static_cube( \ 39, 36, 38, 37, 66, 65, 67, 64, 22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1) -#define _trans_cube_BDm static_cube( \ +#define TRANS_CUBE_BDm static_cube( \ 67, 65, 66, 64, 39, 37, 38, 36, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4) -#define _trans_cube_BDm_inverse static_cube( \ +#define TRANS_CUBE_BDm_INVERSE static_cube( \ 35, 33, 34, 32, 71, 69, 70, 68, 18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4) -#define _trans_cube_BLm static_cube( \ +#define TRANS_CUBE_BLm static_cube( \ 37, 39, 38, 36, 67, 65, 64, 66, 11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21) -#define _trans_cube_BLm_inverse static_cube( \ +#define TRANS_CUBE_BLm_INVERSE static_cube( \ 38, 37, 39, 36, 67, 64, 66, 65, 23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0) diff --git a/src/core/cube.h b/src/core/cube.h index df5161a..1bb8bd0 100644 --- a/src/core/cube.h +++ b/src/core/cube.h @@ -1,13 +1,13 @@ -_static cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]); -_static cube_t solvedcube(void); -_static bool isconsistent(cube_t); -_static bool issolvable(cube_t); -_static bool issolved(cube_t); -_static bool iserror(cube_t); -_static void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *); -_static cube_t getcube(int64_t, int64_t, int64_t, int64_t); - -_static cube_t +STATIC cube_t cubefromarray(uint8_t [static 8], uint8_t [static 12]); +STATIC cube_t solvedcube(void); +STATIC bool isconsistent(cube_t); +STATIC bool issolvable(cube_t); +STATIC bool issolved(cube_t); +STATIC bool iserror(cube_t); +STATIC void getcube_fix(int64_t *, int64_t *, int64_t *, int64_t *); +STATIC cube_t getcube(int64_t, int64_t, int64_t, int64_t); + +STATIC cube_t cubefromarray(uint8_t c[static 8], uint8_t e[static 12]) { return static_cube( @@ -16,13 +16,13 @@ cubefromarray(uint8_t c[static 8], uint8_t e[static 12]) e[8], e[9], e[10], e[11]); } -_static cube_t +STATIC cube_t solvedcube(void) { return solved; } -_static bool +STATIC bool isconsistent(cube_t cube) { uint8_t i, p, e, piece, corner[8], edge[12]; @@ -34,11 +34,11 @@ isconsistent(cube_t cube) found[i] = false; for (i = 0; i < 12; i++) { piece = edge[i]; - p = piece & _pbits; - e = piece & _eobit; + p = piece & PBITS; + e = piece & EOBIT; if (p >= 12) goto inconsistent_ep; - if (e != 0 && e != _eobit) + if (e != 0 && e != EOBIT) goto inconsistent_eo; found[p] = true; } @@ -50,11 +50,11 @@ isconsistent(cube_t cube) found[i] = false; for (i = 0; i < 8; i++) { piece = corner[i]; - p = piece & _pbits; - e = piece & _cobits; + p = piece & PBITS; + e = piece & COBITS; if (p >= 8) goto inconsistent_cp; - if (e != 0 && e != _ctwist_cw && e != _ctwist_ccw) + if (e != 0 && e != CTWIST_CW && e != CTWIST_CCW) goto inconsistent_co; found[p] = true; } @@ -78,7 +78,7 @@ inconsistent_co: return false; } -_static bool +STATIC bool issolvable(cube_t cube) { uint8_t i, eo, co, piece, edge[12], corner[8], ep[12], cp[8]; @@ -88,9 +88,9 @@ issolvable(cube_t cube) pieces(&cube, corner, edge); for (i = 0; i < 12; i++) - ep[i] = edge[i] & _pbits; + ep[i] = edge[i] & PBITS; for (i = 0; i < 8; i++) - cp[i] = corner[i] & _pbits; + cp[i] = corner[i] & PBITS; if (permsign(ep, 12) != permsign(cp, 8)) goto issolvable_parity; @@ -98,7 +98,7 @@ issolvable(cube_t cube) eo = 0; for (i = 0; i < 12; i++) { piece = edge[i]; - eo += (piece & _eobit) >> _eoshift; + eo += (piece & EOBIT) >> EOSHIFT; } if (eo % 2 != 0) goto issolvable_eo; @@ -106,7 +106,7 @@ issolvable(cube_t cube) co = 0; for (i = 0; i < 8; i++) { piece = corner[i]; - co += (piece & _cobits) >> _coshift; + co += (piece & COBITS) >> COSHIFT; } if (co % 3 != 0) goto issolvable_co; @@ -136,15 +136,15 @@ iserror(cube_t cube) return equal(cube, zero); } -_static void +STATIC void getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co) { uint8_t e[12], c[8], coarr[8]; - *ep = (*ep % _12f + _12f) % _12f; - *eo = (*eo % _2p11 + _2p11) % _2p11; - *cp = (*cp % _8f + _8f) % _8f; - *co = (*cp % _3p7 + _3p7) % _3p7; + *ep = (*ep % FACT_12 + FACT_12) % FACT_12; + *eo = (*eo % POW_2_11 + POW_2_11) % POW_2_11; + *cp = (*cp % FACT_8 + FACT_8) % FACT_8; + *co = (*cp % POW_3_7 + POW_3_7) % POW_3_7; indextoperm(*ep, 12, e); indextoperm(*cp, 8, c); @@ -158,24 +158,24 @@ getcube_fix(int64_t *ep, int64_t *eo, int64_t *cp, int64_t *co) } } -_static cube_t +STATIC cube_t getcube(int64_t ep, int64_t eo, int64_t cp, int64_t co) { uint8_t i, earr[12], carr[8], eoarr[12], coarr[8]; sumzerotodigits(eo, 12, 2, eoarr); - DBG_ASSERT(eoarr[0] != _error, zero, "Error making EO"); + DBG_ASSERT(eoarr[0] != UINT8_ERROR, zero, "Error making EO"); indextoperm(ep, 12, earr); - DBG_ASSERT(earr[0] != _error, zero, "Error making EP"); + DBG_ASSERT(earr[0] != UINT8_ERROR, zero, "Error making EP"); for (i = 0; i < 12; i++) - earr[i] |= eoarr[i] << _eoshift; + earr[i] |= eoarr[i] << EOSHIFT; sumzerotodigits(co, 8, 3, coarr); - DBG_ASSERT(coarr[0] != _error, zero, "Error making CO"); + DBG_ASSERT(coarr[0] != UINT8_ERROR, zero, "Error making CO"); indextoperm(cp, 8, carr); - DBG_ASSERT(carr[0] != _error, zero, "Error making CP"); + DBG_ASSERT(carr[0] != UINT8_ERROR, zero, "Error making CP"); for (i = 0; i < 8; i++) - carr[i] |= coarr[i] << _coshift; + carr[i] |= coarr[i] << COSHIFT; return cubefromarray(carr, earr); } diff --git a/src/core/io_cube.h b/src/core/io_cube.h index 956494d..cb0e4c7 100644 --- a/src/core/io_cube.h +++ b/src/core/io_cube.h @@ -1,23 +1,23 @@ -_static uint8_t readco(const char *); -_static uint8_t readcp(const char *); -_static uint8_t readeo(const char *); -_static uint8_t readep(const char *); -_static cube_t readcube_B32(const char *); -_static cube_t readcube_H48(const char *); -_static uint8_t readpiece_LST(const char **); -_static cube_t readcube_LST(const char *); - -_static int writepiece_LST(uint8_t, char *); -_static void writecube_B32(cube_t, char *); -_static void writecube_H48(cube_t, char *); -_static void writecube_LST(cube_t, char *); - -_static uint8_t b32toedge(char); -_static uint8_t b32tocorner(char); -_static char edgetob32(uint8_t); -_static char cornertob32(uint8_t); - -_static struct { +STATIC uint8_t readco(const char *); +STATIC uint8_t readcp(const char *); +STATIC uint8_t readeo(const char *); +STATIC uint8_t readep(const char *); +STATIC cube_t readcube_B32(const char *); +STATIC cube_t readcube_H48(const char *); +STATIC uint8_t readpiece_LST(const char **); +STATIC cube_t readcube_LST(const char *); + +STATIC int writepiece_LST(uint8_t, char *); +STATIC void writecube_B32(cube_t, char *); +STATIC void writecube_H48(cube_t, char *); +STATIC void writecube_LST(cube_t, char *); + +STATIC uint8_t b32toedge(char); +STATIC uint8_t b32tocorner(char); +STATIC char edgetob32(uint8_t); +STATIC char cornertob32(uint8_t); + +STATIC struct { const char *name; cube_t (*read)(const char *); void (*write)(cube_t, char *); @@ -72,21 +72,21 @@ writecube_error: buf[len+1] = '\0'; } -_static uint8_t +STATIC uint8_t readco(const char *str) { if (*str == '0') return 0; if (*str == '1') - return _ctwist_cw; + return CTWIST_CW; if (*str == '2') - return _ctwist_ccw; + return CTWIST_CCW; LOG("Error reading CO\n"); - return _error; + return UINT8_ERROR; } -_static uint8_t +STATIC uint8_t readcp(const char *str) { uint8_t c; @@ -97,22 +97,22 @@ readcp(const char *str) return c; LOG("Error reading CP\n"); - return _error; + return UINT8_ERROR; } -_static uint8_t +STATIC uint8_t readeo(const char *str) { if (*str == '0') return 0; if (*str == '1') - return _eflip; + return EFLIP; LOG("Error reading EO\n"); - return _error; + return UINT8_ERROR; } -_static uint8_t +STATIC uint8_t readep(const char *str) { uint8_t e; @@ -122,10 +122,10 @@ readep(const char *str) return e; LOG("Error reading EP\n"); - return _error; + return UINT8_ERROR; } -_static cube_t +STATIC cube_t readcube_B32(const char *buf) { int i; @@ -146,7 +146,7 @@ readcube_B32(const char *buf) return cubefromarray(c, e); } -_static cube_t +STATIC cube_t readcube_H48(const char *buf) { int i; @@ -158,10 +158,10 @@ readcube_H48(const char *buf) for (i = 0; i < 12; i++) { while (*b == ' ' || *b == '\t' || *b == '\n') b++; - if ((piece = readep(b)) == _error) + if ((piece = readep(b)) == UINT8_ERROR) return zero; b += 2; - if ((orient = readeo(b)) == _error) + if ((orient = readeo(b)) == UINT8_ERROR) return zero; b++; e[i] = piece | orient; @@ -169,10 +169,10 @@ readcube_H48(const char *buf) for (i = 0; i < 8; i++) { while (*b == ' ' || *b == '\t' || *b == '\n') b++; - if ((piece = readcp(b)) == _error) + if ((piece = readcp(b)) == UINT8_ERROR) return zero; b += 3; - if ((orient = readco(b)) == _error) + if ((orient = readco(b)) == UINT8_ERROR) return zero; b++; c[i] = piece | orient; @@ -181,7 +181,7 @@ readcube_H48(const char *buf) return cubefromarray(c, e); } -_static uint8_t +STATIC uint8_t readpiece_LST(const char **b) { uint8_t ret; @@ -195,10 +195,10 @@ readpiece_LST(const char **b) ret = ret * 10 + (**b) - '0'; } - return read ? ret : _error; + return read ? ret : UINT8_ERROR; } -_static cube_t +STATIC cube_t readcube_LST(const char *buf) { int i; @@ -213,7 +213,7 @@ readcube_LST(const char *buf) return cubefromarray(c, e); } -_static int +STATIC int writepiece_LST(uint8_t piece, char *buf) { char digits[3]; @@ -237,7 +237,7 @@ writepiece_LST(uint8_t piece, char *buf) return len+2; } -_static void +STATIC void writecube_B32(cube_t cube, char *buf) { int i; @@ -256,7 +256,7 @@ writecube_B32(cube_t cube, char *buf) buf[21] = '\0'; } -_static void +STATIC void writecube_H48(cube_t cube, char *buf) { uint8_t piece, perm, orient, corner[8], edge[12]; @@ -266,8 +266,8 @@ writecube_H48(cube_t cube, char *buf) for (i = 0; i < 12; i++) { piece = edge[i]; - perm = piece & _pbits; - orient = (piece & _eobit) >> _eoshift; + perm = piece & PBITS; + orient = (piece & EOBIT) >> EOSHIFT; buf[4*i ] = edgestr[perm][0]; buf[4*i + 1] = edgestr[perm][1]; buf[4*i + 2] = orient + '0'; @@ -275,8 +275,8 @@ writecube_H48(cube_t cube, char *buf) } for (i = 0; i < 8; i++) { piece = corner[i]; - perm = piece & _pbits; - orient = (piece & _cobits) >> _coshift; + perm = piece & PBITS; + orient = (piece & COBITS) >> COSHIFT; buf[48 + 5*i ] = cornerstr[perm][0]; buf[48 + 5*i + 1] = cornerstr[perm][1]; buf[48 + 5*i + 2] = cornerstr[perm][2]; @@ -287,7 +287,7 @@ writecube_H48(cube_t cube, char *buf) buf[48+39] = '\0'; } -_static void +STATIC void writecube_LST(cube_t cube, char *buf) { int i; @@ -310,7 +310,7 @@ writecube_LST(cube_t cube, char *buf) *(buf+ptr-2) = 0; } -_static uint8_t +STATIC uint8_t b32toedge(char c) { if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'f'))) @@ -319,7 +319,7 @@ b32toedge(char c) return c <= 'Z' ? (uint8_t)(c - 'A') : (uint8_t)(c - 'a') + 26; } -_static uint8_t +STATIC uint8_t b32tocorner(char c) { uint8_t val; @@ -331,13 +331,13 @@ b32tocorner(char c) { return (val & 7) | ((val & 24) << 2); } -_static char +STATIC char edgetob32(uint8_t edge) { return edge < 26 ? 'A' + (char)edge : 'a' + (char)(edge - 26); } -_static char +STATIC char cornertob32(uint8_t corner) { uint8_t val; diff --git a/src/core/io_moves.h b/src/core/io_moves.h index eb6290e..a49a38b 100644 --- a/src/core/io_moves.h +++ b/src/core/io_moves.h @@ -1,29 +1,29 @@ -_static uint8_t readmove(char); -_static uint8_t readmodifier(char); -_static int writemoves(uint8_t *, int, char *); +STATIC uint8_t readmove(char); +STATIC uint8_t readmodifier(char); +STATIC int writemoves(uint8_t *, int, char *); -_static uint8_t +STATIC uint8_t readmove(char c) { switch (c) { case 'U': - return _move_U; + return MOVE_U; case 'D': - return _move_D; + return MOVE_D; case 'R': - return _move_R; + return MOVE_R; case 'L': - return _move_L; + return MOVE_L; case 'F': - return _move_F; + return MOVE_F; case 'B': - return _move_B; + return MOVE_B; default: - return _error; + return UINT8_ERROR; } } -_static uint8_t +STATIC uint8_t readmodifier(char c) { switch (c) { @@ -38,7 +38,7 @@ readmodifier(char c) } } -_static int +STATIC int writemoves(uint8_t *m, int n, char *buf) { int i; diff --git a/src/core/io_trans.h b/src/core/io_trans.h index 7187b7a..d91e9a2 100644 --- a/src/core/io_trans.h +++ b/src/core/io_trans.h @@ -1,7 +1,7 @@ -_static uint8_t readtrans(const char *); -_static void writetrans(uint8_t, char *); +STATIC uint8_t readtrans(const char *); +STATIC void writetrans(uint8_t, char *); -_static uint8_t +STATIC uint8_t readtrans(const char *buf) { uint8_t t; @@ -11,10 +11,10 @@ readtrans(const char *buf) return t; LOG("readtrans error\n"); - return _error; + return UINT8_ERROR; } -_static void +STATIC void writetrans(uint8_t t, char *buf) { if (t >= 48) diff --git a/src/core/moves.h b/src/core/moves.h index 71ef470..45cd804 100644 --- a/src/core/moves.h +++ b/src/core/moves.h @@ -1,22 +1,22 @@ -#define _move(M, c) compose(c, _move_cube_ ## M) -#define _premove(M, c) compose(_move_cube_ ## M, c) +#define _move(M, c) compose(c, MOVE_CUBE_ ## M) +#define _premove(M, c) compose(MOVE_CUBE_ ## M, c) -_static_inline bool allowednextmove(uint8_t *, uint8_t); +STATIC_INLINE bool allowednextmove(uint8_t *, uint8_t); -_static_inline uint8_t inverse_trans(uint8_t); -_static_inline uint8_t movebase(uint8_t); -_static_inline uint8_t moveaxis(uint8_t); -_static_inline uint32_t disable_moves(uint32_t, uint8_t); +STATIC_INLINE uint8_t inverse_trans(uint8_t); +STATIC_INLINE uint8_t movebase(uint8_t); +STATIC_INLINE uint8_t moveaxis(uint8_t); +STATIC_INLINE uint32_t disable_moves(uint32_t, uint8_t); -_static cube_t move(cube_t, uint8_t); -_static cube_t premove(cube_t, uint8_t); -_static uint8_t inverse_move(uint8_t); -_static void invertmoves(uint8_t *, uint8_t, uint8_t *); +STATIC cube_t move(cube_t, uint8_t); +STATIC cube_t premove(cube_t, uint8_t); +STATIC uint8_t inverse_move(uint8_t); +STATIC void invertmoves(uint8_t *, uint8_t, uint8_t *); -_static cube_t applymoves(cube_t, const char *); -_static cube_t frommoves(const char *); +STATIC cube_t applymoves(cube_t, const char *); +STATIC cube_t frommoves(const char *); -_static bool +STATIC bool allowednextmove(uint8_t *moves, uint8_t n) { uint8_t base[3], axis[3]; @@ -41,69 +41,69 @@ allowednextmove(uint8_t *moves, uint8_t n) return axis[1] != axis[2] || base[0] != base[2]; } -_static_inline uint32_t +STATIC_INLINE uint32_t disable_moves(uint32_t current_result, uint8_t base_index) { return current_result & ~(7 << base_index); } -_static_inline uint8_t +STATIC_INLINE uint8_t inverse_trans(uint8_t t) { return inverse_trans_table[t]; } -_static_inline uint8_t +STATIC_INLINE uint8_t movebase(uint8_t move) { return move / 3; } -_static_inline uint8_t +STATIC_INLINE uint8_t moveaxis(uint8_t move) { return move / 6; } -_static cube_t +STATIC cube_t move(cube_t c, uint8_t m) { switch (m) { - case _move_U: + case MOVE_U: return _move(U, c); - case _move_U2: + case MOVE_U2: return _move(U2, c); - case _move_U3: + case MOVE_U3: return _move(U3, c); - case _move_D: + case MOVE_D: return _move(D, c); - case _move_D2: + case MOVE_D2: return _move(D2, c); - case _move_D3: + case MOVE_D3: return _move(D3, c); - case _move_R: + case MOVE_R: return _move(R, c); - case _move_R2: + case MOVE_R2: return _move(R2, c); - case _move_R3: + case MOVE_R3: return _move(R3, c); - case _move_L: + case MOVE_L: return _move(L, c); - case _move_L2: + case MOVE_L2: return _move(L2, c); - case _move_L3: + case MOVE_L3: return _move(L3, c); - case _move_F: + case MOVE_F: return _move(F, c); - case _move_F2: + case MOVE_F2: return _move(F2, c); - case _move_F3: + case MOVE_F3: return _move(F3, c); - case _move_B: + case MOVE_B: return _move(B, c); - case _move_B2: + case MOVE_B2: return _move(B2, c); - case _move_B3: + case MOVE_B3: return _move(B3, c); default: LOG("move error, unknown move\n"); @@ -111,45 +111,45 @@ move(cube_t c, uint8_t m) } } -_static cube_t +STATIC cube_t premove(cube_t c, uint8_t m) { switch (m) { - case _move_U: + case MOVE_U: return _premove(U3, c); - case _move_U2: + case MOVE_U2: return _premove(U2, c); - case _move_U3: + case MOVE_U3: return _premove(U, c); - case _move_D: + case MOVE_D: return _premove(D3, c); - case _move_D2: + case MOVE_D2: return _premove(D2, c); - case _move_D3: + case MOVE_D3: return _premove(D, c); - case _move_R: + case MOVE_R: return _premove(R3, c); - case _move_R2: + case MOVE_R2: return _premove(R2, c); - case _move_R3: + case MOVE_R3: return _premove(R, c); - case _move_L: + case MOVE_L: return _premove(L3, c); - case _move_L2: + case MOVE_L2: return _premove(L2, c); - case _move_L3: + case MOVE_L3: return _premove(L, c); - case _move_F: + case MOVE_F: return _premove(F3, c); - case _move_F2: + case MOVE_F2: return _premove(F2, c); - case _move_F3: + case MOVE_F3: return _premove(F, c); - case _move_B: + case MOVE_B: return _premove(B3, c); - case _move_B2: + case MOVE_B2: return _premove(B2, c); - case _move_B3: + case MOVE_B3: return _premove(B, c); default: LOG("move error, unknown move\n"); @@ -157,13 +157,13 @@ premove(cube_t c, uint8_t m) } } -_static uint8_t +STATIC uint8_t inverse_move(uint8_t m) { return m - 2 * (m % 3) + 2; } -_static void +STATIC void invertmoves(uint8_t *moves, uint8_t nmoves, uint8_t *ret) { uint8_t i; @@ -172,7 +172,7 @@ invertmoves(uint8_t *moves, uint8_t nmoves, uint8_t *ret) ret[i] = inverse_move(moves[nmoves - i - 1]); } -_static cube_t +STATIC cube_t applymoves(cube_t cube, const char *buf) { uint8_t r, m; @@ -186,7 +186,7 @@ applymoves(cube_t cube, const char *buf) b++; if (*b == '\0') goto applymoves_finish; - if ((r = readmove(*b)) == _error) + if ((r = readmove(*b)) == UINT8_ERROR) goto applymoves_error; if ((m = readmodifier(*(b+1))) != 0) b++; @@ -201,7 +201,7 @@ applymoves_error: return zero; } -_static cube_t +STATIC cube_t frommoves(const char *buf) { return applymoves(solved, buf); diff --git a/src/core/transform.h b/src/core/transform.h index fa7ce59..a792c25 100644 --- a/src/core/transform.h +++ b/src/core/transform.h @@ -1,132 +1,111 @@ -/* TODO: remove these macros, if the below works */ - -#define _trans_edges_rotation(T, c) \ - compose_edges(compose_edges(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_edges_mirrored(T, c) _trans_edges_rotation(T, c) - -#define _trans_corners_rotation(T, c) \ - compose_corners(compose_corners(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_corners_mirrored(T, c) \ - invertco(compose_corners( \ - compose_corners(_trans_cube_ ## T, c), _trans_cube_ ## T ## _inverse)) - -#define _trans_rotation(T, c) \ - compose(compose(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_mirrored(T, c) \ - invertco(compose(compose(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse)) - -_static cube_t transform_edges(cube_t, uint8_t); -_static cube_t transform_corners(cube_t, uint8_t); -_static cube_t transform(cube_t, uint8_t); -_static cube_t applytrans(cube_t, const char *); +STATIC cube_t transform_edges(cube_t, uint8_t); +STATIC cube_t transform_corners(cube_t, uint8_t); +STATIC cube_t transform(cube_t, uint8_t); +STATIC cube_t applytrans(cube_t, const char *); static cube_t cube_trans_table[48] = { - [_trans_UFr] = _trans_cube_UFr, - [_trans_UFm] = _trans_cube_UFm, - [_trans_ULr] = _trans_cube_URr, - [_trans_ULm] = _trans_cube_ULm, - [_trans_UBr] = _trans_cube_UBr, - [_trans_UBm] = _trans_cube_UBm, - [_trans_URr] = _trans_cube_ULr, - [_trans_URm] = _trans_cube_URm, - [_trans_DFr] = _trans_cube_DFr, - [_trans_DFm] = _trans_cube_DFm, - [_trans_DLr] = _trans_cube_DLr, - [_trans_DLm] = _trans_cube_DRm, - [_trans_DBr] = _trans_cube_DBr, - [_trans_DBm] = _trans_cube_DBm, - [_trans_DRr] = _trans_cube_DRr, - [_trans_DRm] = _trans_cube_DLm, - [_trans_RUr] = _trans_cube_FRr, - [_trans_RUm] = _trans_cube_FLm, - [_trans_RFr] = _trans_cube_LFr, - [_trans_RFm] = _trans_cube_RFm, - [_trans_RDr] = _trans_cube_BLr, - [_trans_RDm] = _trans_cube_BRm, - [_trans_RBr] = _trans_cube_RBr, - [_trans_RBm] = _trans_cube_LBm, - [_trans_LUr] = _trans_cube_FLr, - [_trans_LUm] = _trans_cube_FRm, - [_trans_LFr] = _trans_cube_RFr, - [_trans_LFm] = _trans_cube_LFm, - [_trans_LDr] = _trans_cube_BRr, - [_trans_LDm] = _trans_cube_BLm, - [_trans_LBr] = _trans_cube_LBr, - [_trans_LBm] = _trans_cube_RBm, - [_trans_FUr] = _trans_cube_FUr, - [_trans_FUm] = _trans_cube_FUm, - [_trans_FRr] = _trans_cube_RUr, - [_trans_FRm] = _trans_cube_LUm, - [_trans_FDr] = _trans_cube_BUr, - [_trans_FDm] = _trans_cube_BUm, - [_trans_FLr] = _trans_cube_LUr, - [_trans_FLm] = _trans_cube_RUm, - [_trans_BUr] = _trans_cube_FDr, - [_trans_BUm] = _trans_cube_FDm, - [_trans_BRr] = _trans_cube_LDr, - [_trans_BRm] = _trans_cube_RDm, - [_trans_BDr] = _trans_cube_BDr, - [_trans_BDm] = _trans_cube_BDm, - [_trans_BLr] = _trans_cube_RDr, - [_trans_BLm] = _trans_cube_LDm, + [TRANS_UFr] = TRANS_CUBE_UFr, + [TRANS_UFm] = TRANS_CUBE_UFm, + [TRANS_ULr] = TRANS_CUBE_URr, + [TRANS_ULm] = TRANS_CUBE_ULm, + [TRANS_UBr] = TRANS_CUBE_UBr, + [TRANS_UBm] = TRANS_CUBE_UBm, + [TRANS_URr] = TRANS_CUBE_ULr, + [TRANS_URm] = TRANS_CUBE_URm, + [TRANS_DFr] = TRANS_CUBE_DFr, + [TRANS_DFm] = TRANS_CUBE_DFm, + [TRANS_DLr] = TRANS_CUBE_DLr, + [TRANS_DLm] = TRANS_CUBE_DRm, + [TRANS_DBr] = TRANS_CUBE_DBr, + [TRANS_DBm] = TRANS_CUBE_DBm, + [TRANS_DRr] = TRANS_CUBE_DRr, + [TRANS_DRm] = TRANS_CUBE_DLm, + [TRANS_RUr] = TRANS_CUBE_FRr, + [TRANS_RUm] = TRANS_CUBE_FLm, + [TRANS_RFr] = TRANS_CUBE_LFr, + [TRANS_RFm] = TRANS_CUBE_RFm, + [TRANS_RDr] = TRANS_CUBE_BLr, + [TRANS_RDm] = TRANS_CUBE_BRm, + [TRANS_RBr] = TRANS_CUBE_RBr, + [TRANS_RBm] = TRANS_CUBE_LBm, + [TRANS_LUr] = TRANS_CUBE_FLr, + [TRANS_LUm] = TRANS_CUBE_FRm, + [TRANS_LFr] = TRANS_CUBE_RFr, + [TRANS_LFm] = TRANS_CUBE_LFm, + [TRANS_LDr] = TRANS_CUBE_BRr, + [TRANS_LDm] = TRANS_CUBE_BLm, + [TRANS_LBr] = TRANS_CUBE_LBr, + [TRANS_LBm] = TRANS_CUBE_RBm, + [TRANS_FUr] = TRANS_CUBE_FUr, + [TRANS_FUm] = TRANS_CUBE_FUm, + [TRANS_FRr] = TRANS_CUBE_RUr, + [TRANS_FRm] = TRANS_CUBE_LUm, + [TRANS_FDr] = TRANS_CUBE_BUr, + [TRANS_FDm] = TRANS_CUBE_BUm, + [TRANS_FLr] = TRANS_CUBE_LUr, + [TRANS_FLm] = TRANS_CUBE_RUm, + [TRANS_BUr] = TRANS_CUBE_FDr, + [TRANS_BUm] = TRANS_CUBE_FDm, + [TRANS_BRr] = TRANS_CUBE_LDr, + [TRANS_BRm] = TRANS_CUBE_RDm, + [TRANS_BDr] = TRANS_CUBE_BDr, + [TRANS_BDm] = TRANS_CUBE_BDm, + [TRANS_BLr] = TRANS_CUBE_RDr, + [TRANS_BLm] = TRANS_CUBE_LDm, }; static cube_t cube_trans_table_inverse[48] = { - [_trans_UFr] = _trans_cube_UFr_inverse, - [_trans_UFm] = _trans_cube_UFm_inverse, - [_trans_ULr] = _trans_cube_URr_inverse, - [_trans_ULm] = _trans_cube_ULm_inverse, - [_trans_UBr] = _trans_cube_UBr_inverse, - [_trans_UBm] = _trans_cube_UBm_inverse, - [_trans_URr] = _trans_cube_ULr_inverse, - [_trans_URm] = _trans_cube_URm_inverse, - [_trans_DFr] = _trans_cube_DFr_inverse, - [_trans_DFm] = _trans_cube_DFm_inverse, - [_trans_DLr] = _trans_cube_DLr_inverse, - [_trans_DLm] = _trans_cube_DRm_inverse, - [_trans_DBr] = _trans_cube_DBr_inverse, - [_trans_DBm] = _trans_cube_DBm_inverse, - [_trans_DRr] = _trans_cube_DRr_inverse, - [_trans_DRm] = _trans_cube_DLm_inverse, - [_trans_RUr] = _trans_cube_FRr_inverse, - [_trans_RUm] = _trans_cube_FLm_inverse, - [_trans_RFr] = _trans_cube_LFr_inverse, - [_trans_RFm] = _trans_cube_RFm_inverse, - [_trans_RDr] = _trans_cube_BLr_inverse, - [_trans_RDm] = _trans_cube_BRm_inverse, - [_trans_RBr] = _trans_cube_RBr_inverse, - [_trans_RBm] = _trans_cube_LBm_inverse, - [_trans_LUr] = _trans_cube_FLr_inverse, - [_trans_LUm] = _trans_cube_FRm_inverse, - [_trans_LFr] = _trans_cube_RFr_inverse, - [_trans_LFm] = _trans_cube_LFm_inverse, - [_trans_LDr] = _trans_cube_BRr_inverse, - [_trans_LDm] = _trans_cube_BLm_inverse, - [_trans_LBr] = _trans_cube_LBr_inverse, - [_trans_LBm] = _trans_cube_RBm_inverse, - [_trans_FUr] = _trans_cube_FUr_inverse, - [_trans_FUm] = _trans_cube_FUm_inverse, - [_trans_FRr] = _trans_cube_RUr_inverse, - [_trans_FRm] = _trans_cube_LUm_inverse, - [_trans_FDr] = _trans_cube_BUr_inverse, - [_trans_FDm] = _trans_cube_BUm_inverse, - [_trans_FLr] = _trans_cube_LUr_inverse, - [_trans_FLm] = _trans_cube_RUm_inverse, - [_trans_BUr] = _trans_cube_FDr_inverse, - [_trans_BUm] = _trans_cube_FDm_inverse, - [_trans_BRr] = _trans_cube_LDr_inverse, - [_trans_BRm] = _trans_cube_RDm_inverse, - [_trans_BDr] = _trans_cube_BDr_inverse, - [_trans_BDm] = _trans_cube_BDm_inverse, - [_trans_BLr] = _trans_cube_RDr_inverse, - [_trans_BLm] = _trans_cube_LDm_inverse, + [TRANS_UFr] = TRANS_CUBE_UFr_inverse, + [TRANS_UFm] = TRANS_CUBE_UFm_inverse, + [TRANS_ULr] = TRANS_CUBE_URr_inverse, + [TRANS_ULm] = TRANS_CUBE_ULm_inverse, + [TRANS_UBr] = TRANS_CUBE_UBr_inverse, + [TRANS_UBm] = TRANS_CUBE_UBm_inverse, + [TRANS_URr] = TRANS_CUBE_ULr_inverse, + [TRANS_URm] = TRANS_CUBE_URm_inverse, + [TRANS_DFr] = TRANS_CUBE_DFr_inverse, + [TRANS_DFm] = TRANS_CUBE_DFm_inverse, + [TRANS_DLr] = TRANS_CUBE_DLr_inverse, + [TRANS_DLm] = TRANS_CUBE_DRm_inverse, + [TRANS_DBr] = TRANS_CUBE_DBr_inverse, + [TRANS_DBm] = TRANS_CUBE_DBm_inverse, + [TRANS_DRr] = TRANS_CUBE_DRr_inverse, + [TRANS_DRm] = TRANS_CUBE_DLm_inverse, + [TRANS_RUr] = TRANS_CUBE_FRr_inverse, + [TRANS_RUm] = TRANS_CUBE_FLm_inverse, + [TRANS_RFr] = TRANS_CUBE_LFr_inverse, + [TRANS_RFm] = TRANS_CUBE_RFm_inverse, + [TRANS_RDr] = TRANS_CUBE_BLr_inverse, + [TRANS_RDm] = TRANS_CUBE_BRm_inverse, + [TRANS_RBr] = TRANS_CUBE_RBr_inverse, + [TRANS_RBm] = TRANS_CUBE_LBm_inverse, + [TRANS_LUr] = TRANS_CUBE_FLr_inverse, + [TRANS_LUm] = TRANS_CUBE_FRm_inverse, + [TRANS_LFr] = TRANS_CUBE_RFr_inverse, + [TRANS_LFm] = TRANS_CUBE_LFm_inverse, + [TRANS_LDr] = TRANS_CUBE_BRr_inverse, + [TRANS_LDm] = TRANS_CUBE_BLm_inverse, + [TRANS_LBr] = TRANS_CUBE_LBr_inverse, + [TRANS_LBm] = TRANS_CUBE_RBm_inverse, + [TRANS_FUr] = TRANS_CUBE_FUr_inverse, + [TRANS_FUm] = TRANS_CUBE_FUm_inverse, + [TRANS_FRr] = TRANS_CUBE_RUr_inverse, + [TRANS_FRm] = TRANS_CUBE_LUm_inverse, + [TRANS_FDr] = TRANS_CUBE_BUr_inverse, + [TRANS_FDm] = TRANS_CUBE_BUm_inverse, + [TRANS_FLr] = TRANS_CUBE_LUr_inverse, + [TRANS_FLm] = TRANS_CUBE_RUm_inverse, + [TRANS_BUr] = TRANS_CUBE_FDr_inverse, + [TRANS_BUm] = TRANS_CUBE_FDm_inverse, + [TRANS_BRr] = TRANS_CUBE_LDr_inverse, + [TRANS_BRm] = TRANS_CUBE_RDm_inverse, + [TRANS_BDr] = TRANS_CUBE_BDr_inverse, + [TRANS_BDm] = TRANS_CUBE_BDm_inverse, + [TRANS_BLr] = TRANS_CUBE_RDr_inverse, + [TRANS_BLm] = TRANS_CUBE_LDm_inverse, }; -_static cube_t +STATIC cube_t transform_edges(cube_t c, uint8_t t) { cube_t ret, trans_cube, trans_inv; @@ -144,7 +123,7 @@ transform_edges(cube_t c, uint8_t t) return ret; } -_static cube_t +STATIC cube_t transform_corners(cube_t c, uint8_t t) { cube_t ret, trans_cube, trans_inv; @@ -162,7 +141,7 @@ transform_corners(cube_t c, uint8_t t) return t < 24 ? ret : invertco(ret); } -_static cube_t +STATIC cube_t transform(cube_t c, uint8_t t) { cube_t ret, trans_cube, trans_inv; @@ -180,7 +159,7 @@ transform(cube_t c, uint8_t t) return t < 24 ? ret : invertco(ret); } -_static cube_t +STATIC cube_t applytrans(cube_t cube, const char *buf) { uint8_t t; diff --git a/src/core/transform_with_switch.h b/src/core/transform_with_switch.h index 429e656..3ffd9af 100644 --- a/src/core/transform_with_switch.h +++ b/src/core/transform_with_switch.h @@ -1,346 +1,346 @@ -#define _trans_edges_rotation(T, c) \ - compose_edges(compose_edges(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_edges_mirrored(T, c) _trans_edges_rotation(T, c) +#define TRANS_EDGES_ROTATION(T, c) \ + compose_edges(compose_edges(TRANS_CUBE_ ## T, c), \ + TRANS_CUBE_ ## T ## _INVERSE) +#define TRANS_EDGES_MIRRORED(T, c) TRANS_EDGES_ROTATION(T, c) -#define _trans_corners_rotation(T, c) \ - compose_corners(compose_corners(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_corners_mirrored(T, c) \ +#define TRANS_CORNERS_ROTATION(T, c) \ + compose_corners(compose_corners(TRANS_CUBE_ ## T, c), \ + TRANS_CUBE_ ## T ## _INVERSE) +#define TRANS_CORNERS_MIRRORED(T, c) \ invertco(compose_corners( \ - compose_corners(_trans_cube_ ## T, c), _trans_cube_ ## T ## _inverse)) + compose_corners(TRANS_CUBE_ ## T, c), TRANS_CUBE_ ## T ## _INVERSE)) -#define _trans_rotation(T, c) \ - compose(compose(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse) -#define _trans_mirrored(T, c) \ - invertco(compose(compose(_trans_cube_ ## T, c), \ - _trans_cube_ ## T ## _inverse)) +#define TRANS_ROTATION(T, c) \ + compose(compose(TRANS_CUBE_ ## T, c), \ + TRANS_CUBE_ ## T ## _INVERSE) +#define TRANS_MIRRORED(T, c) \ + invertco(compose(compose(TRANS_CUBE_ ## T, c), \ + TRANS_CUBE_ ## T ## _INVERSE)) -_static cube_t transform_edges(cube_t, uint8_t); -_static cube_t transform_corners(cube_t, uint8_t); -_static cube_t transform(cube_t, uint8_t); -_static cube_t applytrans(cube_t, const char *); +STATIC cube_t transform_edges(cube_t, uint8_t); +STATIC cube_t transform_corners(cube_t, uint8_t); +STATIC cube_t transform(cube_t, uint8_t); +STATIC cube_t applytrans(cube_t, const char *); -_static cube_t +STATIC cube_t transform_edges(cube_t c, uint8_t t) { switch (t) { - case _trans_UFr: + case TRANS_UFr: return c; - case _trans_ULr: - return _trans_edges_rotation(ULr, c); - case _trans_UBr: - return _trans_edges_rotation(UBr, c); - case _trans_URr: - return _trans_edges_rotation(URr, c); - case _trans_DFr: - return _trans_edges_rotation(DFr, c); - case _trans_DLr: - return _trans_edges_rotation(DLr, c); - case _trans_DBr: - return _trans_edges_rotation(DBr, c); - case _trans_DRr: - return _trans_edges_rotation(DRr, c); - case _trans_RUr: - return _trans_edges_rotation(RUr, c); - case _trans_RFr: - return _trans_edges_rotation(RFr, c); - case _trans_RDr: - return _trans_edges_rotation(RDr, c); - case _trans_RBr: - return _trans_edges_rotation(RBr, c); - case _trans_LUr: - return _trans_edges_rotation(LUr, c); - case _trans_LFr: - return _trans_edges_rotation(LFr, c); - case _trans_LDr: - return _trans_edges_rotation(LDr, c); - case _trans_LBr: - return _trans_edges_rotation(LBr, c); - case _trans_FUr: - return _trans_edges_rotation(FUr, c); - case _trans_FRr: - return _trans_edges_rotation(FRr, c); - case _trans_FDr: - return _trans_edges_rotation(FDr, c); - case _trans_FLr: - return _trans_edges_rotation(FLr, c); - case _trans_BUr: - return _trans_edges_rotation(BUr, c); - case _trans_BRr: - return _trans_edges_rotation(BRr, c); - case _trans_BDr: - return _trans_edges_rotation(BDr, c); - case _trans_BLr: - return _trans_edges_rotation(BLr, c); - case _trans_UFm: - return _trans_edges_mirrored(UFm, c); - case _trans_ULm: - return _trans_edges_mirrored(ULm, c); - case _trans_UBm: - return _trans_edges_mirrored(UBm, c); - case _trans_URm: - return _trans_edges_mirrored(URm, c); - case _trans_DFm: - return _trans_edges_mirrored(DFm, c); - case _trans_DLm: - return _trans_edges_mirrored(DLm, c); - case _trans_DBm: - return _trans_edges_mirrored(DBm, c); - case _trans_DRm: - return _trans_edges_mirrored(DRm, c); - case _trans_RUm: - return _trans_edges_mirrored(RUm, c); - case _trans_RFm: - return _trans_edges_mirrored(RFm, c); - case _trans_RDm: - return _trans_edges_mirrored(RDm, c); - case _trans_RBm: - return _trans_edges_mirrored(RBm, c); - case _trans_LUm: - return _trans_edges_mirrored(LUm, c); - case _trans_LFm: - return _trans_edges_mirrored(LFm, c); - case _trans_LDm: - return _trans_edges_mirrored(LDm, c); - case _trans_LBm: - return _trans_edges_mirrored(LBm, c); - case _trans_FUm: - return _trans_edges_mirrored(FUm, c); - case _trans_FRm: - return _trans_edges_mirrored(FRm, c); - case _trans_FDm: - return _trans_edges_mirrored(FDm, c); - case _trans_FLm: - return _trans_edges_mirrored(FLm, c); - case _trans_BUm: - return _trans_edges_mirrored(BUm, c); - case _trans_BRm: - return _trans_edges_mirrored(BRm, c); - case _trans_BDm: - return _trans_edges_mirrored(BDm, c); - case _trans_BLm: - return _trans_edges_mirrored(BLm, c); + case TRANS_ULr: + return TRANS_EDGES_ROTATION(ULr, c); + case TRANS_UBr: + return TRANS_EDGES_ROTATION(UBr, c); + case TRANS_URr: + return TRANS_EDGES_ROTATION(URr, c); + case TRANS_DFr: + return TRANS_EDGES_ROTATION(DFr, c); + case TRANS_DLr: + return TRANS_EDGES_ROTATION(DLr, c); + case TRANS_DBr: + return TRANS_EDGES_ROTATION(DBr, c); + case TRANS_DRr: + return TRANS_EDGES_ROTATION(DRr, c); + case TRANS_RUr: + return TRANS_EDGES_ROTATION(RUr, c); + case TRANS_RFr: + return TRANS_EDGES_ROTATION(RFr, c); + case TRANS_RDr: + return TRANS_EDGES_ROTATION(RDr, c); + case TRANS_RBr: + return TRANS_EDGES_ROTATION(RBr, c); + case TRANS_LUr: + return TRANS_EDGES_ROTATION(LUr, c); + case TRANS_LFr: + return TRANS_EDGES_ROTATION(LFr, c); + case TRANS_LDr: + return TRANS_EDGES_ROTATION(LDr, c); + case TRANS_LBr: + return TRANS_EDGES_ROTATION(LBr, c); + case TRANS_FUr: + return TRANS_EDGES_ROTATION(FUr, c); + case TRANS_FRr: + return TRANS_EDGES_ROTATION(FRr, c); + case TRANS_FDr: + return TRANS_EDGES_ROTATION(FDr, c); + case TRANS_FLr: + return TRANS_EDGES_ROTATION(FLr, c); + case TRANS_BUr: + return TRANS_EDGES_ROTATION(BUr, c); + case TRANS_BRr: + return TRANS_EDGES_ROTATION(BRr, c); + case TRANS_BDr: + return TRANS_EDGES_ROTATION(BDr, c); + case TRANS_BLr: + return TRANS_EDGES_ROTATION(BLr, c); + case TRANS_UFm: + return TRANS_EDGES_MIRRORED(UFm, c); + case TRANS_ULm: + return TRANS_EDGES_MIRRORED(ULm, c); + case TRANS_UBm: + return TRANS_EDGES_MIRRORED(UBm, c); + case TRANS_URm: + return TRANS_EDGES_MIRRORED(URm, c); + case TRANS_DFm: + return TRANS_EDGES_MIRRORED(DFm, c); + case TRANS_DLm: + return TRANS_EDGES_MIRRORED(DLm, c); + case TRANS_DBm: + return TRANS_EDGES_MIRRORED(DBm, c); + case TRANS_DRm: + return TRANS_EDGES_MIRRORED(DRm, c); + case TRANS_RUm: + return TRANS_EDGES_MIRRORED(RUm, c); + case TRANS_RFm: + return TRANS_EDGES_MIRRORED(RFm, c); + case TRANS_RDm: + return TRANS_EDGES_MIRRORED(RDm, c); + case TRANS_RBm: + return TRANS_EDGES_MIRRORED(RBm, c); + case TRANS_LUm: + return TRANS_EDGES_MIRRORED(LUm, c); + case TRANS_LFm: + return TRANS_EDGES_MIRRORED(LFm, c); + case TRANS_LDm: + return TRANS_EDGES_MIRRORED(LDm, c); + case TRANS_LBm: + return TRANS_EDGES_MIRRORED(LBm, c); + case TRANS_FUm: + return TRANS_EDGES_MIRRORED(FUm, c); + case TRANS_FRm: + return TRANS_EDGES_MIRRORED(FRm, c); + case TRANS_FDm: + return TRANS_EDGES_MIRRORED(FDm, c); + case TRANS_FLm: + return TRANS_EDGES_MIRRORED(FLm, c); + case TRANS_BUm: + return TRANS_EDGES_MIRRORED(BUm, c); + case TRANS_BRm: + return TRANS_EDGES_MIRRORED(BRm, c); + case TRANS_BDm: + return TRANS_EDGES_MIRRORED(BDm, c); + case TRANS_BLm: + return TRANS_EDGES_MIRRORED(BLm, c); default: LOG("transform error, unknown transformation %" PRIu8 "\n", t); return zero; } } -_static cube_t +STATIC cube_t transform_corners(cube_t c, uint8_t t) { switch (t) { - case _trans_UFr: + case TRANS_UFr: return c; - case _trans_ULr: - return _trans_corners_rotation(ULr, c); - case _trans_UBr: - return _trans_corners_rotation(UBr, c); - case _trans_URr: - return _trans_corners_rotation(URr, c); - case _trans_DFr: - return _trans_corners_rotation(DFr, c); - case _trans_DLr: - return _trans_corners_rotation(DLr, c); - case _trans_DBr: - return _trans_corners_rotation(DBr, c); - case _trans_DRr: - return _trans_corners_rotation(DRr, c); - case _trans_RUr: - return _trans_corners_rotation(RUr, c); - case _trans_RFr: - return _trans_corners_rotation(RFr, c); - case _trans_RDr: - return _trans_corners_rotation(RDr, c); - case _trans_RBr: - return _trans_corners_rotation(RBr, c); - case _trans_LUr: - return _trans_corners_rotation(LUr, c); - case _trans_LFr: - return _trans_corners_rotation(LFr, c); - case _trans_LDr: - return _trans_corners_rotation(LDr, c); - case _trans_LBr: - return _trans_corners_rotation(LBr, c); - case _trans_FUr: - return _trans_corners_rotation(FUr, c); - case _trans_FRr: - return _trans_corners_rotation(FRr, c); - case _trans_FDr: - return _trans_corners_rotation(FDr, c); - case _trans_FLr: - return _trans_corners_rotation(FLr, c); - case _trans_BUr: - return _trans_corners_rotation(BUr, c); - case _trans_BRr: - return _trans_corners_rotation(BRr, c); - case _trans_BDr: - return _trans_corners_rotation(BDr, c); - case _trans_BLr: - return _trans_corners_rotation(BLr, c); - case _trans_UFm: - return _trans_corners_mirrored(UFm, c); - case _trans_ULm: - return _trans_corners_mirrored(ULm, c); - case _trans_UBm: - return _trans_corners_mirrored(UBm, c); - case _trans_URm: - return _trans_corners_mirrored(URm, c); - case _trans_DFm: - return _trans_corners_mirrored(DFm, c); - case _trans_DLm: - return _trans_corners_mirrored(DLm, c); - case _trans_DBm: - return _trans_corners_mirrored(DBm, c); - case _trans_DRm: - return _trans_corners_mirrored(DRm, c); - case _trans_RUm: - return _trans_corners_mirrored(RUm, c); - case _trans_RFm: - return _trans_corners_mirrored(RFm, c); - case _trans_RDm: - return _trans_corners_mirrored(RDm, c); - case _trans_RBm: - return _trans_corners_mirrored(RBm, c); - case _trans_LUm: - return _trans_corners_mirrored(LUm, c); - case _trans_LFm: - return _trans_corners_mirrored(LFm, c); - case _trans_LDm: - return _trans_corners_mirrored(LDm, c); - case _trans_LBm: - return _trans_corners_mirrored(LBm, c); - case _trans_FUm: - return _trans_corners_mirrored(FUm, c); - case _trans_FRm: - return _trans_corners_mirrored(FRm, c); - case _trans_FDm: - return _trans_corners_mirrored(FDm, c); - case _trans_FLm: - return _trans_corners_mirrored(FLm, c); - case _trans_BUm: - return _trans_corners_mirrored(BUm, c); - case _trans_BRm: - return _trans_corners_mirrored(BRm, c); - case _trans_BDm: - return _trans_corners_mirrored(BDm, c); - case _trans_BLm: - return _trans_corners_mirrored(BLm, c); + case TRANS_ULr: + return TRANS_CORNERS_ROTATION(ULr, c); + case TRANS_UBr: + return TRANS_CORNERS_ROTATION(UBr, c); + case TRANS_URr: + return TRANS_CORNERS_ROTATION(URr, c); + case TRANS_DFr: + return TRANS_CORNERS_ROTATION(DFr, c); + case TRANS_DLr: + return TRANS_CORNERS_ROTATION(DLr, c); + case TRANS_DBr: + return TRANS_CORNERS_ROTATION(DBr, c); + case TRANS_DRr: + return TRANS_CORNERS_ROTATION(DRr, c); + case TRANS_RUr: + return TRANS_CORNERS_ROTATION(RUr, c); + case TRANS_RFr: + return TRANS_CORNERS_ROTATION(RFr, c); + case TRANS_RDr: + return TRANS_CORNERS_ROTATION(RDr, c); + case TRANS_RBr: + return TRANS_CORNERS_ROTATION(RBr, c); + case TRANS_LUr: + return TRANS_CORNERS_ROTATION(LUr, c); + case TRANS_LFr: + return TRANS_CORNERS_ROTATION(LFr, c); + case TRANS_LDr: + return TRANS_CORNERS_ROTATION(LDr, c); + case TRANS_LBr: + return TRANS_CORNERS_ROTATION(LBr, c); + case TRANS_FUr: + return TRANS_CORNERS_ROTATION(FUr, c); + case TRANS_FRr: + return TRANS_CORNERS_ROTATION(FRr, c); + case TRANS_FDr: + return TRANS_CORNERS_ROTATION(FDr, c); + case TRANS_FLr: + return TRANS_CORNERS_ROTATION(FLr, c); + case TRANS_BUr: + return TRANS_CORNERS_ROTATION(BUr, c); + case TRANS_BRr: + return TRANS_CORNERS_ROTATION(BRr, c); + case TRANS_BDr: + return TRANS_CORNERS_ROTATION(BDr, c); + case TRANS_BLr: + return TRANS_CORNERS_ROTATION(BLr, c); + case TRANS_UFm: + return TRANS_CORNERS_MIRRORED(UFm, c); + case TRANS_ULm: + return TRANS_CORNERS_MIRRORED(ULm, c); + case TRANS_UBm: + return TRANS_CORNERS_MIRRORED(UBm, c); + case TRANS_URm: + return TRANS_CORNERS_MIRRORED(URm, c); + case TRANS_DFm: + return TRANS_CORNERS_MIRRORED(DFm, c); + case TRANS_DLm: + return TRANS_CORNERS_MIRRORED(DLm, c); + case TRANS_DBm: + return TRANS_CORNERS_MIRRORED(DBm, c); + case TRANS_DRm: + return TRANS_CORNERS_MIRRORED(DRm, c); + case TRANS_RUm: + return TRANS_CORNERS_MIRRORED(RUm, c); + case TRANS_RFm: + return TRANS_CORNERS_MIRRORED(RFm, c); + case TRANS_RDm: + return TRANS_CORNERS_MIRRORED(RDm, c); + case TRANS_RBm: + return TRANS_CORNERS_MIRRORED(RBm, c); + case TRANS_LUm: + return TRANS_CORNERS_MIRRORED(LUm, c); + case TRANS_LFm: + return TRANS_CORNERS_MIRRORED(LFm, c); + case TRANS_LDm: + return TRANS_CORNERS_MIRRORED(LDm, c); + case TRANS_LBm: + return TRANS_CORNERS_MIRRORED(LBm, c); + case TRANS_FUm: + return TRANS_CORNERS_MIRRORED(FUm, c); + case TRANS_FRm: + return TRANS_CORNERS_MIRRORED(FRm, c); + case TRANS_FDm: + return TRANS_CORNERS_MIRRORED(FDm, c); + case TRANS_FLm: + return TRANS_CORNERS_MIRRORED(FLm, c); + case TRANS_BUm: + return TRANS_CORNERS_MIRRORED(BUm, c); + case TRANS_BRm: + return TRANS_CORNERS_MIRRORED(BRm, c); + case TRANS_BDm: + return TRANS_CORNERS_MIRRORED(BDm, c); + case TRANS_BLm: + return TRANS_CORNERS_MIRRORED(BLm, c); default: LOG("transform error, unknown transformation %" PRIu8 "\n", t); return zero; } } -_static cube_t +STATIC cube_t transform(cube_t c, uint8_t t) { switch (t) { - case _trans_UFr: + case TRANS_UFr: return c; - case _trans_ULr: - return _trans_rotation(ULr, c); - case _trans_UBr: - return _trans_rotation(UBr, c); - case _trans_URr: - return _trans_rotation(URr, c); - case _trans_DFr: - return _trans_rotation(DFr, c); - case _trans_DLr: - return _trans_rotation(DLr, c); - case _trans_DBr: - return _trans_rotation(DBr, c); - case _trans_DRr: - return _trans_rotation(DRr, c); - case _trans_RUr: - return _trans_rotation(RUr, c); - case _trans_RFr: - return _trans_rotation(RFr, c); - case _trans_RDr: - return _trans_rotation(RDr, c); - case _trans_RBr: - return _trans_rotation(RBr, c); - case _trans_LUr: - return _trans_rotation(LUr, c); - case _trans_LFr: - return _trans_rotation(LFr, c); - case _trans_LDr: - return _trans_rotation(LDr, c); - case _trans_LBr: - return _trans_rotation(LBr, c); - case _trans_FUr: - return _trans_rotation(FUr, c); - case _trans_FRr: - return _trans_rotation(FRr, c); - case _trans_FDr: - return _trans_rotation(FDr, c); - case _trans_FLr: - return _trans_rotation(FLr, c); - case _trans_BUr: - return _trans_rotation(BUr, c); - case _trans_BRr: - return _trans_rotation(BRr, c); - case _trans_BDr: - return _trans_rotation(BDr, c); - case _trans_BLr: - return _trans_rotation(BLr, c); - case _trans_UFm: - return _trans_mirrored(UFm, c); - case _trans_ULm: - return _trans_mirrored(ULm, c); - case _trans_UBm: - return _trans_mirrored(UBm, c); - case _trans_URm: - return _trans_mirrored(URm, c); - case _trans_DFm: - return _trans_mirrored(DFm, c); - case _trans_DLm: - return _trans_mirrored(DLm, c); - case _trans_DBm: - return _trans_mirrored(DBm, c); - case _trans_DRm: - return _trans_mirrored(DRm, c); - case _trans_RUm: - return _trans_mirrored(RUm, c); - case _trans_RFm: - return _trans_mirrored(RFm, c); - case _trans_RDm: - return _trans_mirrored(RDm, c); - case _trans_RBm: - return _trans_mirrored(RBm, c); - case _trans_LUm: - return _trans_mirrored(LUm, c); - case _trans_LFm: - return _trans_mirrored(LFm, c); - case _trans_LDm: - return _trans_mirrored(LDm, c); - case _trans_LBm: - return _trans_mirrored(LBm, c); - case _trans_FUm: - return _trans_mirrored(FUm, c); - case _trans_FRm: - return _trans_mirrored(FRm, c); - case _trans_FDm: - return _trans_mirrored(FDm, c); - case _trans_FLm: - return _trans_mirrored(FLm, c); - case _trans_BUm: - return _trans_mirrored(BUm, c); - case _trans_BRm: - return _trans_mirrored(BRm, c); - case _trans_BDm: - return _trans_mirrored(BDm, c); - case _trans_BLm: - return _trans_mirrored(BLm, c); + case TRANS_ULr: + return TRANS_ROTATION(ULr, c); + case TRANS_UBr: + return TRANS_ROTATION(UBr, c); + case TRANS_URr: + return TRANS_ROTATION(URr, c); + case TRANS_DFr: + return TRANS_ROTATION(DFr, c); + case TRANS_DLr: + return TRANS_ROTATION(DLr, c); + case TRANS_DBr: + return TRANS_ROTATION(DBr, c); + case TRANS_DRr: + return TRANS_ROTATION(DRr, c); + case TRANS_RUr: + return TRANS_ROTATION(RUr, c); + case TRANS_RFr: + return TRANS_ROTATION(RFr, c); + case TRANS_RDr: + return TRANS_ROTATION(RDr, c); + case TRANS_RBr: + return TRANS_ROTATION(RBr, c); + case TRANS_LUr: + return TRANS_ROTATION(LUr, c); + case TRANS_LFr: + return TRANS_ROTATION(LFr, c); + case TRANS_LDr: + return TRANS_ROTATION(LDr, c); + case TRANS_LBr: + return TRANS_ROTATION(LBr, c); + case TRANS_FUr: + return TRANS_ROTATION(FUr, c); + case TRANS_FRr: + return TRANS_ROTATION(FRr, c); + case TRANS_FDr: + return TRANS_ROTATION(FDr, c); + case TRANS_FLr: + return TRANS_ROTATION(FLr, c); + case TRANS_BUr: + return TRANS_ROTATION(BUr, c); + case TRANS_BRr: + return TRANS_ROTATION(BRr, c); + case TRANS_BDr: + return TRANS_ROTATION(BDr, c); + case TRANS_BLr: + return TRANS_ROTATION(BLr, c); + case TRANS_UFm: + return TRANS_MIRRORED(UFm, c); + case TRANS_ULm: + return TRANS_MIRRORED(ULm, c); + case TRANS_UBm: + return TRANS_MIRRORED(UBm, c); + case TRANS_URm: + return TRANS_MIRRORED(URm, c); + case TRANS_DFm: + return TRANS_MIRRORED(DFm, c); + case TRANS_DLm: + return TRANS_MIRRORED(DLm, c); + case TRANS_DBm: + return TRANS_MIRRORED(DBm, c); + case TRANS_DRm: + return TRANS_MIRRORED(DRm, c); + case TRANS_RUm: + return TRANS_MIRRORED(RUm, c); + case TRANS_RFm: + return TRANS_MIRRORED(RFm, c); + case TRANS_RDm: + return TRANS_MIRRORED(RDm, c); + case TRANS_RBm: + return TRANS_MIRRORED(RBm, c); + case TRANS_LUm: + return TRANS_MIRRORED(LUm, c); + case TRANS_LFm: + return TRANS_MIRRORED(LFm, c); + case TRANS_LDm: + return TRANS_MIRRORED(LDm, c); + case TRANS_LBm: + return TRANS_MIRRORED(LBm, c); + case TRANS_FUm: + return TRANS_MIRRORED(FUm, c); + case TRANS_FRm: + return TRANS_MIRRORED(FRm, c); + case TRANS_FDm: + return TRANS_MIRRORED(FDm, c); + case TRANS_FLm: + return TRANS_MIRRORED(FLm, c); + case TRANS_BUm: + return TRANS_MIRRORED(BUm, c); + case TRANS_BRm: + return TRANS_MIRRORED(BRm, c); + case TRANS_BDm: + return TRANS_MIRRORED(BDm, c); + case TRANS_BLm: + return TRANS_MIRRORED(BLm, c); default: LOG("transform error, unknown transformation %" PRIu8 "\n", t); return zero; } } -_static cube_t +STATIC cube_t applytrans(cube_t cube, const char *buf) { uint8_t t; -- cgit v1.3