aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2023-10-22 22:46:52 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2023-10-22 22:46:52 +0200
commit4a7e2dccaa54bc42a4b67cf35cf8b926cf357bb3 (patch)
treefa08602a6225d45d8d3fb69a258980a63c3383d4
parent97b3aa48a8d6ccdf2a3ce587bf8ac130c00c1b64 (diff)
downloadnissy-core-4a7e2dccaa54bc42a4b67cf35cf8b926cf357bb3.tar.gz
nissy-core-4a7e2dccaa54bc42a4b67cf35cf8b926cf357bb3.zip
Added transformations (and fixed tests)
Diffstat (limited to '')
-rw-r--r--README.md3
-rwxr-xr-xh48_to_srcbin0 -> 35272 bytes
-rw-r--r--src/cube.c237
-rw-r--r--test/05_transform/101_UFm_U.out2
-rw-r--r--test/05_transform/103_UFm_R.out2
-rw-r--r--test/05_transform/105_UFm_F.out2
-rw-r--r--test/05_transform/107_ULm_U.out2
-rw-r--r--test/05_transform/109_ULm_R.out2
-rw-r--r--test/05_transform/111_ULm_F.out2
-rw-r--r--test/05_transform/113_UBm_U.out2
-rw-r--r--test/05_transform/115_UBm_R.out2
-rw-r--r--test/05_transform/117_UBm_F.out2
-rw-r--r--test/05_transform/119_URm_U.out2
-rw-r--r--test/05_transform/121_URm_R.out2
-rw-r--r--test/05_transform/123_URm_F.out2
-rw-r--r--test/05_transform/125_DFm_U.out2
-rw-r--r--test/05_transform/127_DFm_R.out2
-rw-r--r--test/05_transform/129_DFm_F.out2
-rw-r--r--test/05_transform/131_DLm_U.out2
-rw-r--r--test/05_transform/133_DLm_R.out2
-rw-r--r--test/05_transform/135_DLm_F.out2
-rw-r--r--test/05_transform/137_DBm_U.out2
-rw-r--r--test/05_transform/139_DBm_R.out2
-rw-r--r--test/05_transform/141_DBm_F.out2
-rw-r--r--test/05_transform/143_DRm_U.out2
-rw-r--r--test/05_transform/145_DRm_R.out2
-rw-r--r--test/05_transform/147_DRm_F.out2
-rw-r--r--test/05_transform/149_RUm_U.out2
-rw-r--r--test/05_transform/151_RUm_R.out2
-rw-r--r--test/05_transform/153_RUm_F.out2
-rw-r--r--test/05_transform/155_RFm_U.out2
-rw-r--r--test/05_transform/157_RFm_R.out2
-rw-r--r--test/05_transform/159_RFm_F.out2
-rw-r--r--test/05_transform/161_RDm_U.out2
-rw-r--r--test/05_transform/163_RDm_R.out2
-rw-r--r--test/05_transform/165_RDm_F.out2
-rw-r--r--test/05_transform/167_RBm_U.out2
-rw-r--r--test/05_transform/169_RBm_R.out2
-rw-r--r--test/05_transform/171_RBm_F.out2
-rw-r--r--test/05_transform/173_LUm_U.out2
-rw-r--r--test/05_transform/175_LUm_R.out2
-rw-r--r--test/05_transform/177_LUm_F.out2
-rw-r--r--test/05_transform/179_LFm_U.out2
-rw-r--r--test/05_transform/181_LFm_R.out2
-rw-r--r--test/05_transform/183_LFm_F.out2
-rw-r--r--test/05_transform/185_LDm_U.out2
-rw-r--r--test/05_transform/187_LDm_R.out2
-rw-r--r--test/05_transform/189_LDm_F.out2
-rw-r--r--test/05_transform/191_LBm_U.out2
-rw-r--r--test/05_transform/193_LBm_R.out2
-rw-r--r--test/05_transform/195_LBm_F.out2
-rw-r--r--test/05_transform/197_FUm_U.out2
-rw-r--r--test/05_transform/199_FUm_R.out2
-rw-r--r--test/05_transform/201_FUm_F.out2
-rw-r--r--test/05_transform/203_FRm_U.out2
-rw-r--r--test/05_transform/205_FRm_R.out2
-rw-r--r--test/05_transform/207_FRm_F.out2
-rw-r--r--test/05_transform/209_FDm_U.out2
-rw-r--r--test/05_transform/211_FDm_R.out2
-rw-r--r--test/05_transform/213_FDm_F.out2
-rw-r--r--test/05_transform/215_FLm_U.out2
-rw-r--r--test/05_transform/217_FLm_R.out2
-rw-r--r--test/05_transform/219_FLm_F.out2
-rw-r--r--test/05_transform/221_BUm_U.out2
-rw-r--r--test/05_transform/223_BUm_R.out2
-rw-r--r--test/05_transform/225_BUm_F.out2
-rw-r--r--test/05_transform/227_BRm_U.out2
-rw-r--r--test/05_transform/229_BRm_R.out2
-rw-r--r--test/05_transform/231_BRm_F.out2
-rw-r--r--test/05_transform/233_BDm_U.out2
-rw-r--r--test/05_transform/235_BDm_R.out2
-rw-r--r--test/05_transform/237_BDm_F.out2
-rw-r--r--test/05_transform/239_BLm_U.out2
-rw-r--r--test/05_transform/241_BLm_R.out2
-rw-r--r--test/05_transform/243_BLm_F.out2
-rwxr-xr-xutils/gentranscode.sh12
-rwxr-xr-xutils/gentranstests.sh3
-rw-r--r--utils/h48_to_src.c20
-rw-r--r--utils/trans_move_array.txt192
79 files changed, 536 insertions, 75 deletions
diff --git a/README.md b/README.md
index a92d844..33e8cb8 100644
--- a/README.md
+++ b/README.md
@@ -4,15 +4,14 @@ Work in progress.
4 4
5TODO: 5TODO:
6 6
7* implement transformations (use write to SRC to make life easier)
8* setup benchmarks 7* setup benchmarks
8* AVX2 compile-time switch
9* coordinates: co, eo, epsep, cpsep_sym, cocpsep_sym, cphtr_sym, cocphtr_sym 9* coordinates: co, eo, epsep, cpsep_sym, cocpsep_sym, cphtr_sym, cocphtr_sym
10* pruning tables (1 bit per entry + fallback) 10* pruning tables (1 bit per entry + fallback)
11* solve.c 11* solve.c
12 12
13Optimizations: 13Optimizations:
14 14
15* avx2_cube.c
16* multi-move (up to 4/5 moves at once) 15* multi-move (up to 4/5 moves at once)
17 16
18Things I need to learn: 17Things I need to learn:
diff --git a/h48_to_src b/h48_to_src
new file mode 100755
index 0000000..8cf38e3
--- /dev/null
+++ b/h48_to_src
Binary files differ
diff --git a/src/cube.c b/src/cube.c
index f6e6a8f..b853b06 100644
--- a/src/cube.c
+++ b/src/cube.c
@@ -181,6 +181,7 @@ cube_t solvedcube = {
181static cube_t errorcube = { .e = {0}, .c = {0} }; 181static cube_t errorcube = { .e = {0}, .c = {0} };
182 182
183static bool isconsistent(cube_t); 183static bool isconsistent(cube_t);
184static cube_t flipallcorners(cube_t);
184static uint8_t readco(char *); 185static uint8_t readco(char *);
185static uint8_t readcp(char *); 186static uint8_t readcp(char *);
186static uint8_t readeo(char *); 187static uint8_t readeo(char *);
@@ -904,8 +905,244 @@ compose_inconsistent:
904 return errorcube; 905 return errorcube;
905} 906}
906 907
908static cube_t
909flipallcorners(cube_t c)
910{
911 uint8_t i, piece, orien;
912 cube_t ret;
913
914 ret = c;
915 for (i = 0; i < 8; i++) {
916 piece = ret.c[i];
917 orien = ((piece << 1) | (piece >> 1)) & _cobits2;
918 ret.c[i] = (piece & _pbits) | orien;
919 }
920
921 return ret;
922}
923
907cube_t 924cube_t
908transform(cube_t c, trans_t t) 925transform(cube_t c, trans_t t)
909{ 926{
927 static cube_t trans_move_cube[] = {
928 [UFr] = {
929 .c = {0, 1, 2, 3, 4, 5, 6, 7},
930 .e = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
931 },
932 [ULr] = {
933 .c = {4, 5, 7, 6, 1, 0, 2, 3},
934 .e = {5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24}
935 },
936 [UBr] = {
937 .c = {1, 0, 3, 2, 5, 4, 7, 6},
938 .e = {1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9}
939 },
940 [URr] = {
941 .c = {5, 4, 6, 7, 0, 1, 3, 2},
942 .e = {4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26}
943 },
944 [DFr] = {
945 .c = {2, 3, 0, 1, 6, 7, 4, 5},
946 .e = {3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10}
947 },
948 [DLr] = {
949 .c = {7, 6, 4, 5, 2, 3, 1, 0},
950 .e = {6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27}
951 },
952 [DBr] = {
953 .c = {3, 2, 1, 0, 7, 6, 5, 4},
954 .e = {2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8}
955 },
956 [DRr] = {
957 .c = {6, 7, 5, 4, 3, 2, 0, 1},
958 .e = {7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25}
959 },
960 [RUr] = {
961 .c = {64, 67, 65, 66, 37, 38, 36, 39},
962 .e = {20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3}
963 },
964 [RFr] = {
965 .c = {38, 37, 36, 39, 64, 67, 66, 65},
966 .e = {24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18}
967 },
968 [RDr] = {
969 .c = {67, 64, 66, 65, 38, 37, 39, 36},
970 .e = {23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1}
971 },
972 [RBr] = {
973 .c = {37, 38, 39, 36, 67, 64, 65, 66},
974 .e = {27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16}
975 },
976 [LUr] = {
977 .c = {65, 66, 64, 67, 36, 39, 37, 38},
978 .e = {21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2}
979 },
980 [LFr] = {
981 .c = {36, 39, 38, 37, 66, 65, 64, 67},
982 .e = {25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17}
983 },
984 [LDr] = {
985 .c = {66, 65, 67, 64, 39, 36, 38, 37},
986 .e = {22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0}
987 },
988 [LBr] = {
989 .c = {39, 36, 37, 38, 65, 66, 67, 64},
990 .e = {26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19}
991 },
992 [FUr] = {
993 .c = {68, 70, 69, 71, 32, 34, 33, 35},
994 .e = {16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6}
995 },
996 [FRr] = {
997 .c = {32, 34, 35, 33, 70, 68, 69, 71},
998 .e = {8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21}
999 },
1000 [FDr] = {
1001 .c = {70, 68, 71, 69, 34, 32, 35, 33},
1002 .e = {19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4}
1003 },
1004 [FLr] = {
1005 .c = {34, 32, 33, 35, 68, 70, 71, 69},
1006 .e = {9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23}
1007 },
1008 [BUr] = {
1009 .c = {69, 71, 68, 70, 33, 35, 32, 34},
1010 .e = {17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7}
1011 },
1012 [BRr] = {
1013 .c = {35, 33, 32, 34, 69, 71, 70, 68},
1014 .e = {11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22}
1015 },
1016 [BDr] = {
1017 .c = {71, 69, 70, 68, 35, 33, 34, 32},
1018 .e = {18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5}
1019 },
1020 [BLr] = {
1021 .c = {33, 35, 34, 32, 71, 69, 68, 70},
1022 .e = {10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20}
1023 },
1024 [UFm] = {
1025 .c = {4, 5, 6, 7, 0, 1, 2, 3},
1026 .e = {0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10}
1027 },
1028 [ULm] = {
1029 .c = {0, 1, 3, 2, 5, 4, 6, 7},
1030 .e = {4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25}
1031 },
1032 [UBm] = {
1033 .c = {5, 4, 7, 6, 1, 0, 3, 2},
1034 .e = {1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8}
1035 },
1036 [URm] = {
1037 .c = {1, 0, 2, 3, 4, 5, 7, 6},
1038 .e = {5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27}
1039 },
1040 [DFm] = {
1041 .c = {6, 7, 4, 5, 2, 3, 0, 1},
1042 .e = {3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11}
1043 },
1044 [DLm] = {
1045 .c = {3, 2, 0, 1, 6, 7, 5, 4},
1046 .e = {7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26}
1047 },
1048 [DBm] = {
1049 .c = {7, 6, 5, 4, 3, 2, 1, 0},
1050 .e = {2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9}
1051 },
1052 [DRm] = {
1053 .c = {2, 3, 1, 0, 7, 6, 4, 5},
1054 .e = {6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24}
1055 },
1056 [RUm] = {
1057 .c = {68, 71, 69, 70, 33, 34, 32, 35},
1058 .e = {21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3}
1059 },
1060 [RFm] = {
1061 .c = {34, 33, 32, 35, 68, 71, 70, 69},
1062 .e = {25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18}
1063 },
1064 [RDm] = {
1065 .c = {71, 68, 70, 69, 34, 33, 35, 32},
1066 .e = {22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1}
1067 },
1068 [RBm] = {
1069 .c = {33, 34, 35, 32, 71, 68, 69, 70},
1070 .e = {26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16}
1071 },
1072 [LUm] = {
1073 .c = {69, 70, 68, 71, 32, 35, 33, 34},
1074 .e = {20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2}
1075 },
1076 [LFm] = {
1077 .c = {32, 35, 34, 33, 70, 69, 68, 71},
1078 .e = {24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17}
1079 },
1080 [LDm] = {
1081 .c = {70, 69, 71, 68, 35, 32, 34, 33},
1082 .e = {23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0}
1083 },
1084 [LBm] = {
1085 .c = {35, 32, 33, 34, 69, 70, 71, 68},
1086 .e = {27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19}
1087 },
1088 [FUm] = {
1089 .c = {64, 66, 65, 67, 36, 38, 37, 39},
1090 .e = {16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7}
1091 },
1092 [FRm] = {
1093 .c = {36, 38, 39, 37, 66, 64, 65, 67},
1094 .e = {9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20}
1095 },
1096 [FDm] = {
1097 .c = {66, 64, 67, 65, 38, 36, 39, 37},
1098 .e = {19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5}
1099 },
1100 [FLm] = {
1101 .c = {38, 36, 37, 39, 64, 66, 67, 65},
1102 .e = {8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22}
1103 },
1104 [BUm] = {
1105 .c = {65, 67, 64, 66, 37, 39, 36, 38},
1106 .e = {17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6}
1107 },
1108 [BRm] = {
1109 .c = {39, 37, 36, 38, 65, 67, 66, 64},
1110 .e = {10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23}
1111 },
1112 [BDm] = {
1113 .c = {67, 65, 66, 64, 39, 37, 38, 36},
1114 .e = {18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4}
1115 },
1116 [BLm] = {
1117 .c = {37, 39, 38, 36, 67, 65, 64, 66},
1118 .e = {11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21}
1119 },
1120 };
1121
1122 cube_t ret;
1123
1124#ifdef DEBUG
1125 if (!isconsistent(c))
1126 goto transform_inconsistent;
1127 if (t >= 48)
1128 goto transform_errortrans;
1129#endif
1130
1131 ret = compose(solvedcube, trans_move_cube[t]);
1132 ret = compose(ret, c);
1133 /* TODO: pre-compute inverse for performance */
1134 ret = compose(ret, inverse(trans_move_cube[t]));
1135
1136 /* TODO: work out a better way to do this */
1137 if (t >= 24)
1138 ret = flipallcorners(ret);
1139
1140 return ret;
1141
1142transform_inconsistent:
1143 fprintf(stderr, "transform error, inconsistent cube\n");
1144 return errorcube;
1145transform_errortrans:
1146 fprintf(stderr, "transform error, unknown transformation\n");
910 return errorcube; 1147 return errorcube;
911} 1148}
diff --git a/test/05_transform/101_UFm_U.out b/test/05_transform/101_UFm_U.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/101_UFm_U.out
+++ b/test/05_transform/101_UFm_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/103_UFm_R.out b/test/05_transform/103_UFm_R.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/103_UFm_R.out
+++ b/test/05_transform/103_UFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/105_UFm_F.out b/test/05_transform/105_UFm_F.out
index e805af8..40f1260 100644
--- a/test/05_transform/105_UFm_F.out
+++ b/test/05_transform/105_UFm_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/107_ULm_U.out b/test/05_transform/107_ULm_U.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/107_ULm_U.out
+++ b/test/05_transform/107_ULm_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/109_ULm_R.out b/test/05_transform/109_ULm_R.out
index e805af8..40f1260 100644
--- a/test/05_transform/109_ULm_R.out
+++ b/test/05_transform/109_ULm_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/111_ULm_F.out b/test/05_transform/111_ULm_F.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/111_ULm_F.out
+++ b/test/05_transform/111_ULm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/113_UBm_U.out b/test/05_transform/113_UBm_U.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/113_UBm_U.out
+++ b/test/05_transform/113_UBm_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/115_UBm_R.out b/test/05_transform/115_UBm_R.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/115_UBm_R.out
+++ b/test/05_transform/115_UBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/117_UBm_F.out b/test/05_transform/117_UBm_F.out
index f7fb13c..1367517 100644
--- a/test/05_transform/117_UBm_F.out
+++ b/test/05_transform/117_UBm_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/119_URm_U.out b/test/05_transform/119_URm_U.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/119_URm_U.out
+++ b/test/05_transform/119_URm_U.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/121_URm_R.out b/test/05_transform/121_URm_R.out
index f7fb13c..1367517 100644
--- a/test/05_transform/121_URm_R.out
+++ b/test/05_transform/121_URm_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/123_URm_F.out b/test/05_transform/123_URm_F.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/123_URm_F.out
+++ b/test/05_transform/123_URm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/125_DFm_U.out b/test/05_transform/125_DFm_U.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/125_DFm_U.out
+++ b/test/05_transform/125_DFm_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/127_DFm_R.out b/test/05_transform/127_DFm_R.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/127_DFm_R.out
+++ b/test/05_transform/127_DFm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/129_DFm_F.out b/test/05_transform/129_DFm_F.out
index e805af8..40f1260 100644
--- a/test/05_transform/129_DFm_F.out
+++ b/test/05_transform/129_DFm_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/131_DLm_U.out b/test/05_transform/131_DLm_U.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/131_DLm_U.out
+++ b/test/05_transform/131_DLm_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/133_DLm_R.out b/test/05_transform/133_DLm_R.out
index f7fb13c..1367517 100644
--- a/test/05_transform/133_DLm_R.out
+++ b/test/05_transform/133_DLm_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/135_DLm_F.out b/test/05_transform/135_DLm_F.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/135_DLm_F.out
+++ b/test/05_transform/135_DLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/137_DBm_U.out b/test/05_transform/137_DBm_U.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/137_DBm_U.out
+++ b/test/05_transform/137_DBm_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/139_DBm_R.out b/test/05_transform/139_DBm_R.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/139_DBm_R.out
+++ b/test/05_transform/139_DBm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/141_DBm_F.out b/test/05_transform/141_DBm_F.out
index f7fb13c..1367517 100644
--- a/test/05_transform/141_DBm_F.out
+++ b/test/05_transform/141_DBm_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/143_DRm_U.out b/test/05_transform/143_DRm_U.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/143_DRm_U.out
+++ b/test/05_transform/143_DRm_U.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/145_DRm_R.out b/test/05_transform/145_DRm_R.out
index e805af8..40f1260 100644
--- a/test/05_transform/145_DRm_R.out
+++ b/test/05_transform/145_DRm_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/147_DRm_F.out b/test/05_transform/147_DRm_F.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/147_DRm_F.out
+++ b/test/05_transform/147_DRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/149_RUm_U.out b/test/05_transform/149_RUm_U.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/149_RUm_U.out
+++ b/test/05_transform/149_RUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/151_RUm_R.out b/test/05_transform/151_RUm_R.out
index e805af8..40f1260 100644
--- a/test/05_transform/151_RUm_R.out
+++ b/test/05_transform/151_RUm_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/153_RUm_F.out b/test/05_transform/153_RUm_F.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/153_RUm_F.out
+++ b/test/05_transform/153_RUm_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/155_RFm_U.out b/test/05_transform/155_RFm_U.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/155_RFm_U.out
+++ b/test/05_transform/155_RFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/157_RFm_R.out b/test/05_transform/157_RFm_R.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/157_RFm_R.out
+++ b/test/05_transform/157_RFm_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/159_RFm_F.out b/test/05_transform/159_RFm_F.out
index e805af8..40f1260 100644
--- a/test/05_transform/159_RFm_F.out
+++ b/test/05_transform/159_RFm_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/161_RDm_U.out b/test/05_transform/161_RDm_U.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/161_RDm_U.out
+++ b/test/05_transform/161_RDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/163_RDm_R.out b/test/05_transform/163_RDm_R.out
index f7fb13c..1367517 100644
--- a/test/05_transform/163_RDm_R.out
+++ b/test/05_transform/163_RDm_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/165_RDm_F.out b/test/05_transform/165_RDm_F.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/165_RDm_F.out
+++ b/test/05_transform/165_RDm_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/167_RBm_U.out b/test/05_transform/167_RBm_U.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/167_RBm_U.out
+++ b/test/05_transform/167_RBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/169_RBm_R.out b/test/05_transform/169_RBm_R.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/169_RBm_R.out
+++ b/test/05_transform/169_RBm_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/171_RBm_F.out b/test/05_transform/171_RBm_F.out
index f7fb13c..1367517 100644
--- a/test/05_transform/171_RBm_F.out
+++ b/test/05_transform/171_RBm_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/173_LUm_U.out b/test/05_transform/173_LUm_U.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/173_LUm_U.out
+++ b/test/05_transform/173_LUm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/175_LUm_R.out b/test/05_transform/175_LUm_R.out
index f7fb13c..1367517 100644
--- a/test/05_transform/175_LUm_R.out
+++ b/test/05_transform/175_LUm_R.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/177_LUm_F.out b/test/05_transform/177_LUm_F.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/177_LUm_F.out
+++ b/test/05_transform/177_LUm_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/179_LFm_U.out b/test/05_transform/179_LFm_U.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/179_LFm_U.out
+++ b/test/05_transform/179_LFm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/181_LFm_R.out b/test/05_transform/181_LFm_R.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/181_LFm_R.out
+++ b/test/05_transform/181_LFm_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/183_LFm_F.out b/test/05_transform/183_LFm_F.out
index e805af8..40f1260 100644
--- a/test/05_transform/183_LFm_F.out
+++ b/test/05_transform/183_LFm_F.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/185_LDm_U.out b/test/05_transform/185_LDm_U.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/185_LDm_U.out
+++ b/test/05_transform/185_LDm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/187_LDm_R.out b/test/05_transform/187_LDm_R.out
index e805af8..40f1260 100644
--- a/test/05_transform/187_LDm_R.out
+++ b/test/05_transform/187_LDm_R.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/189_LDm_F.out b/test/05_transform/189_LDm_F.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/189_LDm_F.out
+++ b/test/05_transform/189_LDm_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/191_LBm_U.out b/test/05_transform/191_LBm_U.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/191_LBm_U.out
+++ b/test/05_transform/191_LBm_U.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/193_LBm_R.out b/test/05_transform/193_LBm_R.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/193_LBm_R.out
+++ b/test/05_transform/193_LBm_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/195_LBm_F.out b/test/05_transform/195_LBm_F.out
index f7fb13c..1367517 100644
--- a/test/05_transform/195_LBm_F.out
+++ b/test/05_transform/195_LBm_F.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/197_FUm_U.out b/test/05_transform/197_FUm_U.out
index e805af8..40f1260 100644
--- a/test/05_transform/197_FUm_U.out
+++ b/test/05_transform/197_FUm_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/199_FUm_R.out b/test/05_transform/199_FUm_R.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/199_FUm_R.out
+++ b/test/05_transform/199_FUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/201_FUm_F.out b/test/05_transform/201_FUm_F.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/201_FUm_F.out
+++ b/test/05_transform/201_FUm_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/203_FRm_U.out b/test/05_transform/203_FRm_U.out
index e805af8..40f1260 100644
--- a/test/05_transform/203_FRm_U.out
+++ b/test/05_transform/203_FRm_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/205_FRm_R.out b/test/05_transform/205_FRm_R.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/205_FRm_R.out
+++ b/test/05_transform/205_FRm_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/207_FRm_F.out b/test/05_transform/207_FRm_F.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/207_FRm_F.out
+++ b/test/05_transform/207_FRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/209_FDm_U.out b/test/05_transform/209_FDm_U.out
index e805af8..40f1260 100644
--- a/test/05_transform/209_FDm_U.out
+++ b/test/05_transform/209_FDm_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/211_FDm_R.out b/test/05_transform/211_FDm_R.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/211_FDm_R.out
+++ b/test/05_transform/211_FDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/213_FDm_F.out b/test/05_transform/213_FDm_F.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/213_FDm_F.out
+++ b/test/05_transform/213_FDm_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/215_FLm_U.out b/test/05_transform/215_FLm_U.out
index e805af8..40f1260 100644
--- a/test/05_transform/215_FLm_U.out
+++ b/test/05_transform/215_FLm_U.out
@@ -1 +1 @@
FL1 UB0 DB0 FR1 UR0 UL0 DL0 DR0 UF1 DF1 BL0 BR0 UFL1 UBL0 DFR1 DBR0 DFL2 UBR0 UFR2 DBL0 FR1 UB0 DB0 FL1 UR0 UL0 DL0 DR0 DF1 UF1 BL0 BR0 DFR1 UBL0 UFL1 DBR0 UFR2 UBR0 DFL2 DBL0
diff --git a/test/05_transform/217_FLm_R.out b/test/05_transform/217_FLm_R.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/217_FLm_R.out
+++ b/test/05_transform/217_FLm_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/219_FLm_F.out b/test/05_transform/219_FLm_F.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/219_FLm_F.out
+++ b/test/05_transform/219_FLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/221_BUm_U.out b/test/05_transform/221_BUm_U.out
index f7fb13c..1367517 100644
--- a/test/05_transform/221_BUm_U.out
+++ b/test/05_transform/221_BUm_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/223_BUm_R.out b/test/05_transform/223_BUm_R.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/223_BUm_R.out
+++ b/test/05_transform/223_BUm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/225_BUm_F.out b/test/05_transform/225_BUm_F.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/225_BUm_F.out
+++ b/test/05_transform/225_BUm_F.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/227_BRm_U.out b/test/05_transform/227_BRm_U.out
index f7fb13c..1367517 100644
--- a/test/05_transform/227_BRm_U.out
+++ b/test/05_transform/227_BRm_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/229_BRm_R.out b/test/05_transform/229_BRm_R.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/229_BRm_R.out
+++ b/test/05_transform/229_BRm_R.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/231_BRm_F.out b/test/05_transform/231_BRm_F.out
index 8c8fcb3..2ac2912 100644
--- a/test/05_transform/231_BRm_F.out
+++ b/test/05_transform/231_BRm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 FR0 UL0 DL0 BR0 DR0 FL0 BL0 UR0 DFR2 UBL0 DFL0 UBR2 UFL0 UFR1 DBR1 DBL0 UF0 UB0 DB0 DF0 UR0 FL0 BL0 DR0 FR0 DL0 UL0 BR0 UFR0 UFL2 DBL2 DBR0 DFL1 UBR0 DFR0 UBL1
diff --git a/test/05_transform/233_BDm_U.out b/test/05_transform/233_BDm_U.out
index f7fb13c..1367517 100644
--- a/test/05_transform/233_BDm_U.out
+++ b/test/05_transform/233_BDm_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/235_BDm_R.out b/test/05_transform/235_BDm_R.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/235_BDm_R.out
+++ b/test/05_transform/235_BDm_R.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/test/05_transform/237_BDm_F.out b/test/05_transform/237_BDm_F.out
index cf4f816..2864f5b 100644
--- a/test/05_transform/237_BDm_F.out
+++ b/test/05_transform/237_BDm_F.out
@@ -1 +1 @@
UF0 UB0 DR0 DL0 UR0 UL0 DB0 DF0 FR0 FL0 BL0 BR0 UFR0 UBL0 DBL0 DFR0 UFL0 UBR0 DFL0 DBR0 UF0 UB0 DL0 DR0 UR0 UL0 DF0 DB0 FR0 FL0 BL0 BR0 UFR0 UBL0 DFR0 DBL0 UFL0 UBR0 DBR0 DFL0
diff --git a/test/05_transform/239_BLm_U.out b/test/05_transform/239_BLm_U.out
index f7fb13c..1367517 100644
--- a/test/05_transform/239_BLm_U.out
+++ b/test/05_transform/239_BLm_U.out
@@ -1 +1 @@
UF0 BR1 BL1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 UB1 DB1 UFR0 UBR1 DFL0 DBL1 UFL0 DBR2 DFR0 UBL2 UF0 BL1 BR1 DF0 UR0 UL0 DL0 DR0 FR0 FL0 DB1 UB1 UFR0 DBL1 DFL0 UBR1 UFL0 UBL2 DFR0 DBR2
diff --git a/test/05_transform/241_BLm_R.out b/test/05_transform/241_BLm_R.out
index b5b36ad..7721ab5 100644
--- a/test/05_transform/241_BLm_R.out
+++ b/test/05_transform/241_BLm_R.out
@@ -1 +1 @@
UR0 UL0 DB0 DF0 UB0 UF0 DL0 DR0 FR0 FL0 BL0 BR0 UBR0 UFL0 DFL0 DBR0 UFR0 UBL0 DFR0 DBL0 UL0 UR0 DB0 DF0 UF0 UB0 DL0 DR0 FR0 FL0 BL0 BR0 UFL0 UBR0 DFL0 DBR0 UBL0 UFR0 DFR0 DBL0
diff --git a/test/05_transform/243_BLm_F.out b/test/05_transform/243_BLm_F.out
index 0b0565c..d4abffc 100644
--- a/test/05_transform/243_BLm_F.out
+++ b/test/05_transform/243_BLm_F.out
@@ -1 +1 @@
UF0 UB0 DB0 DF0 UR0 BL0 FL0 DR0 FR0 UL0 DL0 BR0 UFR0 DBL2 UFL2 DBR0 UBL1 UBR0 DFR0 DFL1 UF0 UB0 DB0 DF0 BR0 UL0 DL0 FR0 UR0 FL0 BL0 DR0 UBR2 UBL0 DFL0 DFR2 UFL0 DBR1 UFR1 DBL0
diff --git a/utils/gentranscode.sh b/utils/gentranscode.sh
new file mode 100755
index 0000000..abc3480
--- /dev/null
+++ b/utils/gentranscode.sh
@@ -0,0 +1,12 @@
1#!/bin/sh
2
3gcc -DDEBUG h48_to_src.c ../src/cube.c
4
5for f in transform_??_???.txt; do
6 trans="$(echo $f | sed 's/.*_// ; s/\.txt//')"
7 printf '[%s] = ' "$trans"
8 ./a.out <"$f"
9 printf ',\n'
10done
11
12rm a.out
diff --git a/utils/gentranstests.sh b/utils/gentranstests.sh
index 0186480..f6d6acc 100755
--- a/utils/gentranstests.sh
+++ b/utils/gentranstests.sh
@@ -23,9 +23,10 @@ while read -r line; do
23 i=$((i+1)) 23 i=$((i+1))
24 24
25 mirrored="mirrored $trans_piece" 25 mirrored="mirrored $trans_piece"
26 move2m="$(echo ${move2} | tr 'LR' 'RL')3"
26 27
27 file1="$(ls | grep move_*_${move1}.txt)" 28 file1="$(ls | grep move_*_${move1}.txt)"
28 file2="$(ls | grep move_*_${move2}.txt)" 29 file2="$(ls | grep move_*_${move2m}.txt)"
29 echo "$mirrored" >"$outdir/${i}_${trans_piece}m_${move1}.in" 30 echo "$mirrored" >"$outdir/${i}_${trans_piece}m_${move1}.in"
30 cat "$file1" >>"$outdir/${i}_${trans_piece}m_${move1}.in" 31 cat "$file1" >>"$outdir/${i}_${trans_piece}m_${move1}.in"
31 cp "$file2" "$outdir/${i}_${trans_piece}m_${move1}.out" 32 cp "$file2" "$outdir/${i}_${trans_piece}m_${move1}.out"
diff --git a/utils/h48_to_src.c b/utils/h48_to_src.c
new file mode 100644
index 0000000..b79e94b
--- /dev/null
+++ b/utils/h48_to_src.c
@@ -0,0 +1,20 @@
1#include <stdio.h>
2#include <inttypes.h>
3#include <stdbool.h>
4
5#include "../src/cube.h"
6
7#define STRLENMAX 1000
8
9int main() {
10 char str[STRLENMAX];
11 cube_t cube;
12
13 fgets(str, STRLENMAX, stdin);
14 cube = readcube(H48, str);
15 writecube(SRC, cube, str);
16 fputs(str, stdout);
17 /* putc('\n', stdout); */
18
19 return 0;
20}
diff --git a/utils/trans_move_array.txt b/utils/trans_move_array.txt
new file mode 100644
index 0000000..881ad0e
--- /dev/null
+++ b/utils/trans_move_array.txt
@@ -0,0 +1,192 @@
1[UFr] = {
2 .c = {0, 1, 2, 3, 4, 5, 6, 7},
3 .e = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
4},
5[ULr] = {
6 .c = {4, 5, 7, 6, 1, 0, 2, 3},
7 .e = {5, 4, 7, 6, 0, 1, 2, 3, 25, 26, 27, 24}
8},
9[UBr] = {
10 .c = {1, 0, 3, 2, 5, 4, 7, 6},
11 .e = {1, 0, 3, 2, 5, 4, 7, 6, 10, 11, 8, 9}
12},
13[URr] = {
14 .c = {5, 4, 6, 7, 0, 1, 3, 2},
15 .e = {4, 5, 6, 7, 1, 0, 3, 2, 27, 24, 25, 26}
16},
17[DFr] = {
18 .c = {2, 3, 0, 1, 6, 7, 4, 5},
19 .e = {3, 2, 1, 0, 6, 7, 4, 5, 9, 8, 11, 10}
20},
21[DLr] = {
22 .c = {7, 6, 4, 5, 2, 3, 1, 0},
23 .e = {6, 7, 4, 5, 2, 3, 0, 1, 26, 25, 24, 27}
24},
25[DBr] = {
26 .c = {3, 2, 1, 0, 7, 6, 5, 4},
27 .e = {2, 3, 0, 1, 7, 6, 5, 4, 11, 10, 9, 8}
28},
29[DRr] = {
30 .c = {6, 7, 5, 4, 3, 2, 0, 1},
31 .e = {7, 6, 5, 4, 3, 2, 1, 0, 24, 27, 26, 25}
32},
33[RUr] = {
34 .c = {64, 67, 65, 66, 37, 38, 36, 39},
35 .e = {20, 23, 22, 21, 24, 27, 26, 25, 0, 1, 2, 3}
36},
37[RFr] = {
38 .c = {38, 37, 36, 39, 64, 67, 66, 65},
39 .e = {24, 27, 26, 25, 23, 20, 21, 22, 19, 16, 17, 18}
40},
41[RDr] = {
42 .c = {67, 64, 66, 65, 38, 37, 39, 36},
43 .e = {23, 20, 21, 22, 27, 24, 25, 26, 2, 3, 0, 1}
44},
45[RBr] = {
46 .c = {37, 38, 39, 36, 67, 64, 65, 66},
47 .e = {27, 24, 25, 26, 20, 23, 22, 21, 17, 18, 19, 16}
48},
49[LUr] = {
50 .c = {65, 66, 64, 67, 36, 39, 37, 38},
51 .e = {21, 22, 23, 20, 26, 25, 24, 27, 1, 0, 3, 2}
52},
53[LFr] = {
54 .c = {36, 39, 38, 37, 66, 65, 64, 67},
55 .e = {25, 26, 27, 24, 21, 22, 23, 20, 16, 19, 18, 17}
56},
57[LDr] = {
58 .c = {66, 65, 67, 64, 39, 36, 38, 37},
59 .e = {22, 21, 20, 23, 25, 26, 27, 24, 3, 2, 1, 0}
60},
61[LBr] = {
62 .c = {39, 36, 37, 38, 65, 66, 67, 64},
63 .e = {26, 25, 24, 27, 22, 21, 20, 23, 18, 17, 16, 19}
64},
65[FUr] = {
66 .c = {68, 70, 69, 71, 32, 34, 33, 35},
67 .e = {16, 19, 18, 17, 9, 8, 11, 10, 5, 4, 7, 6}
68},
69[FRr] = {
70 .c = {32, 34, 35, 33, 70, 68, 69, 71},
71 .e = {8, 9, 10, 11, 16, 19, 18, 17, 20, 23, 22, 21}
72},
73[FDr] = {
74 .c = {70, 68, 71, 69, 34, 32, 35, 33},
75 .e = {19, 16, 17, 18, 8, 9, 10, 11, 7, 6, 5, 4}
76},
77[FLr] = {
78 .c = {34, 32, 33, 35, 68, 70, 71, 69},
79 .e = {9, 8, 11, 10, 19, 16, 17, 18, 22, 21, 20, 23}
80},
81[BUr] = {
82 .c = {69, 71, 68, 70, 33, 35, 32, 34},
83 .e = {17, 18, 19, 16, 11, 10, 9, 8, 4, 5, 6, 7}
84},
85[BRr] = {
86 .c = {35, 33, 32, 34, 69, 71, 70, 68},
87 .e = {11, 10, 9, 8, 18, 17, 16, 19, 23, 20, 21, 22}
88},
89[BDr] = {
90 .c = {71, 69, 70, 68, 35, 33, 34, 32},
91 .e = {18, 17, 16, 19, 10, 11, 8, 9, 6, 7, 4, 5}
92},
93[BLr] = {
94 .c = {33, 35, 34, 32, 71, 69, 68, 70},
95 .e = {10, 11, 8, 9, 17, 18, 19, 16, 21, 22, 23, 20}
96},
97[UFm] = {
98 .c = {4, 5, 6, 7, 0, 1, 2, 3},
99 .e = {0, 1, 2, 3, 5, 4, 7, 6, 9, 8, 11, 10}
100},
101[ULm] = {
102 .c = {0, 1, 3, 2, 5, 4, 6, 7},
103 .e = {4, 5, 6, 7, 0, 1, 2, 3, 24, 27, 26, 25}
104},
105[UBm] = {
106 .c = {5, 4, 7, 6, 1, 0, 3, 2},
107 .e = {1, 0, 3, 2, 4, 5, 6, 7, 11, 10, 9, 8}
108},
109[URm] = {
110 .c = {1, 0, 2, 3, 4, 5, 7, 6},
111 .e = {5, 4, 7, 6, 1, 0, 3, 2, 26, 25, 24, 27}
112},
113[DFm] = {
114 .c = {6, 7, 4, 5, 2, 3, 0, 1},
115 .e = {3, 2, 1, 0, 7, 6, 5, 4, 8, 9, 10, 11}
116},
117[DLm] = {
118 .c = {3, 2, 0, 1, 6, 7, 5, 4},
119 .e = {7, 6, 5, 4, 2, 3, 0, 1, 27, 24, 25, 26}
120},
121[DBm] = {
122 .c = {7, 6, 5, 4, 3, 2, 1, 0},
123 .e = {2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9}
124},
125[DRm] = {
126 .c = {2, 3, 1, 0, 7, 6, 4, 5},
127 .e = {6, 7, 4, 5, 3, 2, 1, 0, 25, 26, 27, 24}
128},
129[RUm] = {
130 .c = {68, 71, 69, 70, 33, 34, 32, 35},
131 .e = {21, 22, 23, 20, 25, 26, 27, 24, 0, 1, 2, 3}
132},
133[RFm] = {
134 .c = {34, 33, 32, 35, 68, 71, 70, 69},
135 .e = {25, 26, 27, 24, 22, 21, 20, 23, 19, 16, 17, 18}
136},
137[RDm] = {
138 .c = {71, 68, 70, 69, 34, 33, 35, 32},
139 .e = {22, 21, 20, 23, 26, 25, 24, 27, 2, 3, 0, 1}
140},
141[RBm] = {
142 .c = {33, 34, 35, 32, 71, 68, 69, 70},
143 .e = {26, 25, 24, 27, 21, 22, 23, 20, 17, 18, 19, 16}
144},
145[LUm] = {
146 .c = {69, 70, 68, 71, 32, 35, 33, 34},
147 .e = {20, 23, 22, 21, 27, 24, 25, 26, 1, 0, 3, 2}
148},
149[LFm] = {
150 .c = {32, 35, 34, 33, 70, 69, 68, 71},
151 .e = {24, 27, 26, 25, 20, 23, 22, 21, 16, 19, 18, 17}
152},
153[LDm] = {
154 .c = {70, 69, 71, 68, 35, 32, 34, 33},
155 .e = {23, 20, 21, 22, 24, 27, 26, 25, 3, 2, 1, 0}
156},
157[LBm] = {
158 .c = {35, 32, 33, 34, 69, 70, 71, 68},
159 .e = {27, 24, 25, 26, 23, 20, 21, 22, 18, 17, 16, 19}
160},
161[FUm] = {
162 .c = {64, 66, 65, 67, 36, 38, 37, 39},
163 .e = {16, 19, 18, 17, 8, 9, 10, 11, 4, 5, 6, 7}
164},
165[FRm] = {
166 .c = {36, 38, 39, 37, 66, 64, 65, 67},
167 .e = {9, 8, 11, 10, 16, 19, 18, 17, 21, 22, 23, 20}
168},
169[FDm] = {
170 .c = {66, 64, 67, 65, 38, 36, 39, 37},
171 .e = {19, 16, 17, 18, 9, 8, 11, 10, 6, 7, 4, 5}
172},
173[FLm] = {
174 .c = {38, 36, 37, 39, 64, 66, 67, 65},
175 .e = {8, 9, 10, 11, 19, 16, 17, 18, 23, 20, 21, 22}
176},
177[BUm] = {
178 .c = {65, 67, 64, 66, 37, 39, 36, 38},
179 .e = {17, 18, 19, 16, 10, 11, 8, 9, 5, 4, 7, 6}
180},
181[BRm] = {
182 .c = {39, 37, 36, 38, 65, 67, 66, 64},
183 .e = {10, 11, 8, 9, 18, 17, 16, 19, 22, 21, 20, 23}
184},
185[BDm] = {
186 .c = {67, 65, 66, 64, 39, 37, 38, 36},
187 .e = {18, 17, 16, 19, 11, 10, 9, 8, 7, 6, 5, 4}
188},
189[BLm] = {
190 .c = {37, 39, 38, 36, 67, 65, 64, 66},
191 .e = {11, 10, 9, 8, 17, 18, 19, 16, 20, 23, 22, 21}
192},

Generated with cgit - Back to sebastiano.tronto.net