aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md9
-rw-r--r--benchmark/bench.c8
-rw-r--r--src/_base_arr.c30
-rw-r--r--src/_base_avx2.c28
-rw-r--r--src/_constants.c4
-rw-r--r--src/_move_logic_avx2.c7
-rw-r--r--src/cube.c128
-rw-r--r--src/cube.h28
-rw-r--r--test/00_basic/basic_tests.c12
-rw-r--r--test/020_move/000_nomove_solved.in (renamed from test/02_move/000_nomove_solved.in)0
-rw-r--r--test/020_move/000_nomove_solved.out (renamed from test/02_move/000_nomove_solved.out)0
-rw-r--r--test/020_move/001_nomove_scrambled.in (renamed from test/02_move/001_nomove_scrambled.in)0
-rw-r--r--test/020_move/001_nomove_scrambled.out (renamed from test/02_move/001_nomove_scrambled.out)0
-rw-r--r--test/020_move/010_U_solved.in (renamed from test/02_move/010_U_solved.in)0
-rw-r--r--test/020_move/010_U_solved.out (renamed from test/02_move/010_U_solved.out)0
-rw-r--r--test/020_move/011_U_scrambled.in (renamed from test/02_move/011_U_scrambled.in)0
-rw-r--r--test/020_move/011_U_scrambled.out (renamed from test/02_move/011_U_scrambled.out)0
-rw-r--r--test/020_move/012_U_inverse.in (renamed from test/02_move/012_U_inverse.in)0
-rw-r--r--test/020_move/012_U_inverse.out (renamed from test/02_move/012_U_inverse.out)0
-rw-r--r--test/020_move/020_U2_solved.in (renamed from test/02_move/020_U2_solved.in)0
-rw-r--r--test/020_move/020_U2_solved.out (renamed from test/02_move/020_U2_solved.out)0
-rw-r--r--test/020_move/021_U2_scrambled.in (renamed from test/02_move/021_U2_scrambled.in)0
-rw-r--r--test/020_move/021_U2_scrambled.out (renamed from test/02_move/021_U2_scrambled.out)0
-rw-r--r--test/020_move/022_U2_inverse.in (renamed from test/02_move/022_U2_inverse.in)0
-rw-r--r--test/020_move/022_U2_inverse.out (renamed from test/02_move/022_U2_inverse.out)0
-rw-r--r--test/020_move/030_U3_solved.in (renamed from test/02_move/030_U3_solved.in)0
-rw-r--r--test/020_move/030_U3_solved.out (renamed from test/02_move/030_U3_solved.out)0
-rw-r--r--test/020_move/031_U3_inverse.in (renamed from test/02_move/031_U3_inverse.in)0
-rw-r--r--test/020_move/031_U3_inverse.out (renamed from test/02_move/031_U3_inverse.out)0
-rw-r--r--test/020_move/032_U3_scrambled.in (renamed from test/02_move/032_U3_scrambled.in)0
-rw-r--r--test/020_move/032_U3_scrambled.out (renamed from test/02_move/032_U3_scrambled.out)0
-rw-r--r--test/020_move/033_U3_with_prime.in (renamed from test/02_move/033_U3_with_prime.in)0
-rw-r--r--test/020_move/033_U3_with_prime.out (renamed from test/02_move/033_U3_with_prime.out)0
-rw-r--r--test/020_move/040_D_solved.in (renamed from test/02_move/040_D_solved.in)0
-rw-r--r--test/020_move/040_D_solved.out (renamed from test/02_move/040_D_solved.out)0
-rw-r--r--test/020_move/050_D2_solved.in (renamed from test/02_move/050_D2_solved.in)0
-rw-r--r--test/020_move/050_D2_solved.out (renamed from test/02_move/050_D2_solved.out)0
-rw-r--r--test/020_move/060_D3_solved.in (renamed from test/02_move/060_D3_solved.in)0
-rw-r--r--test/020_move/060_D3_solved.out (renamed from test/02_move/060_D3_solved.out)0
-rw-r--r--test/020_move/070_R_solved.in (renamed from test/02_move/070_R_solved.in)0
-rw-r--r--test/020_move/070_R_solved.out (renamed from test/02_move/070_R_solved.out)0
-rw-r--r--test/020_move/071_R_scrambled.in (renamed from test/02_move/071_R_scrambled.in)0
-rw-r--r--test/020_move/071_R_scrambled.out (renamed from test/02_move/071_R_scrambled.out)0
-rw-r--r--test/020_move/080_R2_solved.in (renamed from test/02_move/080_R2_solved.in)0
-rw-r--r--test/020_move/080_R2_solved.out (renamed from test/02_move/080_R2_solved.out)0
-rw-r--r--test/020_move/090_R3_solved.in (renamed from test/02_move/090_R3_solved.in)0
-rw-r--r--test/020_move/090_R3_solved.out (renamed from test/02_move/090_R3_solved.out)0
-rw-r--r--test/020_move/100_L_solved.in (renamed from test/02_move/100_L_solved.in)0
-rw-r--r--test/020_move/100_L_solved.out (renamed from test/02_move/100_L_solved.out)0
-rw-r--r--test/020_move/110_L2_solved.in (renamed from test/02_move/110_L2_solved.in)0
-rw-r--r--test/020_move/110_L2_solved.out (renamed from test/02_move/110_L2_solved.out)0
-rw-r--r--test/020_move/120_L3_solved.in (renamed from test/02_move/120_L3_solved.in)0
-rw-r--r--test/020_move/120_L3_solved.out (renamed from test/02_move/120_L3_solved.out)0
-rw-r--r--test/020_move/130_F_solved.in (renamed from test/02_move/130_F_solved.in)0
-rw-r--r--test/020_move/130_F_solved.out (renamed from test/02_move/130_F_solved.out)0
-rw-r--r--test/020_move/132_F_scrambled.in (renamed from test/02_move/132_F_scrambled.in)0
-rw-r--r--test/020_move/132_F_scrambled.out (renamed from test/02_move/132_F_scrambled.out)0
-rw-r--r--test/020_move/133_F_scrambled_2.in (renamed from test/02_move/133_F_scrambled_2.in)0
-rw-r--r--test/020_move/133_F_scrambled_2.out (renamed from test/02_move/133_F_scrambled_2.out)0
-rw-r--r--test/020_move/140_F2_solved.in (renamed from test/02_move/140_F2_solved.in)0
-rw-r--r--test/020_move/140_F2_solved.out (renamed from test/02_move/140_F2_solved.out)0
-rw-r--r--test/020_move/150_F3_solved.in (renamed from test/02_move/150_F3_solved.in)0
-rw-r--r--test/020_move/150_F3_solved.out (renamed from test/02_move/150_F3_solved.out)0
-rw-r--r--test/020_move/160_B_solved.in (renamed from test/02_move/160_B_solved.in)0
-rw-r--r--test/020_move/160_B_solved.out (renamed from test/02_move/160_B_solved.out)0
-rw-r--r--test/020_move/170_B2_solved.in (renamed from test/02_move/170_B2_solved.in)0
-rw-r--r--test/020_move/170_B2_solved.out (renamed from test/02_move/170_B2_solved.out)0
-rw-r--r--test/020_move/180_B3_solved.in (renamed from test/02_move/180_B3_solved.in)0
-rw-r--r--test/020_move/180_B3_solved.out (renamed from test/02_move/180_B3_solved.out)0
-rw-r--r--test/020_move/200_scramble_solved.in (renamed from test/02_move/200_scramble_solved.in)0
-rw-r--r--test/020_move/200_scramble_solved.out (renamed from test/02_move/200_scramble_solved.out)0
-rw-r--r--test/020_move/201_solution_scrambled.in (renamed from test/02_move/201_solution_scrambled.in)0
-rw-r--r--test/020_move/201_solution_scrambled.out (renamed from test/02_move/201_solution_scrambled.out)0
-rw-r--r--test/020_move/move_tests.c (renamed from test/02_move/move_tests.c)0
-rw-r--r--test/030_inverse_cube/00_solved.in (renamed from test/03_inverse/00_solved.in)0
-rw-r--r--test/030_inverse_cube/00_solved.out (renamed from test/03_inverse/00_solved.out)0
-rw-r--r--test/030_inverse_cube/01_scrambled.in (renamed from test/03_inverse/01_scrambled.in)0
-rw-r--r--test/030_inverse_cube/01_scrambled.out (renamed from test/03_inverse/01_scrambled.out)0
-rw-r--r--test/030_inverse_cube/inverse_tests.c (renamed from test/03_inverse/inverse_tests.c)0
-rw-r--r--test/040_compose/00_solved_solved.in (renamed from test/04_compose/00_solved_solved.in)0
-rw-r--r--test/040_compose/00_solved_solved.out (renamed from test/04_compose/00_solved_solved.out)0
-rw-r--r--test/040_compose/01_solved_U.in (renamed from test/04_compose/01_solved_U.in)0
-rw-r--r--test/040_compose/01_solved_U.out (renamed from test/04_compose/01_solved_U.out)0
-rw-r--r--test/040_compose/02_solved_scrambled.in (renamed from test/04_compose/02_solved_scrambled.in)0
-rw-r--r--test/040_compose/02_solved_scrambled.out (renamed from test/04_compose/02_solved_scrambled.out)0
-rw-r--r--test/040_compose/11_U_solved.in (renamed from test/04_compose/11_U_solved.in)0
-rw-r--r--test/040_compose/11_U_solved.out (renamed from test/04_compose/11_U_solved.out)0
-rw-r--r--test/040_compose/12_scrambled_solved.in (renamed from test/04_compose/12_scrambled_solved.in)0
-rw-r--r--test/040_compose/12_scrambled_solved.out (renamed from test/04_compose/12_scrambled_solved.out)0
-rw-r--r--test/040_compose/20_U_U.in (renamed from test/04_compose/20_U_U.in)0
-rw-r--r--test/040_compose/20_U_U.out (renamed from test/04_compose/20_U_U.out)0
-rw-r--r--test/040_compose/21_U_Uinverse.in (renamed from test/04_compose/21_U_Uinverse.in)0
-rw-r--r--test/040_compose/21_U_Uinverse.out (renamed from test/04_compose/21_U_Uinverse.out)0
-rw-r--r--test/040_compose/22_F_Finverse.in (renamed from test/04_compose/22_F_Finverse.in)0
-rw-r--r--test/040_compose/22_F_Finverse.out (renamed from test/04_compose/22_F_Finverse.out)0
-rw-r--r--test/040_compose/23_F2_F2.in (renamed from test/04_compose/23_F2_F2.in)0
-rw-r--r--test/040_compose/23_F2_F2.out (renamed from test/04_compose/23_F2_F2.out)0
-rw-r--r--test/040_compose/24_U_F.in (renamed from test/04_compose/24_U_F.in)0
-rw-r--r--test/040_compose/24_U_F.out (renamed from test/04_compose/24_U_F.out)0
-rw-r--r--test/040_compose/25_F_R.in (renamed from test/04_compose/25_F_R.in)0
-rw-r--r--test/040_compose/25_F_R.out (renamed from test/04_compose/25_F_R.out)0
-rw-r--r--test/040_compose/30_scrambled_inverse.in (renamed from test/04_compose/30_scrambled_inverse.in)0
-rw-r--r--test/040_compose/30_scrambled_inverse.out (renamed from test/04_compose/30_scrambled_inverse.out)0
-rw-r--r--test/040_compose/31_scrambled_scrambled.in (renamed from test/04_compose/31_scrambled_scrambled.in)0
-rw-r--r--test/040_compose/31_scrambled_scrambled.out (renamed from test/04_compose/31_scrambled_scrambled.out)0
-rw-r--r--test/040_compose/compose_tests.c (renamed from test/04_compose/compose_tests.c)0
-rw-r--r--test/050_transform/000_solved_UFr.in (renamed from test/05_transform/000_solved_UFr.in)0
-rw-r--r--test/050_transform/000_solved_UFr.out (renamed from test/05_transform/000_solved_UFr.out)0
-rw-r--r--test/050_transform/001_solved_BLm.in (renamed from test/05_transform/001_solved_BLm.in)0
-rw-r--r--test/050_transform/001_solved_BLm.out (renamed from test/05_transform/001_solved_BLm.out)0
-rw-r--r--test/050_transform/100_UFr_U.in (renamed from test/05_transform/100_UFr_U.in)0
-rw-r--r--test/050_transform/100_UFr_U.out (renamed from test/05_transform/100_UFr_U.out)0
-rw-r--r--test/050_transform/101_UFm_U.in (renamed from test/05_transform/101_UFm_U.in)0
-rw-r--r--test/050_transform/101_UFm_U.out (renamed from test/05_transform/101_UFm_U.out)0
-rw-r--r--test/050_transform/102_UFr_R.in (renamed from test/05_transform/102_UFr_R.in)0
-rw-r--r--test/050_transform/102_UFr_R.out (renamed from test/05_transform/102_UFr_R.out)0
-rw-r--r--test/050_transform/103_UFm_R.in (renamed from test/05_transform/103_UFm_R.in)0
-rw-r--r--test/050_transform/103_UFm_R.out (renamed from test/05_transform/103_UFm_R.out)0
-rw-r--r--test/050_transform/104_UFr_F.in (renamed from test/05_transform/104_UFr_F.in)0
-rw-r--r--test/050_transform/104_UFr_F.out (renamed from test/05_transform/104_UFr_F.out)0
-rw-r--r--test/050_transform/105_UFm_F.in (renamed from test/05_transform/105_UFm_F.in)0
-rw-r--r--test/050_transform/105_UFm_F.out (renamed from test/05_transform/105_UFm_F.out)0
-rw-r--r--test/050_transform/106_ULr_U.in (renamed from test/05_transform/106_ULr_U.in)0
-rw-r--r--test/050_transform/106_ULr_U.out (renamed from test/05_transform/106_ULr_U.out)0
-rw-r--r--test/050_transform/107_ULm_U.in (renamed from test/05_transform/107_ULm_U.in)0
-rw-r--r--test/050_transform/107_ULm_U.out (renamed from test/05_transform/107_ULm_U.out)0
-rw-r--r--test/050_transform/108_ULr_R.in (renamed from test/05_transform/108_ULr_R.in)0
-rw-r--r--test/050_transform/108_ULr_R.out (renamed from test/05_transform/108_ULr_R.out)0
-rw-r--r--test/050_transform/109_ULm_R.in (renamed from test/05_transform/109_ULm_R.in)0
-rw-r--r--test/050_transform/109_ULm_R.out (renamed from test/05_transform/109_ULm_R.out)0
-rw-r--r--test/050_transform/110_ULr_F.in (renamed from test/05_transform/110_ULr_F.in)0
-rw-r--r--test/050_transform/110_ULr_F.out (renamed from test/05_transform/110_ULr_F.out)0
-rw-r--r--test/050_transform/111_ULm_F.in (renamed from test/05_transform/111_ULm_F.in)0
-rw-r--r--test/050_transform/111_ULm_F.out (renamed from test/05_transform/111_ULm_F.out)0
-rw-r--r--test/050_transform/112_UBr_U.in (renamed from test/05_transform/112_UBr_U.in)0
-rw-r--r--test/050_transform/112_UBr_U.out (renamed from test/05_transform/112_UBr_U.out)0
-rw-r--r--test/050_transform/113_UBm_U.in (renamed from test/05_transform/113_UBm_U.in)0
-rw-r--r--test/050_transform/113_UBm_U.out (renamed from test/05_transform/113_UBm_U.out)0
-rw-r--r--test/050_transform/114_UBr_R.in (renamed from test/05_transform/114_UBr_R.in)0
-rw-r--r--test/050_transform/114_UBr_R.out (renamed from test/05_transform/114_UBr_R.out)0
-rw-r--r--test/050_transform/115_UBm_R.in (renamed from test/05_transform/115_UBm_R.in)0
-rw-r--r--test/050_transform/115_UBm_R.out (renamed from test/05_transform/115_UBm_R.out)0
-rw-r--r--test/050_transform/116_UBr_F.in (renamed from test/05_transform/116_UBr_F.in)0
-rw-r--r--test/050_transform/116_UBr_F.out (renamed from test/05_transform/116_UBr_F.out)0
-rw-r--r--test/050_transform/117_UBm_F.in (renamed from test/05_transform/117_UBm_F.in)0
-rw-r--r--test/050_transform/117_UBm_F.out (renamed from test/05_transform/117_UBm_F.out)0
-rw-r--r--test/050_transform/118_URr_U.in (renamed from test/05_transform/118_URr_U.in)0
-rw-r--r--test/050_transform/118_URr_U.out (renamed from test/05_transform/118_URr_U.out)0
-rw-r--r--test/050_transform/119_URm_U.in (renamed from test/05_transform/119_URm_U.in)0
-rw-r--r--test/050_transform/119_URm_U.out (renamed from test/05_transform/119_URm_U.out)0
-rw-r--r--test/050_transform/120_URr_R.in (renamed from test/05_transform/120_URr_R.in)0
-rw-r--r--test/050_transform/120_URr_R.out (renamed from test/05_transform/120_URr_R.out)0
-rw-r--r--test/050_transform/121_URm_R.in (renamed from test/05_transform/121_URm_R.in)0
-rw-r--r--test/050_transform/121_URm_R.out (renamed from test/05_transform/121_URm_R.out)0
-rw-r--r--test/050_transform/122_URr_F.in (renamed from test/05_transform/122_URr_F.in)0
-rw-r--r--test/050_transform/122_URr_F.out (renamed from test/05_transform/122_URr_F.out)0
-rw-r--r--test/050_transform/123_URm_F.in (renamed from test/05_transform/123_URm_F.in)0
-rw-r--r--test/050_transform/123_URm_F.out (renamed from test/05_transform/123_URm_F.out)0
-rw-r--r--test/050_transform/124_DFr_U.in (renamed from test/05_transform/124_DFr_U.in)0
-rw-r--r--test/050_transform/124_DFr_U.out (renamed from test/05_transform/124_DFr_U.out)0
-rw-r--r--test/050_transform/125_DFm_U.in (renamed from test/05_transform/125_DFm_U.in)0
-rw-r--r--test/050_transform/125_DFm_U.out (renamed from test/05_transform/125_DFm_U.out)0
-rw-r--r--test/050_transform/126_DFr_R.in (renamed from test/05_transform/126_DFr_R.in)0
-rw-r--r--test/050_transform/126_DFr_R.out (renamed from test/05_transform/126_DFr_R.out)0
-rw-r--r--test/050_transform/127_DFm_R.in (renamed from test/05_transform/127_DFm_R.in)0
-rw-r--r--test/050_transform/127_DFm_R.out (renamed from test/05_transform/127_DFm_R.out)0
-rw-r--r--test/050_transform/128_DFr_F.in (renamed from test/05_transform/128_DFr_F.in)0
-rw-r--r--test/050_transform/128_DFr_F.out (renamed from test/05_transform/128_DFr_F.out)0
-rw-r--r--test/050_transform/129_DFm_F.in (renamed from test/05_transform/129_DFm_F.in)0
-rw-r--r--test/050_transform/129_DFm_F.out (renamed from test/05_transform/129_DFm_F.out)0
-rw-r--r--test/050_transform/130_DLr_U.in (renamed from test/05_transform/130_DLr_U.in)0
-rw-r--r--test/050_transform/130_DLr_U.out (renamed from test/05_transform/130_DLr_U.out)0
-rw-r--r--test/050_transform/131_DLm_U.in (renamed from test/05_transform/131_DLm_U.in)0
-rw-r--r--test/050_transform/131_DLm_U.out (renamed from test/05_transform/131_DLm_U.out)0
-rw-r--r--test/050_transform/132_DLr_R.in (renamed from test/05_transform/132_DLr_R.in)0
-rw-r--r--test/050_transform/132_DLr_R.out (renamed from test/05_transform/132_DLr_R.out)0
-rw-r--r--test/050_transform/133_DLm_R.in (renamed from test/05_transform/133_DLm_R.in)0
-rw-r--r--test/050_transform/133_DLm_R.out (renamed from test/05_transform/133_DLm_R.out)0
-rw-r--r--test/050_transform/134_DLr_F.in (renamed from test/05_transform/134_DLr_F.in)0
-rw-r--r--test/050_transform/134_DLr_F.out (renamed from test/05_transform/134_DLr_F.out)0
-rw-r--r--test/050_transform/135_DLm_F.in (renamed from test/05_transform/135_DLm_F.in)0
-rw-r--r--test/050_transform/135_DLm_F.out (renamed from test/05_transform/135_DLm_F.out)0
-rw-r--r--test/050_transform/136_DBr_U.in (renamed from test/05_transform/136_DBr_U.in)0
-rw-r--r--test/050_transform/136_DBr_U.out (renamed from test/05_transform/136_DBr_U.out)0
-rw-r--r--test/050_transform/137_DBm_U.in (renamed from test/05_transform/137_DBm_U.in)0
-rw-r--r--test/050_transform/137_DBm_U.out (renamed from test/05_transform/137_DBm_U.out)0
-rw-r--r--test/050_transform/138_DBr_R.in (renamed from test/05_transform/138_DBr_R.in)0
-rw-r--r--test/050_transform/138_DBr_R.out (renamed from test/05_transform/138_DBr_R.out)0
-rw-r--r--test/050_transform/139_DBm_R.in (renamed from test/05_transform/139_DBm_R.in)0
-rw-r--r--test/050_transform/139_DBm_R.out (renamed from test/05_transform/139_DBm_R.out)0
-rw-r--r--test/050_transform/140_DBr_F.in (renamed from test/05_transform/140_DBr_F.in)0
-rw-r--r--test/050_transform/140_DBr_F.out (renamed from test/05_transform/140_DBr_F.out)0
-rw-r--r--test/050_transform/141_DBm_F.in (renamed from test/05_transform/141_DBm_F.in)0
-rw-r--r--test/050_transform/141_DBm_F.out (renamed from test/05_transform/141_DBm_F.out)0
-rw-r--r--test/050_transform/142_DRr_U.in (renamed from test/05_transform/142_DRr_U.in)0
-rw-r--r--test/050_transform/142_DRr_U.out (renamed from test/05_transform/142_DRr_U.out)0
-rw-r--r--test/050_transform/143_DRm_U.in (renamed from test/05_transform/143_DRm_U.in)0
-rw-r--r--test/050_transform/143_DRm_U.out (renamed from test/05_transform/143_DRm_U.out)0
-rw-r--r--test/050_transform/144_DRr_R.in (renamed from test/05_transform/144_DRr_R.in)0
-rw-r--r--test/050_transform/144_DRr_R.out (renamed from test/05_transform/144_DRr_R.out)0
-rw-r--r--test/050_transform/145_DRm_R.in (renamed from test/05_transform/145_DRm_R.in)0
-rw-r--r--test/050_transform/145_DRm_R.out (renamed from test/05_transform/145_DRm_R.out)0
-rw-r--r--test/050_transform/146_DRr_F.in (renamed from test/05_transform/146_DRr_F.in)0
-rw-r--r--test/050_transform/146_DRr_F.out (renamed from test/05_transform/146_DRr_F.out)0
-rw-r--r--test/050_transform/147_DRm_F.in (renamed from test/05_transform/147_DRm_F.in)0
-rw-r--r--test/050_transform/147_DRm_F.out (renamed from test/05_transform/147_DRm_F.out)0
-rw-r--r--test/050_transform/148_RUr_U.in (renamed from test/05_transform/148_RUr_U.in)0
-rw-r--r--test/050_transform/148_RUr_U.out (renamed from test/05_transform/148_RUr_U.out)0
-rw-r--r--test/050_transform/149_RUm_U.in (renamed from test/05_transform/149_RUm_U.in)0
-rw-r--r--test/050_transform/149_RUm_U.out (renamed from test/05_transform/149_RUm_U.out)0
-rw-r--r--test/050_transform/150_RUr_R.in (renamed from test/05_transform/150_RUr_R.in)0
-rw-r--r--test/050_transform/150_RUr_R.out (renamed from test/05_transform/150_RUr_R.out)0
-rw-r--r--test/050_transform/151_RUm_R.in (renamed from test/05_transform/151_RUm_R.in)0
-rw-r--r--test/050_transform/151_RUm_R.out (renamed from test/05_transform/151_RUm_R.out)0
-rw-r--r--test/050_transform/152_RUr_F.in (renamed from test/05_transform/152_RUr_F.in)0
-rw-r--r--test/050_transform/152_RUr_F.out (renamed from test/05_transform/152_RUr_F.out)0
-rw-r--r--test/050_transform/153_RUm_F.in (renamed from test/05_transform/153_RUm_F.in)0
-rw-r--r--test/050_transform/153_RUm_F.out (renamed from test/05_transform/153_RUm_F.out)0
-rw-r--r--test/050_transform/154_RFr_U.in (renamed from test/05_transform/154_RFr_U.in)0
-rw-r--r--test/050_transform/154_RFr_U.out (renamed from test/05_transform/154_RFr_U.out)0
-rw-r--r--test/050_transform/155_RFm_U.in (renamed from test/05_transform/155_RFm_U.in)0
-rw-r--r--test/050_transform/155_RFm_U.out (renamed from test/05_transform/155_RFm_U.out)0
-rw-r--r--test/050_transform/156_RFr_R.in (renamed from test/05_transform/156_RFr_R.in)0
-rw-r--r--test/050_transform/156_RFr_R.out (renamed from test/05_transform/156_RFr_R.out)0
-rw-r--r--test/050_transform/157_RFm_R.in (renamed from test/05_transform/157_RFm_R.in)0
-rw-r--r--test/050_transform/157_RFm_R.out (renamed from test/05_transform/157_RFm_R.out)0
-rw-r--r--test/050_transform/158_RFr_F.in (renamed from test/05_transform/158_RFr_F.in)0
-rw-r--r--test/050_transform/158_RFr_F.out (renamed from test/05_transform/158_RFr_F.out)0
-rw-r--r--test/050_transform/159_RFm_F.in (renamed from test/05_transform/159_RFm_F.in)0
-rw-r--r--test/050_transform/159_RFm_F.out (renamed from test/05_transform/159_RFm_F.out)0
-rw-r--r--test/050_transform/160_RDr_U.in (renamed from test/05_transform/160_RDr_U.in)0
-rw-r--r--test/050_transform/160_RDr_U.out (renamed from test/05_transform/160_RDr_U.out)0
-rw-r--r--test/050_transform/161_RDm_U.in (renamed from test/05_transform/161_RDm_U.in)0
-rw-r--r--test/050_transform/161_RDm_U.out (renamed from test/05_transform/161_RDm_U.out)0
-rw-r--r--test/050_transform/162_RDr_R.in (renamed from test/05_transform/162_RDr_R.in)0
-rw-r--r--test/050_transform/162_RDr_R.out (renamed from test/05_transform/162_RDr_R.out)0
-rw-r--r--test/050_transform/163_RDm_R.in (renamed from test/05_transform/163_RDm_R.in)0
-rw-r--r--test/050_transform/163_RDm_R.out (renamed from test/05_transform/163_RDm_R.out)0
-rw-r--r--test/050_transform/164_RDr_F.in (renamed from test/05_transform/164_RDr_F.in)0
-rw-r--r--test/050_transform/164_RDr_F.out (renamed from test/05_transform/164_RDr_F.out)0
-rw-r--r--test/050_transform/165_RDm_F.in (renamed from test/05_transform/165_RDm_F.in)0
-rw-r--r--test/050_transform/165_RDm_F.out (renamed from test/05_transform/165_RDm_F.out)0
-rw-r--r--test/050_transform/166_RBr_U.in (renamed from test/05_transform/166_RBr_U.in)0
-rw-r--r--test/050_transform/166_RBr_U.out (renamed from test/05_transform/166_RBr_U.out)0
-rw-r--r--test/050_transform/167_RBm_U.in (renamed from test/05_transform/167_RBm_U.in)0
-rw-r--r--test/050_transform/167_RBm_U.out (renamed from test/05_transform/167_RBm_U.out)0
-rw-r--r--test/050_transform/168_RBr_R.in (renamed from test/05_transform/168_RBr_R.in)0
-rw-r--r--test/050_transform/168_RBr_R.out (renamed from test/05_transform/168_RBr_R.out)0
-rw-r--r--test/050_transform/169_RBm_R.in (renamed from test/05_transform/169_RBm_R.in)0
-rw-r--r--test/050_transform/169_RBm_R.out (renamed from test/05_transform/169_RBm_R.out)0
-rw-r--r--test/050_transform/170_RBr_F.in (renamed from test/05_transform/170_RBr_F.in)0
-rw-r--r--test/050_transform/170_RBr_F.out (renamed from test/05_transform/170_RBr_F.out)0
-rw-r--r--test/050_transform/171_RBm_F.in (renamed from test/05_transform/171_RBm_F.in)0
-rw-r--r--test/050_transform/171_RBm_F.out (renamed from test/05_transform/171_RBm_F.out)0
-rw-r--r--test/050_transform/172_LUr_U.in (renamed from test/05_transform/172_LUr_U.in)0
-rw-r--r--test/050_transform/172_LUr_U.out (renamed from test/05_transform/172_LUr_U.out)0
-rw-r--r--test/050_transform/173_LUm_U.in (renamed from test/05_transform/173_LUm_U.in)0
-rw-r--r--test/050_transform/173_LUm_U.out (renamed from test/05_transform/173_LUm_U.out)0
-rw-r--r--test/050_transform/174_LUr_R.in (renamed from test/05_transform/174_LUr_R.in)0
-rw-r--r--test/050_transform/174_LUr_R.out (renamed from test/05_transform/174_LUr_R.out)0
-rw-r--r--test/050_transform/175_LUm_R.in (renamed from test/05_transform/175_LUm_R.in)0
-rw-r--r--test/050_transform/175_LUm_R.out (renamed from test/05_transform/175_LUm_R.out)0
-rw-r--r--test/050_transform/176_LUr_F.in (renamed from test/05_transform/176_LUr_F.in)0
-rw-r--r--test/050_transform/176_LUr_F.out (renamed from test/05_transform/176_LUr_F.out)0
-rw-r--r--test/050_transform/177_LUm_F.in (renamed from test/05_transform/177_LUm_F.in)0
-rw-r--r--test/050_transform/177_LUm_F.out (renamed from test/05_transform/177_LUm_F.out)0
-rw-r--r--test/050_transform/178_LFr_U.in (renamed from test/05_transform/178_LFr_U.in)0
-rw-r--r--test/050_transform/178_LFr_U.out (renamed from test/05_transform/178_LFr_U.out)0
-rw-r--r--test/050_transform/179_LFm_U.in (renamed from test/05_transform/179_LFm_U.in)0
-rw-r--r--test/050_transform/179_LFm_U.out (renamed from test/05_transform/179_LFm_U.out)0
-rw-r--r--test/050_transform/180_LFr_R.in (renamed from test/05_transform/180_LFr_R.in)0
-rw-r--r--test/050_transform/180_LFr_R.out (renamed from test/05_transform/180_LFr_R.out)0
-rw-r--r--test/050_transform/181_LFm_R.in (renamed from test/05_transform/181_LFm_R.in)0
-rw-r--r--test/050_transform/181_LFm_R.out (renamed from test/05_transform/181_LFm_R.out)0
-rw-r--r--test/050_transform/182_LFr_F.in (renamed from test/05_transform/182_LFr_F.in)0
-rw-r--r--test/050_transform/182_LFr_F.out (renamed from test/05_transform/182_LFr_F.out)0
-rw-r--r--test/050_transform/183_LFm_F.in (renamed from test/05_transform/183_LFm_F.in)0
-rw-r--r--test/050_transform/183_LFm_F.out (renamed from test/05_transform/183_LFm_F.out)0
-rw-r--r--test/050_transform/184_LDr_U.in (renamed from test/05_transform/184_LDr_U.in)0
-rw-r--r--test/050_transform/184_LDr_U.out (renamed from test/05_transform/184_LDr_U.out)0
-rw-r--r--test/050_transform/185_LDm_U.in (renamed from test/05_transform/185_LDm_U.in)0
-rw-r--r--test/050_transform/185_LDm_U.out (renamed from test/05_transform/185_LDm_U.out)0
-rw-r--r--test/050_transform/186_LDr_R.in (renamed from test/05_transform/186_LDr_R.in)0
-rw-r--r--test/050_transform/186_LDr_R.out (renamed from test/05_transform/186_LDr_R.out)0
-rw-r--r--test/050_transform/187_LDm_R.in (renamed from test/05_transform/187_LDm_R.in)0
-rw-r--r--test/050_transform/187_LDm_R.out (renamed from test/05_transform/187_LDm_R.out)0
-rw-r--r--test/050_transform/188_LDr_F.in (renamed from test/05_transform/188_LDr_F.in)0
-rw-r--r--test/050_transform/188_LDr_F.out (renamed from test/05_transform/188_LDr_F.out)0
-rw-r--r--test/050_transform/189_LDm_F.in (renamed from test/05_transform/189_LDm_F.in)0
-rw-r--r--test/050_transform/189_LDm_F.out (renamed from test/05_transform/189_LDm_F.out)0
-rw-r--r--test/050_transform/190_LBr_U.in (renamed from test/05_transform/190_LBr_U.in)0
-rw-r--r--test/050_transform/190_LBr_U.out (renamed from test/05_transform/190_LBr_U.out)0
-rw-r--r--test/050_transform/191_LBm_U.in (renamed from test/05_transform/191_LBm_U.in)0
-rw-r--r--test/050_transform/191_LBm_U.out (renamed from test/05_transform/191_LBm_U.out)0
-rw-r--r--test/050_transform/192_LBr_R.in (renamed from test/05_transform/192_LBr_R.in)0
-rw-r--r--test/050_transform/192_LBr_R.out (renamed from test/05_transform/192_LBr_R.out)0
-rw-r--r--test/050_transform/193_LBm_R.in (renamed from test/05_transform/193_LBm_R.in)0
-rw-r--r--test/050_transform/193_LBm_R.out (renamed from test/05_transform/193_LBm_R.out)0
-rw-r--r--test/050_transform/194_LBr_F.in (renamed from test/05_transform/194_LBr_F.in)0
-rw-r--r--test/050_transform/194_LBr_F.out (renamed from test/05_transform/194_LBr_F.out)0
-rw-r--r--test/050_transform/195_LBm_F.in (renamed from test/05_transform/195_LBm_F.in)0
-rw-r--r--test/050_transform/195_LBm_F.out (renamed from test/05_transform/195_LBm_F.out)0
-rw-r--r--test/050_transform/196_FUr_U.in (renamed from test/05_transform/196_FUr_U.in)0
-rw-r--r--test/050_transform/196_FUr_U.out (renamed from test/05_transform/196_FUr_U.out)0
-rw-r--r--test/050_transform/197_FUm_U.in (renamed from test/05_transform/197_FUm_U.in)0
-rw-r--r--test/050_transform/197_FUm_U.out (renamed from test/05_transform/197_FUm_U.out)0
-rw-r--r--test/050_transform/198_FUr_R.in (renamed from test/05_transform/198_FUr_R.in)0
-rw-r--r--test/050_transform/198_FUr_R.out (renamed from test/05_transform/198_FUr_R.out)0
-rw-r--r--test/050_transform/199_FUm_R.in (renamed from test/05_transform/199_FUm_R.in)0
-rw-r--r--test/050_transform/199_FUm_R.out (renamed from test/05_transform/199_FUm_R.out)0
-rw-r--r--test/050_transform/200_FUr_F.in (renamed from test/05_transform/200_FUr_F.in)0
-rw-r--r--test/050_transform/200_FUr_F.out (renamed from test/05_transform/200_FUr_F.out)0
-rw-r--r--test/050_transform/201_FUm_F.in (renamed from test/05_transform/201_FUm_F.in)0
-rw-r--r--test/050_transform/201_FUm_F.out (renamed from test/05_transform/201_FUm_F.out)0
-rw-r--r--test/050_transform/202_FRr_U.in (renamed from test/05_transform/202_FRr_U.in)0
-rw-r--r--test/050_transform/202_FRr_U.out (renamed from test/05_transform/202_FRr_U.out)0
-rw-r--r--test/050_transform/203_FRm_U.in (renamed from test/05_transform/203_FRm_U.in)0
-rw-r--r--test/050_transform/203_FRm_U.out (renamed from test/05_transform/203_FRm_U.out)0
-rw-r--r--test/050_transform/204_FRr_R.in (renamed from test/05_transform/204_FRr_R.in)0
-rw-r--r--test/050_transform/204_FRr_R.out (renamed from test/05_transform/204_FRr_R.out)0
-rw-r--r--test/050_transform/205_FRm_R.in (renamed from test/05_transform/205_FRm_R.in)0
-rw-r--r--test/050_transform/205_FRm_R.out (renamed from test/05_transform/205_FRm_R.out)0
-rw-r--r--test/050_transform/206_FRr_F.in (renamed from test/05_transform/206_FRr_F.in)0
-rw-r--r--test/050_transform/206_FRr_F.out (renamed from test/05_transform/206_FRr_F.out)0
-rw-r--r--test/050_transform/207_FRm_F.in (renamed from test/05_transform/207_FRm_F.in)0
-rw-r--r--test/050_transform/207_FRm_F.out (renamed from test/05_transform/207_FRm_F.out)0
-rw-r--r--test/050_transform/208_FDr_U.in (renamed from test/05_transform/208_FDr_U.in)0
-rw-r--r--test/050_transform/208_FDr_U.out (renamed from test/05_transform/208_FDr_U.out)0
-rw-r--r--test/050_transform/209_FDm_U.in (renamed from test/05_transform/209_FDm_U.in)0
-rw-r--r--test/050_transform/209_FDm_U.out (renamed from test/05_transform/209_FDm_U.out)0
-rw-r--r--test/050_transform/210_FDr_R.in (renamed from test/05_transform/210_FDr_R.in)0
-rw-r--r--test/050_transform/210_FDr_R.out (renamed from test/05_transform/210_FDr_R.out)0
-rw-r--r--test/050_transform/211_FDm_R.in (renamed from test/05_transform/211_FDm_R.in)0
-rw-r--r--test/050_transform/211_FDm_R.out (renamed from test/05_transform/211_FDm_R.out)0
-rw-r--r--test/050_transform/212_FDr_F.in (renamed from test/05_transform/212_FDr_F.in)0
-rw-r--r--test/050_transform/212_FDr_F.out (renamed from test/05_transform/212_FDr_F.out)0
-rw-r--r--test/050_transform/213_FDm_F.in (renamed from test/05_transform/213_FDm_F.in)0
-rw-r--r--test/050_transform/213_FDm_F.out (renamed from test/05_transform/213_FDm_F.out)0
-rw-r--r--test/050_transform/214_FLr_U.in (renamed from test/05_transform/214_FLr_U.in)0
-rw-r--r--test/050_transform/214_FLr_U.out (renamed from test/05_transform/214_FLr_U.out)0
-rw-r--r--test/050_transform/215_FLm_U.in (renamed from test/05_transform/215_FLm_U.in)0
-rw-r--r--test/050_transform/215_FLm_U.out (renamed from test/05_transform/215_FLm_U.out)0
-rw-r--r--test/050_transform/216_FLr_R.in (renamed from test/05_transform/216_FLr_R.in)0
-rw-r--r--test/050_transform/216_FLr_R.out (renamed from test/05_transform/216_FLr_R.out)0
-rw-r--r--test/050_transform/217_FLm_R.in (renamed from test/05_transform/217_FLm_R.in)0
-rw-r--r--test/050_transform/217_FLm_R.out (renamed from test/05_transform/217_FLm_R.out)0
-rw-r--r--test/050_transform/218_FLr_F.in (renamed from test/05_transform/218_FLr_F.in)0
-rw-r--r--test/050_transform/218_FLr_F.out (renamed from test/05_transform/218_FLr_F.out)0
-rw-r--r--test/050_transform/219_FLm_F.in (renamed from test/05_transform/219_FLm_F.in)0
-rw-r--r--test/050_transform/219_FLm_F.out (renamed from test/05_transform/219_FLm_F.out)0
-rw-r--r--test/050_transform/220_BUr_U.in (renamed from test/05_transform/220_BUr_U.in)0
-rw-r--r--test/050_transform/220_BUr_U.out (renamed from test/05_transform/220_BUr_U.out)0
-rw-r--r--test/050_transform/221_BUm_U.in (renamed from test/05_transform/221_BUm_U.in)0
-rw-r--r--test/050_transform/221_BUm_U.out (renamed from test/05_transform/221_BUm_U.out)0
-rw-r--r--test/050_transform/222_BUr_R.in (renamed from test/05_transform/222_BUr_R.in)0
-rw-r--r--test/050_transform/222_BUr_R.out (renamed from test/05_transform/222_BUr_R.out)0
-rw-r--r--test/050_transform/223_BUm_R.in (renamed from test/05_transform/223_BUm_R.in)0
-rw-r--r--test/050_transform/223_BUm_R.out (renamed from test/05_transform/223_BUm_R.out)0
-rw-r--r--test/050_transform/224_BUr_F.in (renamed from test/05_transform/224_BUr_F.in)0
-rw-r--r--test/050_transform/224_BUr_F.out (renamed from test/05_transform/224_BUr_F.out)0
-rw-r--r--test/050_transform/225_BUm_F.in (renamed from test/05_transform/225_BUm_F.in)0
-rw-r--r--test/050_transform/225_BUm_F.out (renamed from test/05_transform/225_BUm_F.out)0
-rw-r--r--test/050_transform/226_BRr_U.in (renamed from test/05_transform/226_BRr_U.in)0
-rw-r--r--test/050_transform/226_BRr_U.out (renamed from test/05_transform/226_BRr_U.out)0
-rw-r--r--test/050_transform/227_BRm_U.in (renamed from test/05_transform/227_BRm_U.in)0
-rw-r--r--test/050_transform/227_BRm_U.out (renamed from test/05_transform/227_BRm_U.out)0
-rw-r--r--test/050_transform/228_BRr_R.in (renamed from test/05_transform/228_BRr_R.in)0
-rw-r--r--test/050_transform/228_BRr_R.out (renamed from test/05_transform/228_BRr_R.out)0
-rw-r--r--test/050_transform/229_BRm_R.in (renamed from test/05_transform/229_BRm_R.in)0
-rw-r--r--test/050_transform/229_BRm_R.out (renamed from test/05_transform/229_BRm_R.out)0
-rw-r--r--test/050_transform/230_BRr_F.in (renamed from test/05_transform/230_BRr_F.in)0
-rw-r--r--test/050_transform/230_BRr_F.out (renamed from test/05_transform/230_BRr_F.out)0
-rw-r--r--test/050_transform/231_BRm_F.in (renamed from test/05_transform/231_BRm_F.in)0
-rw-r--r--test/050_transform/231_BRm_F.out (renamed from test/05_transform/231_BRm_F.out)0
-rw-r--r--test/050_transform/232_BDr_U.in (renamed from test/05_transform/232_BDr_U.in)0
-rw-r--r--test/050_transform/232_BDr_U.out (renamed from test/05_transform/232_BDr_U.out)0
-rw-r--r--test/050_transform/233_BDm_U.in (renamed from test/05_transform/233_BDm_U.in)0
-rw-r--r--test/050_transform/233_BDm_U.out (renamed from test/05_transform/233_BDm_U.out)0
-rw-r--r--test/050_transform/234_BDr_R.in (renamed from test/05_transform/234_BDr_R.in)0
-rw-r--r--test/050_transform/234_BDr_R.out (renamed from test/05_transform/234_BDr_R.out)0
-rw-r--r--test/050_transform/235_BDm_R.in (renamed from test/05_transform/235_BDm_R.in)0
-rw-r--r--test/050_transform/235_BDm_R.out (renamed from test/05_transform/235_BDm_R.out)0
-rw-r--r--test/050_transform/236_BDr_F.in (renamed from test/05_transform/236_BDr_F.in)0
-rw-r--r--test/050_transform/236_BDr_F.out (renamed from test/05_transform/236_BDr_F.out)0
-rw-r--r--test/050_transform/237_BDm_F.in (renamed from test/05_transform/237_BDm_F.in)0
-rw-r--r--test/050_transform/237_BDm_F.out (renamed from test/05_transform/237_BDm_F.out)0
-rw-r--r--test/050_transform/238_BLr_U.in (renamed from test/05_transform/238_BLr_U.in)0
-rw-r--r--test/050_transform/238_BLr_U.out (renamed from test/05_transform/238_BLr_U.out)0
-rw-r--r--test/050_transform/239_BLm_U.in (renamed from test/05_transform/239_BLm_U.in)0
-rw-r--r--test/050_transform/239_BLm_U.out (renamed from test/05_transform/239_BLm_U.out)0
-rw-r--r--test/050_transform/240_BLr_R.in (renamed from test/05_transform/240_BLr_R.in)0
-rw-r--r--test/050_transform/240_BLr_R.out (renamed from test/05_transform/240_BLr_R.out)0
-rw-r--r--test/050_transform/241_BLm_R.in (renamed from test/05_transform/241_BLm_R.in)0
-rw-r--r--test/050_transform/241_BLm_R.out (renamed from test/05_transform/241_BLm_R.out)0
-rw-r--r--test/050_transform/242_BLr_F.in (renamed from test/05_transform/242_BLr_F.in)0
-rw-r--r--test/050_transform/242_BLr_F.out (renamed from test/05_transform/242_BLr_F.out)0
-rw-r--r--test/050_transform/243_BLm_F.in (renamed from test/05_transform/243_BLm_F.in)0
-rw-r--r--test/050_transform/243_BLm_F.out (renamed from test/05_transform/243_BLm_F.out)0
-rw-r--r--test/050_transform/transform_tests.c (renamed from test/05_transform/transform_tests.c)0
399 files changed, 141 insertions, 113 deletions
diff --git a/README.md b/README.md
index cff5110..e519df9 100644
--- a/README.md
+++ b/README.md
@@ -11,11 +11,16 @@ $ make test
11 11
12## TODO: 12## TODO:
13 13
14### Tests
15
16* inverse_move
17* inverse_trans
18
14### AVX2 19### AVX2
15 20
16* static `solvedcube` and co don't work, turn into functions? 21* fix base get_ and set_ macros (constant arguments?)
17* implement missing stuff (moves, transform) 22* implement missing stuff (moves, transform)
18* optimize things that use _base functions 23* optimize things that use get_ and set_
19 24
20### More features 25### More features
21 26
diff --git a/benchmark/bench.c b/benchmark/bench.c
index 3046cdc..41fbbcc 100644
--- a/benchmark/bench.c
+++ b/benchmark/bench.c
@@ -53,7 +53,7 @@ setup_cubes(void)
53 move_t m; 53 move_t m;
54 54
55 for (i = 0; i < GEN_CUBES; i++) { 55 for (i = 0; i < GEN_CUBES; i++) {
56 gen_cubes[i] = solvedcube; 56 gen_cubes[i] = solvedcube();
57 for (j = 0; j < 30; j++) { 57 for (j = 0; j < 30; j++) {
58 m = (move_t)rand() % 18; 58 m = (move_t)rand() % 18;
59 gen_cubes[i] = move(gen_cubes[i], m); 59 gen_cubes[i] = move(gen_cubes[i], m);
@@ -68,7 +68,7 @@ run_moves(void)
68 cube_t c; 68 cube_t c;
69 char str[1000]; 69 char str[1000];
70 70
71 c = solvedcube; 71 c = solvedcube();
72 for (i = 0; i < MOVES; i++) 72 for (i = 0; i < MOVES; i++)
73 c = move(c, gen_moves[i % GEN_MOVES]); 73 c = move(c, gen_moves[i % GEN_MOVES]);
74 74
@@ -85,7 +85,7 @@ run_trans(void)
85 cube_t c; 85 cube_t c;
86 char str[1000]; 86 char str[1000];
87 87
88 c = solvedcube; 88 c = solvedcube();
89 for (i = 0; i < TRANS; i++) 89 for (i = 0; i < TRANS; i++)
90 c = transform(c, gen_trans[i % GEN_TRANS]); 90 c = transform(c, gen_trans[i % GEN_TRANS]);
91 91
@@ -102,7 +102,7 @@ run_comp(void)
102 cube_t c; 102 cube_t c;
103 char str[1000]; 103 char str[1000];
104 104
105 c = solvedcube; 105 c = solvedcube();
106 for (i = 0; i < COMP; i++) 106 for (i = 0; i < COMP; i++)
107 c = compose(c, gen_cubes[i % GEN_CUBES]); 107 c = compose(c, gen_cubes[i % GEN_CUBES]);
108 108
diff --git a/src/_base_arr.c b/src/_base_arr.c
deleted file mode 100644
index 2169cd5..0000000
--- a/src/_base_arr.c
+++ /dev/null
@@ -1,30 +0,0 @@
1cube_t solvedcube = {
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};
5static cube_t errorcube = { .e = {0}, .c = {0} };
6static cube_t zerocube = { .e = {0}, .c = {0} };
7
8static uint8_t
9get_edge(cube_t c, uint8_t i)
10{
11 return c.e[i];
12}
13
14static uint8_t
15get_corner(cube_t c, uint8_t i)
16{
17 return c.c[i];
18}
19
20static void
21set_edge(cube_t *c, uint8_t i, uint8_t p)
22{
23 c->e[i] = p;
24}
25
26static void
27set_corner(cube_t *c, uint8_t i, uint8_t p)
28{
29 c->c[i] = p;
30}
diff --git a/src/_base_avx2.c b/src/_base_avx2.c
deleted file mode 100644
index 7af88eb..0000000
--- a/src/_base_avx2.c
+++ /dev/null
@@ -1,28 +0,0 @@
1#define solvedcube _mm256_set_epi8( \
2 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 3, 2, 1, 0, /* Corners */ \
3 0, 0, 0, 0, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 /* Edges */ \
4)
5#define errorcube _mm256_setzero_si256()
6#define zerocube _mm256_setzero_si256()
7
8static uint8_t
9get_edge(cube_t c, uint8_t i)
10{
11 return 0;
12}
13
14static uint8_t
15get_corner(cube_t c, uint8_t i)
16{
17 return 0;
18}
19
20static void
21set_edge(cube_t *c, uint8_t i, uint8_t p)
22{
23}
24
25static void
26set_corner(cube_t *c, uint8_t i, uint8_t p)
27{
28}
diff --git a/src/_constants.c b/src/_constants.c
index 3121e3b..0070990 100644
--- a/src/_constants.c
+++ b/src/_constants.c
@@ -32,7 +32,7 @@
32#define _eflip 0x10U 32#define _eflip 0x10U
33#define _error 0xFFU 33#define _error 0xFFU
34 34
35move_t inverse_move[] = { 35static move_t inverse_move_arr[] = {
36 [U] = U3, 36 [U] = U3,
37 [U2] = U2, 37 [U2] = U2,
38 [U3] = U, 38 [U3] = U,
@@ -53,7 +53,7 @@ move_t inverse_move[] = {
53 [B3] = B, 53 [B3] = B,
54}; 54};
55 55
56trans_t inverse_trans[] = { 56static trans_t inverse_trans_arr[] = {
57 [UFr] = UFr, 57 [UFr] = UFr,
58 [ULr] = URr, 58 [ULr] = URr,
59 [UBr] = UBr, 59 [UBr] = UBr,
diff --git a/src/_move_logic_avx2.c b/src/_move_logic_avx2.c
index 7bf881c..29df776 100644
--- a/src/_move_logic_avx2.c
+++ b/src/_move_logic_avx2.c
@@ -1,3 +1,6 @@
1static cube_t move_cube[18]; /* TODO */ 1/* TODO:
2 2static cube_t move_cube[18];
3return compose(move_cube[m], c); 3return compose(move_cube[m], c);
4*/
5
6goto move_error;
diff --git a/src/cube.c b/src/cube.c
index 4651b00..fc04ee7 100644
--- a/src/cube.c
+++ b/src/cube.c
@@ -14,10 +14,38 @@
14 14
15#include "_constants.c" 15#include "_constants.c"
16 16
17cube_arr_t solvedcube_arr = {
18 .c = {0, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0},
19 .e = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0}
20};
21cube_arr_t zerocube_arr = { .e = {0}, .c = {0} };
22
17#ifdef CUBE_AVX2 23#ifdef CUBE_AVX2
18#include "_base_avx2.c" 24
25#define setsolved(cube) cube = _mm256_loadu_si256((__m256i_u *)&solvedcube_arr)
26#define setzero(cube) cube = _mm256_setzero_si256()
27#define _c _mm256_set_epi64x(0, 0, 0, 0xFF)
28#define _e _mm256_set_epi64x(0, 0xFF, 0, 0)
29/* TODO: in the next 4 macros, all 0 should be i, but must be constant! */
30#define get_edge(cube, i) _mm256_extract_epi8(cube, 0+16)
31#define get_corner(cube, i) _mm256_extract_epi8(cube, 0)
32#define set_edge(cube, i, p) _mm256_or_si256( \
33 _mm256_andnot_si256(cube, _mm256_slli_si256(_e, 0)), \
34 _mm256_and_si256(_mm256_set1_epi8(p), _mm256_slli_si256(_e, 0)))
35#define set_corner(cube, i, p) _mm256_or_si256( \
36 _mm256_andnot_si256(cube, _mm256_slli_si256(_c, 0)), \
37 _mm256_and_si256(_mm256_set1_epi8(p), _mm256_slli_si256(_c, 0)))
38
19#else 39#else
20#include "_base_arr.c" 40
41#define setsolved(cube) cube = solvedcube_arr
42#define setzero(cube) cube = zerocube_arr
43#define _c _mm256_set_epi64x(0, 0, 0, 0xFF)
44#define get_edge(cube, i) (cube).e[(i)]
45#define get_corner(cube, i) (cube).c[(i)]
46#define set_edge(cube, i, p) (cube).e[(i)] = (p)
47#define set_corner(cube, i, p) (cube).c[(i)] = (p)
48
21#endif 49#endif
22 50
23static bool isconsistent(cube_t); 51static bool isconsistent(cube_t);
@@ -34,6 +62,22 @@ static int writepiece_SRC(uint8_t, char *);
34static void writecube_SRC(cube_t, char *); 62static void writecube_SRC(cube_t, char *);
35static int permsign(uint8_t *, int); 63static int permsign(uint8_t *, int);
36 64
65cube_t
66solvedcube(void)
67{
68 cube_t solved;
69 setsolved(solved);
70 return solved;
71}
72
73cube_t
74zerocube(void)
75{
76 cube_t solved;
77 setzero(solved);
78 return solved;
79}
80
37static uint8_t 81static uint8_t
38readco(char *str) 82readco(char *str)
39{ 83{
@@ -100,30 +144,34 @@ readcube_H48(char *buf)
100{ 144{
101 int i; 145 int i;
102 uint8_t piece, orient; 146 uint8_t piece, orient;
103 cube_t ret = zerocube; 147 cube_t ret, err;
104 char *b = buf; 148 char *b;
149
150 setzero(ret);
151 setzero(err);
152 b = buf;
105 153
106 for (i = 0; i < 12; i++) { 154 for (i = 0; i < 12; i++) {
107 while (*b == ' ' || *b == '\t' || *b == '\n') 155 while (*b == ' ' || *b == '\t' || *b == '\n')
108 b++; 156 b++;
109 if ((piece = readep(b)) == _error) 157 if ((piece = readep(b)) == _error)
110 return errorcube; 158 return err;
111 b += 2; 159 b += 2;
112 if ((orient = readeo(b)) == _error) 160 if ((orient = readeo(b)) == _error)
113 return errorcube; 161 return err;
114 b++; 162 b++;
115 set_edge(&ret, i, piece | orient); 163 set_edge(ret, i, piece | orient);
116 } 164 }
117 for (i = 0; i < 8; i++) { 165 for (i = 0; i < 8; i++) {
118 while (*b == ' ' || *b == '\t' || *b == '\n') 166 while (*b == ' ' || *b == '\t' || *b == '\n')
119 b++; 167 b++;
120 if ((piece = readcp(b)) == _error) 168 if ((piece = readcp(b)) == _error)
121 return errorcube; 169 return err;
122 b += 3; 170 b += 3;
123 if ((orient = readco(b)) == _error) 171 if ((orient = readco(b)) == _error)
124 return errorcube; 172 return err;
125 b++; 173 b++;
126 set_corner(&ret, i, piece | orient); 174 set_corner(ret, i, piece | orient);
127 } 175 }
128 176
129 return ret; 177 return ret;
@@ -142,7 +190,7 @@ readcube(format_t format, char *buf)
142 #ifdef DEBUG 190 #ifdef DEBUG
143 fprintf(stderr, "Cannot read cube in the given format\n"); 191 fprintf(stderr, "Cannot read cube in the given format\n");
144 #endif 192 #endif
145 ret = errorcube; 193 setzero(ret);
146 } 194 }
147 195
148#ifdef DEBUG 196#ifdef DEBUG
@@ -373,6 +421,18 @@ writetrans(trans_t t, char *buf)
373 buf[11] = '\0'; 421 buf[11] = '\0';
374} 422}
375 423
424move_t
425inverse_move(move_t m)
426{
427 return inverse_move_arr[m];
428}
429
430trans_t
431inverse_trans(trans_t t)
432{
433 return inverse_trans_arr[t];
434}
435
376static int 436static int
377permsign(uint8_t *a, int n) 437permsign(uint8_t *a, int n)
378{ 438{
@@ -532,18 +592,24 @@ equal(cube_t cube1, cube_t cube2)
532bool 592bool
533issolved(cube_t cube) 593issolved(cube_t cube)
534{ 594{
535 return equal(cube, solvedcube); 595 cube_t solved;
596 setsolved(solved);
597 return equal(cube, solved);
536} 598}
537 599
538bool 600bool
539iserror(cube_t cube) 601iserror(cube_t cube)
540{ 602{
541 return equal(cube, errorcube); 603 cube_t err;
604 setzero(err);
605 return equal(cube, err);
542} 606}
543 607
544cube_t 608cube_t
545move(cube_t c, move_t m) 609move(cube_t c, move_t m)
546{ 610{
611 cube_t err;
612
547#ifdef DEBUG 613#ifdef DEBUG
548 if (!isconsistent(c)) { 614 if (!isconsistent(c)) {
549 fprintf(stderr, "move error, inconsistent cube\n"); 615 fprintf(stderr, "move error, inconsistent cube\n");
@@ -558,7 +624,8 @@ move(cube_t c, move_t m)
558#endif 624#endif
559 625
560move_error: 626move_error:
561 return errorcube; 627 setzero(err);
628 return err;
562} 629}
563 630
564cube_t 631cube_t
@@ -566,25 +633,27 @@ inverse(cube_t c)
566{ 633{
567 /* TODO: optimize for avx2 */ 634 /* TODO: optimize for avx2 */
568 uint8_t i, piece, orien; 635 uint8_t i, piece, orien;
569 cube_t ret = zerocube; 636 cube_t ret;
637
638 setzero(ret);
570 639
571#ifdef DEBUG 640#ifdef DEBUG
572 if (!isconsistent(c)) { 641 if (!isconsistent(c)) {
573 fprintf(stderr, "inverse error, inconsistent cube\n"); 642 fprintf(stderr, "inverse error, inconsistent cube\n");
574 return errorcube; 643 return ret;
575 } 644 }
576#endif 645#endif
577 646
578 for (i = 0; i < 12; i++) { 647 for (i = 0; i < 12; i++) {
579 piece = get_edge(c, i); 648 piece = get_edge(c, i);
580 orien = piece & _eobit; 649 orien = piece & _eobit;
581 set_edge(&ret, piece & _pbits, i | orien); 650 set_edge(ret, piece & _pbits, i | orien);
582 } 651 }
583 652
584 for (i = 0; i < 8; i++) { 653 for (i = 0; i < 8; i++) {
585 piece = get_corner(c, i); 654 piece = get_corner(c, i);
586 orien = ((piece << 1) | (piece >> 1)) & _cobits2; 655 orien = ((piece << 1) | (piece >> 1)) & _cobits2;
587 set_corner(&ret, piece & _pbits, i | orien); 656 set_corner(ret, piece & _pbits, i | orien);
588 } 657 }
589 658
590 return ret; 659 return ret;
@@ -595,12 +664,14 @@ compose(cube_t c1, cube_t c2)
595{ 664{
596 /* TODO: optimize for avx2 */ 665 /* TODO: optimize for avx2 */
597 uint8_t i, piece1, piece2, p, orien, aux, auy; 666 uint8_t i, piece1, piece2, p, orien, aux, auy;
598 cube_t ret = zerocube; 667 cube_t ret;
668
669 setzero(ret);
599 670
600#ifdef DEBUG 671#ifdef DEBUG
601 if (!isconsistent(c1) || !isconsistent(c2)) { 672 if (!isconsistent(c1) || !isconsistent(c2)) {
602 fprintf(stderr, "compose error, inconsistent cube\n"); 673 fprintf(stderr, "compose error, inconsistent cube\n");
603 return errorcube; 674 return ret;
604 } 675 }
605#endif 676#endif
606 677
@@ -609,7 +680,7 @@ compose(cube_t c1, cube_t c2)
609 p = piece2 & _pbits; 680 p = piece2 & _pbits;
610 piece1 = get_edge(c1, p); 681 piece1 = get_edge(c1, p);
611 orien = (piece2 ^ piece1) & _eobit; 682 orien = (piece2 ^ piece1) & _eobit;
612 set_edge(&ret, i, (piece1 & _pbits) | orien); 683 set_edge(ret, i, (piece1 & _pbits) | orien);
613 } 684 }
614 685
615 for (i = 0; i < 8; i++) { 686 for (i = 0; i < 8; i++) {
@@ -619,7 +690,7 @@ compose(cube_t c1, cube_t c2)
619 aux = (piece2 & _cobits) + (piece1 & _cobits); 690 aux = (piece2 & _cobits) + (piece1 & _cobits);
620 auy = (aux + _ctwist_cw) >> 2U; 691 auy = (aux + _ctwist_cw) >> 2U;
621 orien = (aux + auy) & _cobits2; 692 orien = (aux + auy) & _cobits2;
622 set_corner(&ret, i, (piece1 & _pbits) | orien); 693 set_corner(ret, i, (piece1 & _pbits) | orien);
623 } 694 }
624 695
625 return ret; 696 return ret;
@@ -637,7 +708,7 @@ flipallcorners(cube_t c)
637 for (i = 0; i < 8; i++) { 708 for (i = 0; i < 8; i++) {
638 piece = get_corner(c, i); 709 piece = get_corner(c, i);
639 orien = ((piece << 1) | (piece >> 1)) & _cobits2; 710 orien = ((piece << 1) | (piece >> 1)) & _cobits2;
640 set_corner(&ret, i, (piece & _pbits) | orien); 711 set_corner(ret, i, (piece & _pbits) | orien);
641 } 712 }
642 713
643 return ret; 714 return ret;
@@ -646,16 +717,17 @@ flipallcorners(cube_t c)
646cube_t 717cube_t
647transform(cube_t c, trans_t t) 718transform(cube_t c, trans_t t)
648{ 719{
649 cube_t ret; 720 cube_t ret, solved;
650 721
651#ifdef DEBUG 722#ifdef DEBUG
723 setzero(ret);
652 if (!isconsistent(c)) { 724 if (!isconsistent(c)) {
653 fprintf(stderr, "transform error, inconsistent cube\n"); 725 fprintf(stderr, "transform error, inconsistent cube\n");
654 return errorcube; 726 return ret;
655 } 727 }
656 if (t >= 48) { 728 if (t >= 48) {
657 fprintf(stderr, "transform error, unknown transformation\n"); 729 fprintf(stderr, "transform error, unknown transformation\n");
658 return errorcube; 730 return ret;
659 } 731 }
660#endif 732#endif
661 733
@@ -665,7 +737,9 @@ transform(cube_t c, trans_t t)
665#include "_trans_move_arr.c" 737#include "_trans_move_arr.c"
666#endif 738#endif
667 739
668 ret = compose(solvedcube, trans_move_cube[t]); 740 setsolved(solved);
741
742 ret = compose(solved, trans_move_cube[t]);
669 ret = compose(ret, c); 743 ret = compose(ret, c);
670 ret = compose(ret, trans_move_cube_inverse[t]); 744 ret = compose(ret, trans_move_cube_inverse[t]);
671 745
diff --git a/src/cube.h b/src/cube.h
index 4c6de2f..43d9172 100644
--- a/src/cube.h
+++ b/src/cube.h
@@ -1,43 +1,45 @@
1/* Types *********************************************************************/ 1/* Types *********************************************************************/
2 2
3/* See doc/CUBE_INTERNAL.md for a description of the cube format */ 3/* See doc/CUBE_INTERNAL.md for a description of the cube format */
4typedef struct {
5 uint8_t c[16];
6 uint8_t e[16];
7} cube_arr_t;
4#ifdef CUBE_AVX2 8#ifdef CUBE_AVX2
5typedef __m256i cube_t; 9typedef __m256i cube_t;
6#else 10#else
7typedef struct { uint8_t c[8]; uint8_t e[12]; } cube_t; 11typedef cube_arr_t cube_t;
8#endif 12#endif
9 13
10typedef uint8_t move_t; 14typedef uint8_t move_t;
11typedef uint8_t trans_t; 15typedef uint8_t trans_t;
12 16
13extern move_t inverse_move[];
14extern trans_t inverse_trans[];
15extern cube_t solvedcube;
16
17/* Functions *****************************************************************/ 17/* Functions *****************************************************************/
18 18
19int readmoves(char *, move_t *);
20void writemoves(move_t *, int, char *);
21trans_t readtrans(char *);
22void writetrans(trans_t, char *);
23
24move_t inverse_move(move_t);
25trans_t inverse_trans(trans_t);
26
19/* Not all formats are supported for both read and write. */ 27/* Not all formats are supported for both read and write. */
20/* See doc/CUBE_TEXT.md for details. */ 28/* See doc/CUBE_TEXT.md for details. */
21typedef enum {H48, SRC} format_t; 29typedef enum {H48, SRC} format_t;
22cube_t readcube(format_t, char *); 30cube_t readcube(format_t, char *);
23void writecube(format_t, cube_t, char *); 31void writecube(format_t, cube_t, char *);
24 32
33cube_t solvedcube(void);
34cube_t zerocube(void);
25bool issolvable(cube_t); 35bool issolvable(cube_t);
26bool equal(cube_t, cube_t); 36bool equal(cube_t, cube_t);
27bool issolved(cube_t); 37bool issolved(cube_t);
28bool iserror(cube_t); 38bool iserror(cube_t);
29 39
30int readmoves(char *, move_t *);
31void writemoves(move_t *, int, char *);
32
33trans_t readtrans(char *);
34void writetrans(trans_t, char *);
35
36cube_t move(cube_t, move_t); 40cube_t move(cube_t, move_t);
37cube_t inverse(cube_t); 41cube_t inverse(cube_t);
38cube_t compose(cube_t, cube_t); 42cube_t compose(cube_t, cube_t);
39
40/* See doc/TRANSFORMATIONS.md for how transformations are applied */
41cube_t transform(cube_t, trans_t); 43cube_t transform(cube_t, trans_t);
42 44
43/* Constants for moves and transformations ***********************************/ 45/* Constants for moves and transformations ***********************************/
diff --git a/test/00_basic/basic_tests.c b/test/00_basic/basic_tests.c
index a3ae0b9..ddfecb4 100644
--- a/test/00_basic/basic_tests.c
+++ b/test/00_basic/basic_tests.c
@@ -19,14 +19,16 @@ check2(cube_t cube1, char *name1, cube_t cube2, char *name2)
19} 19}
20 20
21int main() { 21int main() {
22 cube_t zero = (cube_t){0}; 22 cube_t zero, solved;
23 23
24 check(solvedcube, "Solved"); 24 zero = zerocube();
25 solved = solvedcube();
26 check(solved, "Solved");
25 check(zero, "Zero"); 27 check(zero, "Zero");
26 28
27 check2(solvedcube, "Solved", solvedcube, "Solved"); 29 check2(solved, "Solved", solved, "Solved");
28 check2(solvedcube, "Solved", zero, "Zero"); 30 check2(solved, "Solved", zero, "Zero");
29 check2(zero, "Zero", solvedcube, "Solved"); 31 check2(zero, "Zero", solved, "Solved");
30 32
31 return 0; 33 return 0;
32} 34}
diff --git a/test/02_move/000_nomove_solved.in b/test/020_move/000_nomove_solved.in
index 07cf178..07cf178 100644
--- a/test/02_move/000_nomove_solved.in
+++ b/test/020_move/000_nomove_solved.in
diff --git a/test/02_move/000_nomove_solved.out b/test/020_move/000_nomove_solved.out
index dff224d..dff224d 100644
--- a/test/02_move/000_nomove_solved.out
+++ b/test/020_move/000_nomove_solved.out
diff --git a/test/02_move/001_nomove_scrambled.in b/test/020_move/001_nomove_scrambled.in
index fd1d23c..fd1d23c 100644
--- a/test/02_move/001_nomove_scrambled.in
+++ b/test/020_move/001_nomove_scrambled.in
diff --git a/test/02_move/001_nomove_scrambled.out b/test/020_move/001_nomove_scrambled.out
index bd2cca0..bd2cca0 100644
--- a/test/02_move/001_nomove_scrambled.out
+++ b/test/020_move/001_nomove_scrambled.out
diff --git a/test/02_move/010_U_solved.in b/test/020_move/010_U_solved.in
index 62495cb..62495cb 100644
--- a/test/02_move/010_U_solved.in
+++ b/test/020_move/010_U_solved.in
diff --git a/test/02_move/010_U_solved.out b/test/020_move/010_U_solved.out
index b5b36ad..b5b36ad 100644
--- a/test/02_move/010_U_solved.out
+++ b/test/020_move/010_U_solved.out
diff --git a/test/02_move/011_U_scrambled.in b/test/020_move/011_U_scrambled.in
index 012faaf..012faaf 100644
--- a/test/02_move/011_U_scrambled.in
+++ b/test/020_move/011_U_scrambled.in
diff --git a/test/02_move/011_U_scrambled.out b/test/020_move/011_U_scrambled.out
index 46d2ef7..46d2ef7 100644
--- a/test/02_move/011_U_scrambled.out
+++ b/test/020_move/011_U_scrambled.out
diff --git a/test/02_move/012_U_inverse.in b/test/020_move/012_U_inverse.in
index 2aa7ffa..2aa7ffa 100644
--- a/test/02_move/012_U_inverse.in
+++ b/test/020_move/012_U_inverse.in
diff --git a/test/02_move/012_U_inverse.out b/test/020_move/012_U_inverse.out
index dff224d..dff224d 100644
--- a/test/02_move/012_U_inverse.out
+++ b/test/020_move/012_U_inverse.out
diff --git a/test/02_move/020_U2_solved.in b/test/020_move/020_U2_solved.in
index ccc84ef..ccc84ef 100644
--- a/test/02_move/020_U2_solved.in
+++ b/test/020_move/020_U2_solved.in
diff --git a/test/02_move/020_U2_solved.out b/test/020_move/020_U2_solved.out
index 316ad57..316ad57 100644
--- a/test/02_move/020_U2_solved.out
+++ b/test/020_move/020_U2_solved.out
diff --git a/test/02_move/021_U2_scrambled.in b/test/020_move/021_U2_scrambled.in
index bdc034e..bdc034e 100644
--- a/test/02_move/021_U2_scrambled.in
+++ b/test/020_move/021_U2_scrambled.in
diff --git a/test/02_move/021_U2_scrambled.out b/test/020_move/021_U2_scrambled.out
index c89ca1f..c89ca1f 100644
--- a/test/02_move/021_U2_scrambled.out
+++ b/test/020_move/021_U2_scrambled.out
diff --git a/test/02_move/022_U2_inverse.in b/test/020_move/022_U2_inverse.in
index 8ace160..8ace160 100644
--- a/test/02_move/022_U2_inverse.in
+++ b/test/020_move/022_U2_inverse.in
diff --git a/test/02_move/022_U2_inverse.out b/test/020_move/022_U2_inverse.out
index dff224d..dff224d 100644
--- a/test/02_move/022_U2_inverse.out
+++ b/test/020_move/022_U2_inverse.out
diff --git a/test/02_move/030_U3_solved.in b/test/020_move/030_U3_solved.in
index 49a8847..49a8847 100644
--- a/test/02_move/030_U3_solved.in
+++ b/test/020_move/030_U3_solved.in
diff --git a/test/02_move/030_U3_solved.out b/test/020_move/030_U3_solved.out
index 7721ab5..7721ab5 100644
--- a/test/02_move/030_U3_solved.out
+++ b/test/020_move/030_U3_solved.out
diff --git a/test/02_move/031_U3_inverse.in b/test/020_move/031_U3_inverse.in
index 44b6ce3..44b6ce3 100644
--- a/test/02_move/031_U3_inverse.in
+++ b/test/020_move/031_U3_inverse.in
diff --git a/test/02_move/031_U3_inverse.out b/test/020_move/031_U3_inverse.out
index dff224d..dff224d 100644
--- a/test/02_move/031_U3_inverse.out
+++ b/test/020_move/031_U3_inverse.out
diff --git a/test/02_move/032_U3_scrambled.in b/test/020_move/032_U3_scrambled.in
index a00608c..a00608c 100644
--- a/test/02_move/032_U3_scrambled.in
+++ b/test/020_move/032_U3_scrambled.in
diff --git a/test/02_move/032_U3_scrambled.out b/test/020_move/032_U3_scrambled.out
index 7d1e8cd..7d1e8cd 100644
--- a/test/02_move/032_U3_scrambled.out
+++ b/test/020_move/032_U3_scrambled.out
diff --git a/test/02_move/033_U3_with_prime.in b/test/020_move/033_U3_with_prime.in
index 95e5405..95e5405 100644
--- a/test/02_move/033_U3_with_prime.in
+++ b/test/020_move/033_U3_with_prime.in
diff --git a/test/02_move/033_U3_with_prime.out b/test/020_move/033_U3_with_prime.out
index 7721ab5..7721ab5 100644
--- a/test/02_move/033_U3_with_prime.out
+++ b/test/020_move/033_U3_with_prime.out
diff --git a/test/02_move/040_D_solved.in b/test/020_move/040_D_solved.in
index cb5edb7..cb5edb7 100644
--- a/test/02_move/040_D_solved.in
+++ b/test/020_move/040_D_solved.in
diff --git a/test/02_move/040_D_solved.out b/test/020_move/040_D_solved.out
index cf4f816..cf4f816 100644
--- a/test/02_move/040_D_solved.out
+++ b/test/020_move/040_D_solved.out
diff --git a/test/02_move/050_D2_solved.in b/test/020_move/050_D2_solved.in
index 56f47cd..56f47cd 100644
--- a/test/02_move/050_D2_solved.in
+++ b/test/020_move/050_D2_solved.in
diff --git a/test/02_move/050_D2_solved.out b/test/020_move/050_D2_solved.out
index 13b229e..13b229e 100644
--- a/test/02_move/050_D2_solved.out
+++ b/test/020_move/050_D2_solved.out
diff --git a/test/02_move/060_D3_solved.in b/test/020_move/060_D3_solved.in
index 64d1dd8..64d1dd8 100644
--- a/test/02_move/060_D3_solved.in
+++ b/test/020_move/060_D3_solved.in
diff --git a/test/02_move/060_D3_solved.out b/test/020_move/060_D3_solved.out
index 2864f5b..2864f5b 100644
--- a/test/02_move/060_D3_solved.out
+++ b/test/020_move/060_D3_solved.out
diff --git a/test/02_move/070_R_solved.in b/test/020_move/070_R_solved.in
index 108538a..108538a 100644
--- a/test/02_move/070_R_solved.in
+++ b/test/020_move/070_R_solved.in
diff --git a/test/02_move/070_R_solved.out b/test/020_move/070_R_solved.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/02_move/070_R_solved.out
+++ b/test/020_move/070_R_solved.out
diff --git a/test/02_move/071_R_scrambled.in b/test/020_move/071_R_scrambled.in
index 0c9dcaf..0c9dcaf 100644
--- a/test/02_move/071_R_scrambled.in
+++ b/test/020_move/071_R_scrambled.in
diff --git a/test/02_move/071_R_scrambled.out b/test/020_move/071_R_scrambled.out
index 650bcc8..650bcc8 100644
--- a/test/02_move/071_R_scrambled.out
+++ b/test/020_move/071_R_scrambled.out
diff --git a/test/02_move/080_R2_solved.in b/test/020_move/080_R2_solved.in
index 554a084..554a084 100644
--- a/test/02_move/080_R2_solved.in
+++ b/test/020_move/080_R2_solved.in
diff --git a/test/02_move/080_R2_solved.out b/test/020_move/080_R2_solved.out
index 90765e2..90765e2 100644
--- a/test/02_move/080_R2_solved.out
+++ b/test/020_move/080_R2_solved.out
diff --git a/test/02_move/090_R3_solved.in b/test/020_move/090_R3_solved.in
index ca6cfd8..ca6cfd8 100644
--- a/test/02_move/090_R3_solved.in
+++ b/test/020_move/090_R3_solved.in
diff --git a/test/02_move/090_R3_solved.out b/test/020_move/090_R3_solved.out
index d4abffc..d4abffc 100644
--- a/test/02_move/090_R3_solved.out
+++ b/test/020_move/090_R3_solved.out
diff --git a/test/02_move/100_L_solved.in b/test/020_move/100_L_solved.in
index 14ebb5f..14ebb5f 100644
--- a/test/02_move/100_L_solved.in
+++ b/test/020_move/100_L_solved.in
diff --git a/test/02_move/100_L_solved.out b/test/020_move/100_L_solved.out
index 0b0565c..0b0565c 100644
--- a/test/02_move/100_L_solved.out
+++ b/test/020_move/100_L_solved.out
diff --git a/test/02_move/110_L2_solved.in b/test/020_move/110_L2_solved.in
index 8224bcd..8224bcd 100644
--- a/test/02_move/110_L2_solved.in
+++ b/test/020_move/110_L2_solved.in
diff --git a/test/02_move/110_L2_solved.out b/test/020_move/110_L2_solved.out
index 2498c87..2498c87 100644
--- a/test/02_move/110_L2_solved.out
+++ b/test/020_move/110_L2_solved.out
diff --git a/test/02_move/120_L3_solved.in b/test/020_move/120_L3_solved.in
index 552d319..552d319 100644
--- a/test/02_move/120_L3_solved.in
+++ b/test/020_move/120_L3_solved.in
diff --git a/test/02_move/120_L3_solved.out b/test/020_move/120_L3_solved.out
index 2ac2912..2ac2912 100644
--- a/test/02_move/120_L3_solved.out
+++ b/test/020_move/120_L3_solved.out
diff --git a/test/02_move/130_F_solved.in b/test/020_move/130_F_solved.in
index abdbd35..abdbd35 100644
--- a/test/02_move/130_F_solved.in
+++ b/test/020_move/130_F_solved.in
diff --git a/test/02_move/130_F_solved.out b/test/020_move/130_F_solved.out
index e805af8..e805af8 100644
--- a/test/02_move/130_F_solved.out
+++ b/test/020_move/130_F_solved.out
diff --git a/test/02_move/132_F_scrambled.in b/test/020_move/132_F_scrambled.in
index 8b15575..8b15575 100644
--- a/test/02_move/132_F_scrambled.in
+++ b/test/020_move/132_F_scrambled.in
diff --git a/test/02_move/132_F_scrambled.out b/test/020_move/132_F_scrambled.out
index 3aea663..3aea663 100644
--- a/test/02_move/132_F_scrambled.out
+++ b/test/020_move/132_F_scrambled.out
diff --git a/test/02_move/133_F_scrambled_2.in b/test/020_move/133_F_scrambled_2.in
index fdd5139..fdd5139 100644
--- a/test/02_move/133_F_scrambled_2.in
+++ b/test/020_move/133_F_scrambled_2.in
diff --git a/test/02_move/133_F_scrambled_2.out b/test/020_move/133_F_scrambled_2.out
index 3546894..3546894 100644
--- a/test/02_move/133_F_scrambled_2.out
+++ b/test/020_move/133_F_scrambled_2.out
diff --git a/test/02_move/140_F2_solved.in b/test/020_move/140_F2_solved.in
index 83aab30..83aab30 100644
--- a/test/02_move/140_F2_solved.in
+++ b/test/020_move/140_F2_solved.in
diff --git a/test/02_move/140_F2_solved.out b/test/020_move/140_F2_solved.out
index 8aa701f..8aa701f 100644
--- a/test/02_move/140_F2_solved.out
+++ b/test/020_move/140_F2_solved.out
diff --git a/test/02_move/150_F3_solved.in b/test/020_move/150_F3_solved.in
index 2c766c1..2c766c1 100644
--- a/test/02_move/150_F3_solved.in
+++ b/test/020_move/150_F3_solved.in
diff --git a/test/02_move/150_F3_solved.out b/test/020_move/150_F3_solved.out
index 40f1260..40f1260 100644
--- a/test/02_move/150_F3_solved.out
+++ b/test/020_move/150_F3_solved.out
diff --git a/test/02_move/160_B_solved.in b/test/020_move/160_B_solved.in
index 6062e45..6062e45 100644
--- a/test/02_move/160_B_solved.in
+++ b/test/020_move/160_B_solved.in
diff --git a/test/02_move/160_B_solved.out b/test/020_move/160_B_solved.out
index f7fb13c..f7fb13c 100644
--- a/test/02_move/160_B_solved.out
+++ b/test/020_move/160_B_solved.out
diff --git a/test/02_move/170_B2_solved.in b/test/020_move/170_B2_solved.in
index 0ff1190..0ff1190 100644
--- a/test/02_move/170_B2_solved.in
+++ b/test/020_move/170_B2_solved.in
diff --git a/test/02_move/170_B2_solved.out b/test/020_move/170_B2_solved.out
index 9b33e35..9b33e35 100644
--- a/test/02_move/170_B2_solved.out
+++ b/test/020_move/170_B2_solved.out
diff --git a/test/02_move/180_B3_solved.in b/test/020_move/180_B3_solved.in
index c59636f..c59636f 100644
--- a/test/02_move/180_B3_solved.in
+++ b/test/020_move/180_B3_solved.in
diff --git a/test/02_move/180_B3_solved.out b/test/020_move/180_B3_solved.out
index 1367517..1367517 100644
--- a/test/02_move/180_B3_solved.out
+++ b/test/020_move/180_B3_solved.out
diff --git a/test/02_move/200_scramble_solved.in b/test/020_move/200_scramble_solved.in
index 939d876..939d876 100644
--- a/test/02_move/200_scramble_solved.in
+++ b/test/020_move/200_scramble_solved.in
diff --git a/test/02_move/200_scramble_solved.out b/test/020_move/200_scramble_solved.out
index 690ff6b..690ff6b 100644
--- a/test/02_move/200_scramble_solved.out
+++ b/test/020_move/200_scramble_solved.out
diff --git a/test/02_move/201_solution_scrambled.in b/test/020_move/201_solution_scrambled.in
index a838b4c..a838b4c 100644
--- a/test/02_move/201_solution_scrambled.in
+++ b/test/020_move/201_solution_scrambled.in
diff --git a/test/02_move/201_solution_scrambled.out b/test/020_move/201_solution_scrambled.out
index dff224d..dff224d 100644
--- a/test/02_move/201_solution_scrambled.out
+++ b/test/020_move/201_solution_scrambled.out
diff --git a/test/02_move/move_tests.c b/test/020_move/move_tests.c
index 054466b..054466b 100644
--- a/test/02_move/move_tests.c
+++ b/test/020_move/move_tests.c
diff --git a/test/03_inverse/00_solved.in b/test/030_inverse_cube/00_solved.in
index dff224d..dff224d 100644
--- a/test/03_inverse/00_solved.in
+++ b/test/030_inverse_cube/00_solved.in
diff --git a/test/03_inverse/00_solved.out b/test/030_inverse_cube/00_solved.out
index dff224d..dff224d 100644
--- a/test/03_inverse/00_solved.out
+++ b/test/030_inverse_cube/00_solved.out
diff --git a/test/03_inverse/01_scrambled.in b/test/030_inverse_cube/01_scrambled.in
index 263213b..263213b 100644
--- a/test/03_inverse/01_scrambled.in
+++ b/test/030_inverse_cube/01_scrambled.in
diff --git a/test/03_inverse/01_scrambled.out b/test/030_inverse_cube/01_scrambled.out
index 25089c6..25089c6 100644
--- a/test/03_inverse/01_scrambled.out
+++ b/test/030_inverse_cube/01_scrambled.out
diff --git a/test/03_inverse/inverse_tests.c b/test/030_inverse_cube/inverse_tests.c
index 0a56568..0a56568 100644
--- a/test/03_inverse/inverse_tests.c
+++ b/test/030_inverse_cube/inverse_tests.c
diff --git a/test/04_compose/00_solved_solved.in b/test/040_compose/00_solved_solved.in
index 4ccdb6e..4ccdb6e 100644
--- a/test/04_compose/00_solved_solved.in
+++ b/test/040_compose/00_solved_solved.in
diff --git a/test/04_compose/00_solved_solved.out b/test/040_compose/00_solved_solved.out
index dff224d..dff224d 100644
--- a/test/04_compose/00_solved_solved.out
+++ b/test/040_compose/00_solved_solved.out
diff --git a/test/04_compose/01_solved_U.in b/test/040_compose/01_solved_U.in
index e0559dd..e0559dd 100644
--- a/test/04_compose/01_solved_U.in
+++ b/test/040_compose/01_solved_U.in
diff --git a/test/04_compose/01_solved_U.out b/test/040_compose/01_solved_U.out
index b5b36ad..b5b36ad 100644
--- a/test/04_compose/01_solved_U.out
+++ b/test/040_compose/01_solved_U.out
diff --git a/test/04_compose/02_solved_scrambled.in b/test/040_compose/02_solved_scrambled.in
index ad36258..ad36258 100644
--- a/test/04_compose/02_solved_scrambled.in
+++ b/test/040_compose/02_solved_scrambled.in
diff --git a/test/04_compose/02_solved_scrambled.out b/test/040_compose/02_solved_scrambled.out
index 263213b..263213b 100644
--- a/test/04_compose/02_solved_scrambled.out
+++ b/test/040_compose/02_solved_scrambled.out
diff --git a/test/04_compose/11_U_solved.in b/test/040_compose/11_U_solved.in
index 5993795..5993795 100644
--- a/test/04_compose/11_U_solved.in
+++ b/test/040_compose/11_U_solved.in
diff --git a/test/04_compose/11_U_solved.out b/test/040_compose/11_U_solved.out
index b5b36ad..b5b36ad 100644
--- a/test/04_compose/11_U_solved.out
+++ b/test/040_compose/11_U_solved.out
diff --git a/test/04_compose/12_scrambled_solved.in b/test/040_compose/12_scrambled_solved.in
index 3efd52c..3efd52c 100644
--- a/test/04_compose/12_scrambled_solved.in
+++ b/test/040_compose/12_scrambled_solved.in
diff --git a/test/04_compose/12_scrambled_solved.out b/test/040_compose/12_scrambled_solved.out
index 263213b..263213b 100644
--- a/test/04_compose/12_scrambled_solved.out
+++ b/test/040_compose/12_scrambled_solved.out
diff --git a/test/04_compose/20_U_U.in b/test/040_compose/20_U_U.in
index 2778e82..2778e82 100644
--- a/test/04_compose/20_U_U.in
+++ b/test/040_compose/20_U_U.in
diff --git a/test/04_compose/20_U_U.out b/test/040_compose/20_U_U.out
index 316ad57..316ad57 100644
--- a/test/04_compose/20_U_U.out
+++ b/test/040_compose/20_U_U.out
diff --git a/test/04_compose/21_U_Uinverse.in b/test/040_compose/21_U_Uinverse.in
index 495220e..495220e 100644
--- a/test/04_compose/21_U_Uinverse.in
+++ b/test/040_compose/21_U_Uinverse.in
diff --git a/test/04_compose/21_U_Uinverse.out b/test/040_compose/21_U_Uinverse.out
index dff224d..dff224d 100644
--- a/test/04_compose/21_U_Uinverse.out
+++ b/test/040_compose/21_U_Uinverse.out
diff --git a/test/04_compose/22_F_Finverse.in b/test/040_compose/22_F_Finverse.in
index 4a2f1e6..4a2f1e6 100644
--- a/test/04_compose/22_F_Finverse.in
+++ b/test/040_compose/22_F_Finverse.in
diff --git a/test/04_compose/22_F_Finverse.out b/test/040_compose/22_F_Finverse.out
index dff224d..dff224d 100644
--- a/test/04_compose/22_F_Finverse.out
+++ b/test/040_compose/22_F_Finverse.out
diff --git a/test/04_compose/23_F2_F2.in b/test/040_compose/23_F2_F2.in
index 5fd1081..5fd1081 100644
--- a/test/04_compose/23_F2_F2.in
+++ b/test/040_compose/23_F2_F2.in
diff --git a/test/04_compose/23_F2_F2.out b/test/040_compose/23_F2_F2.out
index dff224d..dff224d 100644
--- a/test/04_compose/23_F2_F2.out
+++ b/test/040_compose/23_F2_F2.out
diff --git a/test/04_compose/24_U_F.in b/test/040_compose/24_U_F.in
index d353f95..d353f95 100644
--- a/test/04_compose/24_U_F.in
+++ b/test/040_compose/24_U_F.in
diff --git a/test/04_compose/24_U_F.out b/test/040_compose/24_U_F.out
index 4fda397..4fda397 100644
--- a/test/04_compose/24_U_F.out
+++ b/test/040_compose/24_U_F.out
diff --git a/test/04_compose/25_F_R.in b/test/040_compose/25_F_R.in
index 2cb5455..2cb5455 100644
--- a/test/04_compose/25_F_R.in
+++ b/test/040_compose/25_F_R.in
diff --git a/test/04_compose/25_F_R.out b/test/040_compose/25_F_R.out
index 2119f37..2119f37 100644
--- a/test/04_compose/25_F_R.out
+++ b/test/040_compose/25_F_R.out
diff --git a/test/04_compose/30_scrambled_inverse.in b/test/040_compose/30_scrambled_inverse.in
index abf72e2..abf72e2 100644
--- a/test/04_compose/30_scrambled_inverse.in
+++ b/test/040_compose/30_scrambled_inverse.in
diff --git a/test/04_compose/30_scrambled_inverse.out b/test/040_compose/30_scrambled_inverse.out
index dff224d..dff224d 100644
--- a/test/04_compose/30_scrambled_inverse.out
+++ b/test/040_compose/30_scrambled_inverse.out
diff --git a/test/04_compose/31_scrambled_scrambled.in b/test/040_compose/31_scrambled_scrambled.in
index 7fe874c..7fe874c 100644
--- a/test/04_compose/31_scrambled_scrambled.in
+++ b/test/040_compose/31_scrambled_scrambled.in
diff --git a/test/04_compose/31_scrambled_scrambled.out b/test/040_compose/31_scrambled_scrambled.out
index 353fb49..353fb49 100644
--- a/test/04_compose/31_scrambled_scrambled.out
+++ b/test/040_compose/31_scrambled_scrambled.out
diff --git a/test/04_compose/compose_tests.c b/test/040_compose/compose_tests.c
index a4a5f00..a4a5f00 100644
--- a/test/04_compose/compose_tests.c
+++ b/test/040_compose/compose_tests.c
diff --git a/test/05_transform/000_solved_UFr.in b/test/050_transform/000_solved_UFr.in
index aa89e85..aa89e85 100644
--- a/test/05_transform/000_solved_UFr.in
+++ b/test/050_transform/000_solved_UFr.in
diff --git a/test/05_transform/000_solved_UFr.out b/test/050_transform/000_solved_UFr.out
index dff224d..dff224d 100644
--- a/test/05_transform/000_solved_UFr.out
+++ b/test/050_transform/000_solved_UFr.out
diff --git a/test/05_transform/001_solved_BLm.in b/test/050_transform/001_solved_BLm.in
index 43aadb8..43aadb8 100644
--- a/test/05_transform/001_solved_BLm.in
+++ b/test/050_transform/001_solved_BLm.in
diff --git a/test/05_transform/001_solved_BLm.out b/test/050_transform/001_solved_BLm.out
index dff224d..dff224d 100644
--- a/test/05_transform/001_solved_BLm.out
+++ b/test/050_transform/001_solved_BLm.out
diff --git a/test/05_transform/100_UFr_U.in b/test/050_transform/100_UFr_U.in
index 80d7af7..80d7af7 100644
--- a/test/05_transform/100_UFr_U.in
+++ b/test/050_transform/100_UFr_U.in
diff --git a/test/05_transform/100_UFr_U.out b/test/050_transform/100_UFr_U.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/100_UFr_U.out
+++ b/test/050_transform/100_UFr_U.out
diff --git a/test/05_transform/101_UFm_U.in b/test/050_transform/101_UFm_U.in
index 17d110e..17d110e 100644
--- a/test/05_transform/101_UFm_U.in
+++ b/test/050_transform/101_UFm_U.in
diff --git a/test/05_transform/101_UFm_U.out b/test/050_transform/101_UFm_U.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/101_UFm_U.out
+++ b/test/050_transform/101_UFm_U.out
diff --git a/test/05_transform/102_UFr_R.in b/test/050_transform/102_UFr_R.in
index 96099d6..96099d6 100644
--- a/test/05_transform/102_UFr_R.in
+++ b/test/050_transform/102_UFr_R.in
diff --git a/test/05_transform/102_UFr_R.out b/test/050_transform/102_UFr_R.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/102_UFr_R.out
+++ b/test/050_transform/102_UFr_R.out
diff --git a/test/05_transform/103_UFm_R.in b/test/050_transform/103_UFm_R.in
index c70a8b5..c70a8b5 100644
--- a/test/05_transform/103_UFm_R.in
+++ b/test/050_transform/103_UFm_R.in
diff --git a/test/05_transform/103_UFm_R.out b/test/050_transform/103_UFm_R.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/103_UFm_R.out
+++ b/test/050_transform/103_UFm_R.out
diff --git a/test/05_transform/104_UFr_F.in b/test/050_transform/104_UFr_F.in
index 0f3585b..0f3585b 100644
--- a/test/05_transform/104_UFr_F.in
+++ b/test/050_transform/104_UFr_F.in
diff --git a/test/05_transform/104_UFr_F.out b/test/050_transform/104_UFr_F.out
index e805af8..e805af8 100644
--- a/test/05_transform/104_UFr_F.out
+++ b/test/050_transform/104_UFr_F.out
diff --git a/test/05_transform/105_UFm_F.in b/test/050_transform/105_UFm_F.in
index e7647bc..e7647bc 100644
--- a/test/05_transform/105_UFm_F.in
+++ b/test/050_transform/105_UFm_F.in
diff --git a/test/05_transform/105_UFm_F.out b/test/050_transform/105_UFm_F.out
index 40f1260..40f1260 100644
--- a/test/05_transform/105_UFm_F.out
+++ b/test/050_transform/105_UFm_F.out
diff --git a/test/05_transform/106_ULr_U.in b/test/050_transform/106_ULr_U.in
index a02f9c3..a02f9c3 100644
--- a/test/05_transform/106_ULr_U.in
+++ b/test/050_transform/106_ULr_U.in
diff --git a/test/05_transform/106_ULr_U.out b/test/050_transform/106_ULr_U.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/106_ULr_U.out
+++ b/test/050_transform/106_ULr_U.out
diff --git a/test/05_transform/107_ULm_U.in b/test/050_transform/107_ULm_U.in
index 73bc6a1..73bc6a1 100644
--- a/test/05_transform/107_ULm_U.in
+++ b/test/050_transform/107_ULm_U.in
diff --git a/test/05_transform/107_ULm_U.out b/test/050_transform/107_ULm_U.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/107_ULm_U.out
+++ b/test/050_transform/107_ULm_U.out
diff --git a/test/05_transform/108_ULr_R.in b/test/050_transform/108_ULr_R.in
index a7cbbb8..a7cbbb8 100644
--- a/test/05_transform/108_ULr_R.in
+++ b/test/050_transform/108_ULr_R.in
diff --git a/test/05_transform/108_ULr_R.out b/test/050_transform/108_ULr_R.out
index e805af8..e805af8 100644
--- a/test/05_transform/108_ULr_R.out
+++ b/test/050_transform/108_ULr_R.out
diff --git a/test/05_transform/109_ULm_R.in b/test/050_transform/109_ULm_R.in
index 7ecf097..7ecf097 100644
--- a/test/05_transform/109_ULm_R.in
+++ b/test/050_transform/109_ULm_R.in
diff --git a/test/05_transform/109_ULm_R.out b/test/050_transform/109_ULm_R.out
index 40f1260..40f1260 100644
--- a/test/05_transform/109_ULm_R.out
+++ b/test/050_transform/109_ULm_R.out
diff --git a/test/05_transform/110_ULr_F.in b/test/050_transform/110_ULr_F.in
index 09a5a9a..09a5a9a 100644
--- a/test/05_transform/110_ULr_F.in
+++ b/test/050_transform/110_ULr_F.in
diff --git a/test/05_transform/110_ULr_F.out b/test/050_transform/110_ULr_F.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/110_ULr_F.out
+++ b/test/050_transform/110_ULr_F.out
diff --git a/test/05_transform/111_ULm_F.in b/test/050_transform/111_ULm_F.in
index 711de44..711de44 100644
--- a/test/05_transform/111_ULm_F.in
+++ b/test/050_transform/111_ULm_F.in
diff --git a/test/05_transform/111_ULm_F.out b/test/050_transform/111_ULm_F.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/111_ULm_F.out
+++ b/test/050_transform/111_ULm_F.out
diff --git a/test/05_transform/112_UBr_U.in b/test/050_transform/112_UBr_U.in
index ce39549..ce39549 100644
--- a/test/05_transform/112_UBr_U.in
+++ b/test/050_transform/112_UBr_U.in
diff --git a/test/05_transform/112_UBr_U.out b/test/050_transform/112_UBr_U.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/112_UBr_U.out
+++ b/test/050_transform/112_UBr_U.out
diff --git a/test/05_transform/113_UBm_U.in b/test/050_transform/113_UBm_U.in
index 14ca42a..14ca42a 100644
--- a/test/05_transform/113_UBm_U.in
+++ b/test/050_transform/113_UBm_U.in
diff --git a/test/05_transform/113_UBm_U.out b/test/050_transform/113_UBm_U.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/113_UBm_U.out
+++ b/test/050_transform/113_UBm_U.out
diff --git a/test/05_transform/114_UBr_R.in b/test/050_transform/114_UBr_R.in
index 5a878d8..5a878d8 100644
--- a/test/05_transform/114_UBr_R.in
+++ b/test/050_transform/114_UBr_R.in
diff --git a/test/05_transform/114_UBr_R.out b/test/050_transform/114_UBr_R.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/114_UBr_R.out
+++ b/test/050_transform/114_UBr_R.out
diff --git a/test/05_transform/115_UBm_R.in b/test/050_transform/115_UBm_R.in
index a4e3aa8..a4e3aa8 100644
--- a/test/05_transform/115_UBm_R.in
+++ b/test/050_transform/115_UBm_R.in
diff --git a/test/05_transform/115_UBm_R.out b/test/050_transform/115_UBm_R.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/115_UBm_R.out
+++ b/test/050_transform/115_UBm_R.out
diff --git a/test/05_transform/116_UBr_F.in b/test/050_transform/116_UBr_F.in
index fc34148..fc34148 100644
--- a/test/05_transform/116_UBr_F.in
+++ b/test/050_transform/116_UBr_F.in
diff --git a/test/05_transform/116_UBr_F.out b/test/050_transform/116_UBr_F.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/116_UBr_F.out
+++ b/test/050_transform/116_UBr_F.out
diff --git a/test/05_transform/117_UBm_F.in b/test/050_transform/117_UBm_F.in
index 79433a7..79433a7 100644
--- a/test/05_transform/117_UBm_F.in
+++ b/test/050_transform/117_UBm_F.in
diff --git a/test/05_transform/117_UBm_F.out b/test/050_transform/117_UBm_F.out
index 1367517..1367517 100644
--- a/test/05_transform/117_UBm_F.out
+++ b/test/050_transform/117_UBm_F.out
diff --git a/test/05_transform/118_URr_U.in b/test/050_transform/118_URr_U.in
index 79ca262..79ca262 100644
--- a/test/05_transform/118_URr_U.in
+++ b/test/050_transform/118_URr_U.in
diff --git a/test/05_transform/118_URr_U.out b/test/050_transform/118_URr_U.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/118_URr_U.out
+++ b/test/050_transform/118_URr_U.out
diff --git a/test/05_transform/119_URm_U.in b/test/050_transform/119_URm_U.in
index 4581c22..4581c22 100644
--- a/test/05_transform/119_URm_U.in
+++ b/test/050_transform/119_URm_U.in
diff --git a/test/05_transform/119_URm_U.out b/test/050_transform/119_URm_U.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/119_URm_U.out
+++ b/test/050_transform/119_URm_U.out
diff --git a/test/05_transform/120_URr_R.in b/test/050_transform/120_URr_R.in
index 4803ca4..4803ca4 100644
--- a/test/05_transform/120_URr_R.in
+++ b/test/050_transform/120_URr_R.in
diff --git a/test/05_transform/120_URr_R.out b/test/050_transform/120_URr_R.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/120_URr_R.out
+++ b/test/050_transform/120_URr_R.out
diff --git a/test/05_transform/121_URm_R.in b/test/050_transform/121_URm_R.in
index df12fd4..df12fd4 100644
--- a/test/05_transform/121_URm_R.in
+++ b/test/050_transform/121_URm_R.in
diff --git a/test/05_transform/121_URm_R.out b/test/050_transform/121_URm_R.out
index 1367517..1367517 100644
--- a/test/05_transform/121_URm_R.out
+++ b/test/050_transform/121_URm_R.out
diff --git a/test/05_transform/122_URr_F.in b/test/050_transform/122_URr_F.in
index 7d06199..7d06199 100644
--- a/test/05_transform/122_URr_F.in
+++ b/test/050_transform/122_URr_F.in
diff --git a/test/05_transform/122_URr_F.out b/test/050_transform/122_URr_F.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/122_URr_F.out
+++ b/test/050_transform/122_URr_F.out
diff --git a/test/05_transform/123_URm_F.in b/test/050_transform/123_URm_F.in
index 8bc2c20..8bc2c20 100644
--- a/test/05_transform/123_URm_F.in
+++ b/test/050_transform/123_URm_F.in
diff --git a/test/05_transform/123_URm_F.out b/test/050_transform/123_URm_F.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/123_URm_F.out
+++ b/test/050_transform/123_URm_F.out
diff --git a/test/05_transform/124_DFr_U.in b/test/050_transform/124_DFr_U.in
index 67200ec..67200ec 100644
--- a/test/05_transform/124_DFr_U.in
+++ b/test/050_transform/124_DFr_U.in
diff --git a/test/05_transform/124_DFr_U.out b/test/050_transform/124_DFr_U.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/124_DFr_U.out
+++ b/test/050_transform/124_DFr_U.out
diff --git a/test/05_transform/125_DFm_U.in b/test/050_transform/125_DFm_U.in
index 33ae235..33ae235 100644
--- a/test/05_transform/125_DFm_U.in
+++ b/test/050_transform/125_DFm_U.in
diff --git a/test/05_transform/125_DFm_U.out b/test/050_transform/125_DFm_U.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/125_DFm_U.out
+++ b/test/050_transform/125_DFm_U.out
diff --git a/test/05_transform/126_DFr_R.in b/test/050_transform/126_DFr_R.in
index f74ba46..f74ba46 100644
--- a/test/05_transform/126_DFr_R.in
+++ b/test/050_transform/126_DFr_R.in
diff --git a/test/05_transform/126_DFr_R.out b/test/050_transform/126_DFr_R.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/126_DFr_R.out
+++ b/test/050_transform/126_DFr_R.out
diff --git a/test/05_transform/127_DFm_R.in b/test/050_transform/127_DFm_R.in
index 5d930d2..5d930d2 100644
--- a/test/05_transform/127_DFm_R.in
+++ b/test/050_transform/127_DFm_R.in
diff --git a/test/05_transform/127_DFm_R.out b/test/050_transform/127_DFm_R.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/127_DFm_R.out
+++ b/test/050_transform/127_DFm_R.out
diff --git a/test/05_transform/128_DFr_F.in b/test/050_transform/128_DFr_F.in
index eb04f3b..eb04f3b 100644
--- a/test/05_transform/128_DFr_F.in
+++ b/test/050_transform/128_DFr_F.in
diff --git a/test/05_transform/128_DFr_F.out b/test/050_transform/128_DFr_F.out
index e805af8..e805af8 100644
--- a/test/05_transform/128_DFr_F.out
+++ b/test/050_transform/128_DFr_F.out
diff --git a/test/05_transform/129_DFm_F.in b/test/050_transform/129_DFm_F.in
index ccd60a7..ccd60a7 100644
--- a/test/05_transform/129_DFm_F.in
+++ b/test/050_transform/129_DFm_F.in
diff --git a/test/05_transform/129_DFm_F.out b/test/050_transform/129_DFm_F.out
index 40f1260..40f1260 100644
--- a/test/05_transform/129_DFm_F.out
+++ b/test/050_transform/129_DFm_F.out
diff --git a/test/05_transform/130_DLr_U.in b/test/050_transform/130_DLr_U.in
index 4aa7b90..4aa7b90 100644
--- a/test/05_transform/130_DLr_U.in
+++ b/test/050_transform/130_DLr_U.in
diff --git a/test/05_transform/130_DLr_U.out b/test/050_transform/130_DLr_U.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/130_DLr_U.out
+++ b/test/050_transform/130_DLr_U.out
diff --git a/test/05_transform/131_DLm_U.in b/test/050_transform/131_DLm_U.in
index 6097c66..6097c66 100644
--- a/test/05_transform/131_DLm_U.in
+++ b/test/050_transform/131_DLm_U.in
diff --git a/test/05_transform/131_DLm_U.out b/test/050_transform/131_DLm_U.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/131_DLm_U.out
+++ b/test/050_transform/131_DLm_U.out
diff --git a/test/05_transform/132_DLr_R.in b/test/050_transform/132_DLr_R.in
index 60f1ede..60f1ede 100644
--- a/test/05_transform/132_DLr_R.in
+++ b/test/050_transform/132_DLr_R.in
diff --git a/test/05_transform/132_DLr_R.out b/test/050_transform/132_DLr_R.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/132_DLr_R.out
+++ b/test/050_transform/132_DLr_R.out
diff --git a/test/05_transform/133_DLm_R.in b/test/050_transform/133_DLm_R.in
index 018921c..018921c 100644
--- a/test/05_transform/133_DLm_R.in
+++ b/test/050_transform/133_DLm_R.in
diff --git a/test/05_transform/133_DLm_R.out b/test/050_transform/133_DLm_R.out
index 1367517..1367517 100644
--- a/test/05_transform/133_DLm_R.out
+++ b/test/050_transform/133_DLm_R.out
diff --git a/test/05_transform/134_DLr_F.in b/test/050_transform/134_DLr_F.in
index 5254f1f..5254f1f 100644
--- a/test/05_transform/134_DLr_F.in
+++ b/test/050_transform/134_DLr_F.in
diff --git a/test/05_transform/134_DLr_F.out b/test/050_transform/134_DLr_F.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/134_DLr_F.out
+++ b/test/050_transform/134_DLr_F.out
diff --git a/test/05_transform/135_DLm_F.in b/test/050_transform/135_DLm_F.in
index 57c8406..57c8406 100644
--- a/test/05_transform/135_DLm_F.in
+++ b/test/050_transform/135_DLm_F.in
diff --git a/test/05_transform/135_DLm_F.out b/test/050_transform/135_DLm_F.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/135_DLm_F.out
+++ b/test/050_transform/135_DLm_F.out
diff --git a/test/05_transform/136_DBr_U.in b/test/050_transform/136_DBr_U.in
index 34f37cb..34f37cb 100644
--- a/test/05_transform/136_DBr_U.in
+++ b/test/050_transform/136_DBr_U.in
diff --git a/test/05_transform/136_DBr_U.out b/test/050_transform/136_DBr_U.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/136_DBr_U.out
+++ b/test/050_transform/136_DBr_U.out
diff --git a/test/05_transform/137_DBm_U.in b/test/050_transform/137_DBm_U.in
index 5425205..5425205 100644
--- a/test/05_transform/137_DBm_U.in
+++ b/test/050_transform/137_DBm_U.in
diff --git a/test/05_transform/137_DBm_U.out b/test/050_transform/137_DBm_U.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/137_DBm_U.out
+++ b/test/050_transform/137_DBm_U.out
diff --git a/test/05_transform/138_DBr_R.in b/test/050_transform/138_DBr_R.in
index 99974cd..99974cd 100644
--- a/test/05_transform/138_DBr_R.in
+++ b/test/050_transform/138_DBr_R.in
diff --git a/test/05_transform/138_DBr_R.out b/test/050_transform/138_DBr_R.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/138_DBr_R.out
+++ b/test/050_transform/138_DBr_R.out
diff --git a/test/05_transform/139_DBm_R.in b/test/050_transform/139_DBm_R.in
index cb84382..cb84382 100644
--- a/test/05_transform/139_DBm_R.in
+++ b/test/050_transform/139_DBm_R.in
diff --git a/test/05_transform/139_DBm_R.out b/test/050_transform/139_DBm_R.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/139_DBm_R.out
+++ b/test/050_transform/139_DBm_R.out
diff --git a/test/05_transform/140_DBr_F.in b/test/050_transform/140_DBr_F.in
index 1342ce5..1342ce5 100644
--- a/test/05_transform/140_DBr_F.in
+++ b/test/050_transform/140_DBr_F.in
diff --git a/test/05_transform/140_DBr_F.out b/test/050_transform/140_DBr_F.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/140_DBr_F.out
+++ b/test/050_transform/140_DBr_F.out
diff --git a/test/05_transform/141_DBm_F.in b/test/050_transform/141_DBm_F.in
index a7fb608..a7fb608 100644
--- a/test/05_transform/141_DBm_F.in
+++ b/test/050_transform/141_DBm_F.in
diff --git a/test/05_transform/141_DBm_F.out b/test/050_transform/141_DBm_F.out
index 1367517..1367517 100644
--- a/test/05_transform/141_DBm_F.out
+++ b/test/050_transform/141_DBm_F.out
diff --git a/test/05_transform/142_DRr_U.in b/test/050_transform/142_DRr_U.in
index c24b8a3..c24b8a3 100644
--- a/test/05_transform/142_DRr_U.in
+++ b/test/050_transform/142_DRr_U.in
diff --git a/test/05_transform/142_DRr_U.out b/test/050_transform/142_DRr_U.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/142_DRr_U.out
+++ b/test/050_transform/142_DRr_U.out
diff --git a/test/05_transform/143_DRm_U.in b/test/050_transform/143_DRm_U.in
index 27d922f..27d922f 100644
--- a/test/05_transform/143_DRm_U.in
+++ b/test/050_transform/143_DRm_U.in
diff --git a/test/05_transform/143_DRm_U.out b/test/050_transform/143_DRm_U.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/143_DRm_U.out
+++ b/test/050_transform/143_DRm_U.out
diff --git a/test/05_transform/144_DRr_R.in b/test/050_transform/144_DRr_R.in
index ed38629..ed38629 100644
--- a/test/05_transform/144_DRr_R.in
+++ b/test/050_transform/144_DRr_R.in
diff --git a/test/05_transform/144_DRr_R.out b/test/050_transform/144_DRr_R.out
index e805af8..e805af8 100644
--- a/test/05_transform/144_DRr_R.out
+++ b/test/050_transform/144_DRr_R.out
diff --git a/test/05_transform/145_DRm_R.in b/test/050_transform/145_DRm_R.in
index e973e52..e973e52 100644
--- a/test/05_transform/145_DRm_R.in
+++ b/test/050_transform/145_DRm_R.in
diff --git a/test/05_transform/145_DRm_R.out b/test/050_transform/145_DRm_R.out
index 40f1260..40f1260 100644
--- a/test/05_transform/145_DRm_R.out
+++ b/test/050_transform/145_DRm_R.out
diff --git a/test/05_transform/146_DRr_F.in b/test/050_transform/146_DRr_F.in
index 03b1d5b..03b1d5b 100644
--- a/test/05_transform/146_DRr_F.in
+++ b/test/050_transform/146_DRr_F.in
diff --git a/test/05_transform/146_DRr_F.out b/test/050_transform/146_DRr_F.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/146_DRr_F.out
+++ b/test/050_transform/146_DRr_F.out
diff --git a/test/05_transform/147_DRm_F.in b/test/050_transform/147_DRm_F.in
index 25992d6..25992d6 100644
--- a/test/05_transform/147_DRm_F.in
+++ b/test/050_transform/147_DRm_F.in
diff --git a/test/05_transform/147_DRm_F.out b/test/050_transform/147_DRm_F.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/147_DRm_F.out
+++ b/test/050_transform/147_DRm_F.out
diff --git a/test/05_transform/148_RUr_U.in b/test/050_transform/148_RUr_U.in
index b808fc6..b808fc6 100644
--- a/test/05_transform/148_RUr_U.in
+++ b/test/050_transform/148_RUr_U.in
diff --git a/test/05_transform/148_RUr_U.out b/test/050_transform/148_RUr_U.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/148_RUr_U.out
+++ b/test/050_transform/148_RUr_U.out
diff --git a/test/05_transform/149_RUm_U.in b/test/050_transform/149_RUm_U.in
index 55665cb..55665cb 100644
--- a/test/05_transform/149_RUm_U.in
+++ b/test/050_transform/149_RUm_U.in
diff --git a/test/05_transform/149_RUm_U.out b/test/050_transform/149_RUm_U.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/149_RUm_U.out
+++ b/test/050_transform/149_RUm_U.out
diff --git a/test/05_transform/150_RUr_R.in b/test/050_transform/150_RUr_R.in
index 94895e0..94895e0 100644
--- a/test/05_transform/150_RUr_R.in
+++ b/test/050_transform/150_RUr_R.in
diff --git a/test/05_transform/150_RUr_R.out b/test/050_transform/150_RUr_R.out
index e805af8..e805af8 100644
--- a/test/05_transform/150_RUr_R.out
+++ b/test/050_transform/150_RUr_R.out
diff --git a/test/05_transform/151_RUm_R.in b/test/050_transform/151_RUm_R.in
index 442548e..442548e 100644
--- a/test/05_transform/151_RUm_R.in
+++ b/test/050_transform/151_RUm_R.in
diff --git a/test/05_transform/151_RUm_R.out b/test/050_transform/151_RUm_R.out
index 40f1260..40f1260 100644
--- a/test/05_transform/151_RUm_R.out
+++ b/test/050_transform/151_RUm_R.out
diff --git a/test/05_transform/152_RUr_F.in b/test/050_transform/152_RUr_F.in
index 07bb28e..07bb28e 100644
--- a/test/05_transform/152_RUr_F.in
+++ b/test/050_transform/152_RUr_F.in
diff --git a/test/05_transform/152_RUr_F.out b/test/050_transform/152_RUr_F.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/152_RUr_F.out
+++ b/test/050_transform/152_RUr_F.out
diff --git a/test/05_transform/153_RUm_F.in b/test/050_transform/153_RUm_F.in
index d3364d0..d3364d0 100644
--- a/test/05_transform/153_RUm_F.in
+++ b/test/050_transform/153_RUm_F.in
diff --git a/test/05_transform/153_RUm_F.out b/test/050_transform/153_RUm_F.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/153_RUm_F.out
+++ b/test/050_transform/153_RUm_F.out
diff --git a/test/05_transform/154_RFr_U.in b/test/050_transform/154_RFr_U.in
index ddec358..ddec358 100644
--- a/test/05_transform/154_RFr_U.in
+++ b/test/050_transform/154_RFr_U.in
diff --git a/test/05_transform/154_RFr_U.out b/test/050_transform/154_RFr_U.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/154_RFr_U.out
+++ b/test/050_transform/154_RFr_U.out
diff --git a/test/05_transform/155_RFm_U.in b/test/050_transform/155_RFm_U.in
index bd4b0e5..bd4b0e5 100644
--- a/test/05_transform/155_RFm_U.in
+++ b/test/050_transform/155_RFm_U.in
diff --git a/test/05_transform/155_RFm_U.out b/test/050_transform/155_RFm_U.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/155_RFm_U.out
+++ b/test/050_transform/155_RFm_U.out
diff --git a/test/05_transform/156_RFr_R.in b/test/050_transform/156_RFr_R.in
index 5263302..5263302 100644
--- a/test/05_transform/156_RFr_R.in
+++ b/test/050_transform/156_RFr_R.in
diff --git a/test/05_transform/156_RFr_R.out b/test/050_transform/156_RFr_R.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/156_RFr_R.out
+++ b/test/050_transform/156_RFr_R.out
diff --git a/test/05_transform/157_RFm_R.in b/test/050_transform/157_RFm_R.in
index 42c4e14..42c4e14 100644
--- a/test/05_transform/157_RFm_R.in
+++ b/test/050_transform/157_RFm_R.in
diff --git a/test/05_transform/157_RFm_R.out b/test/050_transform/157_RFm_R.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/157_RFm_R.out
+++ b/test/050_transform/157_RFm_R.out
diff --git a/test/05_transform/158_RFr_F.in b/test/050_transform/158_RFr_F.in
index dc60055..dc60055 100644
--- a/test/05_transform/158_RFr_F.in
+++ b/test/050_transform/158_RFr_F.in
diff --git a/test/05_transform/158_RFr_F.out b/test/050_transform/158_RFr_F.out
index e805af8..e805af8 100644
--- a/test/05_transform/158_RFr_F.out
+++ b/test/050_transform/158_RFr_F.out
diff --git a/test/05_transform/159_RFm_F.in b/test/050_transform/159_RFm_F.in
index 046926a..046926a 100644
--- a/test/05_transform/159_RFm_F.in
+++ b/test/050_transform/159_RFm_F.in
diff --git a/test/05_transform/159_RFm_F.out b/test/050_transform/159_RFm_F.out
index 40f1260..40f1260 100644
--- a/test/05_transform/159_RFm_F.out
+++ b/test/050_transform/159_RFm_F.out
diff --git a/test/05_transform/160_RDr_U.in b/test/050_transform/160_RDr_U.in
index 3bac222..3bac222 100644
--- a/test/05_transform/160_RDr_U.in
+++ b/test/050_transform/160_RDr_U.in
diff --git a/test/05_transform/160_RDr_U.out b/test/050_transform/160_RDr_U.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/160_RDr_U.out
+++ b/test/050_transform/160_RDr_U.out
diff --git a/test/05_transform/161_RDm_U.in b/test/050_transform/161_RDm_U.in
index e5e4bba..e5e4bba 100644
--- a/test/05_transform/161_RDm_U.in
+++ b/test/050_transform/161_RDm_U.in
diff --git a/test/05_transform/161_RDm_U.out b/test/050_transform/161_RDm_U.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/161_RDm_U.out
+++ b/test/050_transform/161_RDm_U.out
diff --git a/test/05_transform/162_RDr_R.in b/test/050_transform/162_RDr_R.in
index d1e5f31..d1e5f31 100644
--- a/test/05_transform/162_RDr_R.in
+++ b/test/050_transform/162_RDr_R.in
diff --git a/test/05_transform/162_RDr_R.out b/test/050_transform/162_RDr_R.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/162_RDr_R.out
+++ b/test/050_transform/162_RDr_R.out
diff --git a/test/05_transform/163_RDm_R.in b/test/050_transform/163_RDm_R.in
index 8b1ee98..8b1ee98 100644
--- a/test/05_transform/163_RDm_R.in
+++ b/test/050_transform/163_RDm_R.in
diff --git a/test/05_transform/163_RDm_R.out b/test/050_transform/163_RDm_R.out
index 1367517..1367517 100644
--- a/test/05_transform/163_RDm_R.out
+++ b/test/050_transform/163_RDm_R.out
diff --git a/test/05_transform/164_RDr_F.in b/test/050_transform/164_RDr_F.in
index 4b49b13..4b49b13 100644
--- a/test/05_transform/164_RDr_F.in
+++ b/test/050_transform/164_RDr_F.in
diff --git a/test/05_transform/164_RDr_F.out b/test/050_transform/164_RDr_F.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/164_RDr_F.out
+++ b/test/050_transform/164_RDr_F.out
diff --git a/test/05_transform/165_RDm_F.in b/test/050_transform/165_RDm_F.in
index db4f4ee..db4f4ee 100644
--- a/test/05_transform/165_RDm_F.in
+++ b/test/050_transform/165_RDm_F.in
diff --git a/test/05_transform/165_RDm_F.out b/test/050_transform/165_RDm_F.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/165_RDm_F.out
+++ b/test/050_transform/165_RDm_F.out
diff --git a/test/05_transform/166_RBr_U.in b/test/050_transform/166_RBr_U.in
index 48f85f1..48f85f1 100644
--- a/test/05_transform/166_RBr_U.in
+++ b/test/050_transform/166_RBr_U.in
diff --git a/test/05_transform/166_RBr_U.out b/test/050_transform/166_RBr_U.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/166_RBr_U.out
+++ b/test/050_transform/166_RBr_U.out
diff --git a/test/05_transform/167_RBm_U.in b/test/050_transform/167_RBm_U.in
index 036bb07..036bb07 100644
--- a/test/05_transform/167_RBm_U.in
+++ b/test/050_transform/167_RBm_U.in
diff --git a/test/05_transform/167_RBm_U.out b/test/050_transform/167_RBm_U.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/167_RBm_U.out
+++ b/test/050_transform/167_RBm_U.out
diff --git a/test/05_transform/168_RBr_R.in b/test/050_transform/168_RBr_R.in
index 94f799c..94f799c 100644
--- a/test/05_transform/168_RBr_R.in
+++ b/test/050_transform/168_RBr_R.in
diff --git a/test/05_transform/168_RBr_R.out b/test/050_transform/168_RBr_R.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/168_RBr_R.out
+++ b/test/050_transform/168_RBr_R.out
diff --git a/test/05_transform/169_RBm_R.in b/test/050_transform/169_RBm_R.in
index 46cce80..46cce80 100644
--- a/test/05_transform/169_RBm_R.in
+++ b/test/050_transform/169_RBm_R.in
diff --git a/test/05_transform/169_RBm_R.out b/test/050_transform/169_RBm_R.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/169_RBm_R.out
+++ b/test/050_transform/169_RBm_R.out
diff --git a/test/05_transform/170_RBr_F.in b/test/050_transform/170_RBr_F.in
index 54b6b57..54b6b57 100644
--- a/test/05_transform/170_RBr_F.in
+++ b/test/050_transform/170_RBr_F.in
diff --git a/test/05_transform/170_RBr_F.out b/test/050_transform/170_RBr_F.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/170_RBr_F.out
+++ b/test/050_transform/170_RBr_F.out
diff --git a/test/05_transform/171_RBm_F.in b/test/050_transform/171_RBm_F.in
index b0b4c04..b0b4c04 100644
--- a/test/05_transform/171_RBm_F.in
+++ b/test/050_transform/171_RBm_F.in
diff --git a/test/05_transform/171_RBm_F.out b/test/050_transform/171_RBm_F.out
index 1367517..1367517 100644
--- a/test/05_transform/171_RBm_F.out
+++ b/test/050_transform/171_RBm_F.out
diff --git a/test/05_transform/172_LUr_U.in b/test/050_transform/172_LUr_U.in
index d4de425..d4de425 100644
--- a/test/05_transform/172_LUr_U.in
+++ b/test/050_transform/172_LUr_U.in
diff --git a/test/05_transform/172_LUr_U.out b/test/050_transform/172_LUr_U.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/172_LUr_U.out
+++ b/test/050_transform/172_LUr_U.out
diff --git a/test/05_transform/173_LUm_U.in b/test/050_transform/173_LUm_U.in
index 7530802..7530802 100644
--- a/test/05_transform/173_LUm_U.in
+++ b/test/050_transform/173_LUm_U.in
diff --git a/test/05_transform/173_LUm_U.out b/test/050_transform/173_LUm_U.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/173_LUm_U.out
+++ b/test/050_transform/173_LUm_U.out
diff --git a/test/05_transform/174_LUr_R.in b/test/050_transform/174_LUr_R.in
index ac3b675..ac3b675 100644
--- a/test/05_transform/174_LUr_R.in
+++ b/test/050_transform/174_LUr_R.in
diff --git a/test/05_transform/174_LUr_R.out b/test/050_transform/174_LUr_R.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/174_LUr_R.out
+++ b/test/050_transform/174_LUr_R.out
diff --git a/test/05_transform/175_LUm_R.in b/test/050_transform/175_LUm_R.in
index 42168b5..42168b5 100644
--- a/test/05_transform/175_LUm_R.in
+++ b/test/050_transform/175_LUm_R.in
diff --git a/test/05_transform/175_LUm_R.out b/test/050_transform/175_LUm_R.out
index 1367517..1367517 100644
--- a/test/05_transform/175_LUm_R.out
+++ b/test/050_transform/175_LUm_R.out
diff --git a/test/05_transform/176_LUr_F.in b/test/050_transform/176_LUr_F.in
index 65f37e9..65f37e9 100644
--- a/test/05_transform/176_LUr_F.in
+++ b/test/050_transform/176_LUr_F.in
diff --git a/test/05_transform/176_LUr_F.out b/test/050_transform/176_LUr_F.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/176_LUr_F.out
+++ b/test/050_transform/176_LUr_F.out
diff --git a/test/05_transform/177_LUm_F.in b/test/050_transform/177_LUm_F.in
index c4428a7..c4428a7 100644
--- a/test/05_transform/177_LUm_F.in
+++ b/test/050_transform/177_LUm_F.in
diff --git a/test/05_transform/177_LUm_F.out b/test/050_transform/177_LUm_F.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/177_LUm_F.out
+++ b/test/050_transform/177_LUm_F.out
diff --git a/test/05_transform/178_LFr_U.in b/test/050_transform/178_LFr_U.in
index 9d20035..9d20035 100644
--- a/test/05_transform/178_LFr_U.in
+++ b/test/050_transform/178_LFr_U.in
diff --git a/test/05_transform/178_LFr_U.out b/test/050_transform/178_LFr_U.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/178_LFr_U.out
+++ b/test/050_transform/178_LFr_U.out
diff --git a/test/05_transform/179_LFm_U.in b/test/050_transform/179_LFm_U.in
index c773f71..c773f71 100644
--- a/test/05_transform/179_LFm_U.in
+++ b/test/050_transform/179_LFm_U.in
diff --git a/test/05_transform/179_LFm_U.out b/test/050_transform/179_LFm_U.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/179_LFm_U.out
+++ b/test/050_transform/179_LFm_U.out
diff --git a/test/05_transform/180_LFr_R.in b/test/050_transform/180_LFr_R.in
index 059725a..059725a 100644
--- a/test/05_transform/180_LFr_R.in
+++ b/test/050_transform/180_LFr_R.in
diff --git a/test/05_transform/180_LFr_R.out b/test/050_transform/180_LFr_R.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/180_LFr_R.out
+++ b/test/050_transform/180_LFr_R.out
diff --git a/test/05_transform/181_LFm_R.in b/test/050_transform/181_LFm_R.in
index 23d26dc..23d26dc 100644
--- a/test/05_transform/181_LFm_R.in
+++ b/test/050_transform/181_LFm_R.in
diff --git a/test/05_transform/181_LFm_R.out b/test/050_transform/181_LFm_R.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/181_LFm_R.out
+++ b/test/050_transform/181_LFm_R.out
diff --git a/test/05_transform/182_LFr_F.in b/test/050_transform/182_LFr_F.in
index 94d3342..94d3342 100644
--- a/test/05_transform/182_LFr_F.in
+++ b/test/050_transform/182_LFr_F.in
diff --git a/test/05_transform/182_LFr_F.out b/test/050_transform/182_LFr_F.out
index e805af8..e805af8 100644
--- a/test/05_transform/182_LFr_F.out
+++ b/test/050_transform/182_LFr_F.out
diff --git a/test/05_transform/183_LFm_F.in b/test/050_transform/183_LFm_F.in
index 4170885..4170885 100644
--- a/test/05_transform/183_LFm_F.in
+++ b/test/050_transform/183_LFm_F.in
diff --git a/test/05_transform/183_LFm_F.out b/test/050_transform/183_LFm_F.out
index 40f1260..40f1260 100644
--- a/test/05_transform/183_LFm_F.out
+++ b/test/050_transform/183_LFm_F.out
diff --git a/test/05_transform/184_LDr_U.in b/test/050_transform/184_LDr_U.in
index d8a9460..d8a9460 100644
--- a/test/05_transform/184_LDr_U.in
+++ b/test/050_transform/184_LDr_U.in
diff --git a/test/05_transform/184_LDr_U.out b/test/050_transform/184_LDr_U.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/184_LDr_U.out
+++ b/test/050_transform/184_LDr_U.out
diff --git a/test/05_transform/185_LDm_U.in b/test/050_transform/185_LDm_U.in
index 692a72b..692a72b 100644
--- a/test/05_transform/185_LDm_U.in
+++ b/test/050_transform/185_LDm_U.in
diff --git a/test/05_transform/185_LDm_U.out b/test/050_transform/185_LDm_U.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/185_LDm_U.out
+++ b/test/050_transform/185_LDm_U.out
diff --git a/test/05_transform/186_LDr_R.in b/test/050_transform/186_LDr_R.in
index e303013..e303013 100644
--- a/test/05_transform/186_LDr_R.in
+++ b/test/050_transform/186_LDr_R.in
diff --git a/test/05_transform/186_LDr_R.out b/test/050_transform/186_LDr_R.out
index e805af8..e805af8 100644
--- a/test/05_transform/186_LDr_R.out
+++ b/test/050_transform/186_LDr_R.out
diff --git a/test/05_transform/187_LDm_R.in b/test/050_transform/187_LDm_R.in
index b09a13c..b09a13c 100644
--- a/test/05_transform/187_LDm_R.in
+++ b/test/050_transform/187_LDm_R.in
diff --git a/test/05_transform/187_LDm_R.out b/test/050_transform/187_LDm_R.out
index 40f1260..40f1260 100644
--- a/test/05_transform/187_LDm_R.out
+++ b/test/050_transform/187_LDm_R.out
diff --git a/test/05_transform/188_LDr_F.in b/test/050_transform/188_LDr_F.in
index 9af43b3..9af43b3 100644
--- a/test/05_transform/188_LDr_F.in
+++ b/test/050_transform/188_LDr_F.in
diff --git a/test/05_transform/188_LDr_F.out b/test/050_transform/188_LDr_F.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/188_LDr_F.out
+++ b/test/050_transform/188_LDr_F.out
diff --git a/test/05_transform/189_LDm_F.in b/test/050_transform/189_LDm_F.in
index 97d8e51..97d8e51 100644
--- a/test/05_transform/189_LDm_F.in
+++ b/test/050_transform/189_LDm_F.in
diff --git a/test/05_transform/189_LDm_F.out b/test/050_transform/189_LDm_F.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/189_LDm_F.out
+++ b/test/050_transform/189_LDm_F.out
diff --git a/test/05_transform/190_LBr_U.in b/test/050_transform/190_LBr_U.in
index 2003378..2003378 100644
--- a/test/05_transform/190_LBr_U.in
+++ b/test/050_transform/190_LBr_U.in
diff --git a/test/05_transform/190_LBr_U.out b/test/050_transform/190_LBr_U.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/190_LBr_U.out
+++ b/test/050_transform/190_LBr_U.out
diff --git a/test/05_transform/191_LBm_U.in b/test/050_transform/191_LBm_U.in
index c3e7251..c3e7251 100644
--- a/test/05_transform/191_LBm_U.in
+++ b/test/050_transform/191_LBm_U.in
diff --git a/test/05_transform/191_LBm_U.out b/test/050_transform/191_LBm_U.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/191_LBm_U.out
+++ b/test/050_transform/191_LBm_U.out
diff --git a/test/05_transform/192_LBr_R.in b/test/050_transform/192_LBr_R.in
index 67bdd40..67bdd40 100644
--- a/test/05_transform/192_LBr_R.in
+++ b/test/050_transform/192_LBr_R.in
diff --git a/test/05_transform/192_LBr_R.out b/test/050_transform/192_LBr_R.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/192_LBr_R.out
+++ b/test/050_transform/192_LBr_R.out
diff --git a/test/05_transform/193_LBm_R.in b/test/050_transform/193_LBm_R.in
index b8f4b6f..b8f4b6f 100644
--- a/test/05_transform/193_LBm_R.in
+++ b/test/050_transform/193_LBm_R.in
diff --git a/test/05_transform/193_LBm_R.out b/test/050_transform/193_LBm_R.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/193_LBm_R.out
+++ b/test/050_transform/193_LBm_R.out
diff --git a/test/05_transform/194_LBr_F.in b/test/050_transform/194_LBr_F.in
index 3ff9823..3ff9823 100644
--- a/test/05_transform/194_LBr_F.in
+++ b/test/050_transform/194_LBr_F.in
diff --git a/test/05_transform/194_LBr_F.out b/test/050_transform/194_LBr_F.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/194_LBr_F.out
+++ b/test/050_transform/194_LBr_F.out
diff --git a/test/05_transform/195_LBm_F.in b/test/050_transform/195_LBm_F.in
index 35cb55f..35cb55f 100644
--- a/test/05_transform/195_LBm_F.in
+++ b/test/050_transform/195_LBm_F.in
diff --git a/test/05_transform/195_LBm_F.out b/test/050_transform/195_LBm_F.out
index 1367517..1367517 100644
--- a/test/05_transform/195_LBm_F.out
+++ b/test/050_transform/195_LBm_F.out
diff --git a/test/05_transform/196_FUr_U.in b/test/050_transform/196_FUr_U.in
index 489b248..489b248 100644
--- a/test/05_transform/196_FUr_U.in
+++ b/test/050_transform/196_FUr_U.in
diff --git a/test/05_transform/196_FUr_U.out b/test/050_transform/196_FUr_U.out
index e805af8..e805af8 100644
--- a/test/05_transform/196_FUr_U.out
+++ b/test/050_transform/196_FUr_U.out
diff --git a/test/05_transform/197_FUm_U.in b/test/050_transform/197_FUm_U.in
index e11003f..e11003f 100644
--- a/test/05_transform/197_FUm_U.in
+++ b/test/050_transform/197_FUm_U.in
diff --git a/test/05_transform/197_FUm_U.out b/test/050_transform/197_FUm_U.out
index 40f1260..40f1260 100644
--- a/test/05_transform/197_FUm_U.out
+++ b/test/050_transform/197_FUm_U.out
diff --git a/test/05_transform/198_FUr_R.in b/test/050_transform/198_FUr_R.in
index d44ba29..d44ba29 100644
--- a/test/05_transform/198_FUr_R.in
+++ b/test/050_transform/198_FUr_R.in
diff --git a/test/05_transform/198_FUr_R.out b/test/050_transform/198_FUr_R.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/198_FUr_R.out
+++ b/test/050_transform/198_FUr_R.out
diff --git a/test/05_transform/199_FUm_R.in b/test/050_transform/199_FUm_R.in
index a803843..a803843 100644
--- a/test/05_transform/199_FUm_R.in
+++ b/test/050_transform/199_FUm_R.in
diff --git a/test/05_transform/199_FUm_R.out b/test/050_transform/199_FUm_R.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/199_FUm_R.out
+++ b/test/050_transform/199_FUm_R.out
diff --git a/test/05_transform/200_FUr_F.in b/test/050_transform/200_FUr_F.in
index beaac09..beaac09 100644
--- a/test/05_transform/200_FUr_F.in
+++ b/test/050_transform/200_FUr_F.in
diff --git a/test/05_transform/200_FUr_F.out b/test/050_transform/200_FUr_F.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/200_FUr_F.out
+++ b/test/050_transform/200_FUr_F.out
diff --git a/test/05_transform/201_FUm_F.in b/test/050_transform/201_FUm_F.in
index 802b0b3..802b0b3 100644
--- a/test/05_transform/201_FUm_F.in
+++ b/test/050_transform/201_FUm_F.in
diff --git a/test/05_transform/201_FUm_F.out b/test/050_transform/201_FUm_F.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/201_FUm_F.out
+++ b/test/050_transform/201_FUm_F.out
diff --git a/test/05_transform/202_FRr_U.in b/test/050_transform/202_FRr_U.in
index ac903a9..ac903a9 100644
--- a/test/05_transform/202_FRr_U.in
+++ b/test/050_transform/202_FRr_U.in
diff --git a/test/05_transform/202_FRr_U.out b/test/050_transform/202_FRr_U.out
index e805af8..e805af8 100644
--- a/test/05_transform/202_FRr_U.out
+++ b/test/050_transform/202_FRr_U.out
diff --git a/test/05_transform/203_FRm_U.in b/test/050_transform/203_FRm_U.in
index e11a81e..e11a81e 100644
--- a/test/05_transform/203_FRm_U.in
+++ b/test/050_transform/203_FRm_U.in
diff --git a/test/05_transform/203_FRm_U.out b/test/050_transform/203_FRm_U.out
index 40f1260..40f1260 100644
--- a/test/05_transform/203_FRm_U.out
+++ b/test/050_transform/203_FRm_U.out
diff --git a/test/05_transform/204_FRr_R.in b/test/050_transform/204_FRr_R.in
index 1a06d75..1a06d75 100644
--- a/test/05_transform/204_FRr_R.in
+++ b/test/050_transform/204_FRr_R.in
diff --git a/test/05_transform/204_FRr_R.out b/test/050_transform/204_FRr_R.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/204_FRr_R.out
+++ b/test/050_transform/204_FRr_R.out
diff --git a/test/05_transform/205_FRm_R.in b/test/050_transform/205_FRm_R.in
index cd0caf6..cd0caf6 100644
--- a/test/05_transform/205_FRm_R.in
+++ b/test/050_transform/205_FRm_R.in
diff --git a/test/05_transform/205_FRm_R.out b/test/050_transform/205_FRm_R.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/205_FRm_R.out
+++ b/test/050_transform/205_FRm_R.out
diff --git a/test/05_transform/206_FRr_F.in b/test/050_transform/206_FRr_F.in
index 1afb42b..1afb42b 100644
--- a/test/05_transform/206_FRr_F.in
+++ b/test/050_transform/206_FRr_F.in
diff --git a/test/05_transform/206_FRr_F.out b/test/050_transform/206_FRr_F.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/206_FRr_F.out
+++ b/test/050_transform/206_FRr_F.out
diff --git a/test/05_transform/207_FRm_F.in b/test/050_transform/207_FRm_F.in
index e2f75d0..e2f75d0 100644
--- a/test/05_transform/207_FRm_F.in
+++ b/test/050_transform/207_FRm_F.in
diff --git a/test/05_transform/207_FRm_F.out b/test/050_transform/207_FRm_F.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/207_FRm_F.out
+++ b/test/050_transform/207_FRm_F.out
diff --git a/test/05_transform/208_FDr_U.in b/test/050_transform/208_FDr_U.in
index f18744e..f18744e 100644
--- a/test/05_transform/208_FDr_U.in
+++ b/test/050_transform/208_FDr_U.in
diff --git a/test/05_transform/208_FDr_U.out b/test/050_transform/208_FDr_U.out
index e805af8..e805af8 100644
--- a/test/05_transform/208_FDr_U.out
+++ b/test/050_transform/208_FDr_U.out
diff --git a/test/05_transform/209_FDm_U.in b/test/050_transform/209_FDm_U.in
index 5ac46b4..5ac46b4 100644
--- a/test/05_transform/209_FDm_U.in
+++ b/test/050_transform/209_FDm_U.in
diff --git a/test/05_transform/209_FDm_U.out b/test/050_transform/209_FDm_U.out
index 40f1260..40f1260 100644
--- a/test/05_transform/209_FDm_U.out
+++ b/test/050_transform/209_FDm_U.out
diff --git a/test/05_transform/210_FDr_R.in b/test/050_transform/210_FDr_R.in
index 26b394c..26b394c 100644
--- a/test/05_transform/210_FDr_R.in
+++ b/test/050_transform/210_FDr_R.in
diff --git a/test/05_transform/210_FDr_R.out b/test/050_transform/210_FDr_R.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/210_FDr_R.out
+++ b/test/050_transform/210_FDr_R.out
diff --git a/test/05_transform/211_FDm_R.in b/test/050_transform/211_FDm_R.in
index 5a10ec6..5a10ec6 100644
--- a/test/05_transform/211_FDm_R.in
+++ b/test/050_transform/211_FDm_R.in
diff --git a/test/05_transform/211_FDm_R.out b/test/050_transform/211_FDm_R.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/211_FDm_R.out
+++ b/test/050_transform/211_FDm_R.out
diff --git a/test/05_transform/212_FDr_F.in b/test/050_transform/212_FDr_F.in
index 2382615..2382615 100644
--- a/test/05_transform/212_FDr_F.in
+++ b/test/050_transform/212_FDr_F.in
diff --git a/test/05_transform/212_FDr_F.out b/test/050_transform/212_FDr_F.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/212_FDr_F.out
+++ b/test/050_transform/212_FDr_F.out
diff --git a/test/05_transform/213_FDm_F.in b/test/050_transform/213_FDm_F.in
index 0515b51..0515b51 100644
--- a/test/05_transform/213_FDm_F.in
+++ b/test/050_transform/213_FDm_F.in
diff --git a/test/05_transform/213_FDm_F.out b/test/050_transform/213_FDm_F.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/213_FDm_F.out
+++ b/test/050_transform/213_FDm_F.out
diff --git a/test/05_transform/214_FLr_U.in b/test/050_transform/214_FLr_U.in
index da3f3a4..da3f3a4 100644
--- a/test/05_transform/214_FLr_U.in
+++ b/test/050_transform/214_FLr_U.in
diff --git a/test/05_transform/214_FLr_U.out b/test/050_transform/214_FLr_U.out
index e805af8..e805af8 100644
--- a/test/05_transform/214_FLr_U.out
+++ b/test/050_transform/214_FLr_U.out
diff --git a/test/05_transform/215_FLm_U.in b/test/050_transform/215_FLm_U.in
index 0dd99c3..0dd99c3 100644
--- a/test/05_transform/215_FLm_U.in
+++ b/test/050_transform/215_FLm_U.in
diff --git a/test/05_transform/215_FLm_U.out b/test/050_transform/215_FLm_U.out
index 40f1260..40f1260 100644
--- a/test/05_transform/215_FLm_U.out
+++ b/test/050_transform/215_FLm_U.out
diff --git a/test/05_transform/216_FLr_R.in b/test/050_transform/216_FLr_R.in
index b8488d1..b8488d1 100644
--- a/test/05_transform/216_FLr_R.in
+++ b/test/050_transform/216_FLr_R.in
diff --git a/test/05_transform/216_FLr_R.out b/test/050_transform/216_FLr_R.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/216_FLr_R.out
+++ b/test/050_transform/216_FLr_R.out
diff --git a/test/05_transform/217_FLm_R.in b/test/050_transform/217_FLm_R.in
index 624882c..624882c 100644
--- a/test/05_transform/217_FLm_R.in
+++ b/test/050_transform/217_FLm_R.in
diff --git a/test/05_transform/217_FLm_R.out b/test/050_transform/217_FLm_R.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/217_FLm_R.out
+++ b/test/050_transform/217_FLm_R.out
diff --git a/test/05_transform/218_FLr_F.in b/test/050_transform/218_FLr_F.in
index 03950c5..03950c5 100644
--- a/test/05_transform/218_FLr_F.in
+++ b/test/050_transform/218_FLr_F.in
diff --git a/test/05_transform/218_FLr_F.out b/test/050_transform/218_FLr_F.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/218_FLr_F.out
+++ b/test/050_transform/218_FLr_F.out
diff --git a/test/05_transform/219_FLm_F.in b/test/050_transform/219_FLm_F.in
index ff909bf..ff909bf 100644
--- a/test/05_transform/219_FLm_F.in
+++ b/test/050_transform/219_FLm_F.in
diff --git a/test/05_transform/219_FLm_F.out b/test/050_transform/219_FLm_F.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/219_FLm_F.out
+++ b/test/050_transform/219_FLm_F.out
diff --git a/test/05_transform/220_BUr_U.in b/test/050_transform/220_BUr_U.in
index c923f4d..c923f4d 100644
--- a/test/05_transform/220_BUr_U.in
+++ b/test/050_transform/220_BUr_U.in
diff --git a/test/05_transform/220_BUr_U.out b/test/050_transform/220_BUr_U.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/220_BUr_U.out
+++ b/test/050_transform/220_BUr_U.out
diff --git a/test/05_transform/221_BUm_U.in b/test/050_transform/221_BUm_U.in
index d939385..d939385 100644
--- a/test/05_transform/221_BUm_U.in
+++ b/test/050_transform/221_BUm_U.in
diff --git a/test/05_transform/221_BUm_U.out b/test/050_transform/221_BUm_U.out
index 1367517..1367517 100644
--- a/test/05_transform/221_BUm_U.out
+++ b/test/050_transform/221_BUm_U.out
diff --git a/test/05_transform/222_BUr_R.in b/test/050_transform/222_BUr_R.in
index 89a46f4..89a46f4 100644
--- a/test/05_transform/222_BUr_R.in
+++ b/test/050_transform/222_BUr_R.in
diff --git a/test/05_transform/222_BUr_R.out b/test/050_transform/222_BUr_R.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/222_BUr_R.out
+++ b/test/050_transform/222_BUr_R.out
diff --git a/test/05_transform/223_BUm_R.in b/test/050_transform/223_BUm_R.in
index 2f5d234..2f5d234 100644
--- a/test/05_transform/223_BUm_R.in
+++ b/test/050_transform/223_BUm_R.in
diff --git a/test/05_transform/223_BUm_R.out b/test/050_transform/223_BUm_R.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/223_BUm_R.out
+++ b/test/050_transform/223_BUm_R.out
diff --git a/test/05_transform/224_BUr_F.in b/test/050_transform/224_BUr_F.in
index 0ad8995..0ad8995 100644
--- a/test/05_transform/224_BUr_F.in
+++ b/test/050_transform/224_BUr_F.in
diff --git a/test/05_transform/224_BUr_F.out b/test/050_transform/224_BUr_F.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/224_BUr_F.out
+++ b/test/050_transform/224_BUr_F.out
diff --git a/test/05_transform/225_BUm_F.in b/test/050_transform/225_BUm_F.in
index 3ff7e4d..3ff7e4d 100644
--- a/test/05_transform/225_BUm_F.in
+++ b/test/050_transform/225_BUm_F.in
diff --git a/test/05_transform/225_BUm_F.out b/test/050_transform/225_BUm_F.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/225_BUm_F.out
+++ b/test/050_transform/225_BUm_F.out
diff --git a/test/05_transform/226_BRr_U.in b/test/050_transform/226_BRr_U.in
index 46ebe30..46ebe30 100644
--- a/test/05_transform/226_BRr_U.in
+++ b/test/050_transform/226_BRr_U.in
diff --git a/test/05_transform/226_BRr_U.out b/test/050_transform/226_BRr_U.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/226_BRr_U.out
+++ b/test/050_transform/226_BRr_U.out
diff --git a/test/05_transform/227_BRm_U.in b/test/050_transform/227_BRm_U.in
index 63897c9..63897c9 100644
--- a/test/05_transform/227_BRm_U.in
+++ b/test/050_transform/227_BRm_U.in
diff --git a/test/05_transform/227_BRm_U.out b/test/050_transform/227_BRm_U.out
index 1367517..1367517 100644
--- a/test/05_transform/227_BRm_U.out
+++ b/test/050_transform/227_BRm_U.out
diff --git a/test/05_transform/228_BRr_R.in b/test/050_transform/228_BRr_R.in
index 7e2de76..7e2de76 100644
--- a/test/05_transform/228_BRr_R.in
+++ b/test/050_transform/228_BRr_R.in
diff --git a/test/05_transform/228_BRr_R.out b/test/050_transform/228_BRr_R.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/228_BRr_R.out
+++ b/test/050_transform/228_BRr_R.out
diff --git a/test/05_transform/229_BRm_R.in b/test/050_transform/229_BRm_R.in
index c9e6e82..c9e6e82 100644
--- a/test/05_transform/229_BRm_R.in
+++ b/test/050_transform/229_BRm_R.in
diff --git a/test/05_transform/229_BRm_R.out b/test/050_transform/229_BRm_R.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/229_BRm_R.out
+++ b/test/050_transform/229_BRm_R.out
diff --git a/test/05_transform/230_BRr_F.in b/test/050_transform/230_BRr_F.in
index fe288dc..fe288dc 100644
--- a/test/05_transform/230_BRr_F.in
+++ b/test/050_transform/230_BRr_F.in
diff --git a/test/05_transform/230_BRr_F.out b/test/050_transform/230_BRr_F.out
index 8c8fcb3..8c8fcb3 100644
--- a/test/05_transform/230_BRr_F.out
+++ b/test/050_transform/230_BRr_F.out
diff --git a/test/05_transform/231_BRm_F.in b/test/050_transform/231_BRm_F.in
index 5411345..5411345 100644
--- a/test/05_transform/231_BRm_F.in
+++ b/test/050_transform/231_BRm_F.in
diff --git a/test/05_transform/231_BRm_F.out b/test/050_transform/231_BRm_F.out
index 2ac2912..2ac2912 100644
--- a/test/05_transform/231_BRm_F.out
+++ b/test/050_transform/231_BRm_F.out
diff --git a/test/05_transform/232_BDr_U.in b/test/050_transform/232_BDr_U.in
index 1a8f5d3..1a8f5d3 100644
--- a/test/05_transform/232_BDr_U.in
+++ b/test/050_transform/232_BDr_U.in
diff --git a/test/05_transform/232_BDr_U.out b/test/050_transform/232_BDr_U.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/232_BDr_U.out
+++ b/test/050_transform/232_BDr_U.out
diff --git a/test/05_transform/233_BDm_U.in b/test/050_transform/233_BDm_U.in
index b6b1ec4..b6b1ec4 100644
--- a/test/05_transform/233_BDm_U.in
+++ b/test/050_transform/233_BDm_U.in
diff --git a/test/05_transform/233_BDm_U.out b/test/050_transform/233_BDm_U.out
index 1367517..1367517 100644
--- a/test/05_transform/233_BDm_U.out
+++ b/test/050_transform/233_BDm_U.out
diff --git a/test/05_transform/234_BDr_R.in b/test/050_transform/234_BDr_R.in
index f12b7bb..f12b7bb 100644
--- a/test/05_transform/234_BDr_R.in
+++ b/test/050_transform/234_BDr_R.in
diff --git a/test/05_transform/234_BDr_R.out b/test/050_transform/234_BDr_R.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/234_BDr_R.out
+++ b/test/050_transform/234_BDr_R.out
diff --git a/test/05_transform/235_BDm_R.in b/test/050_transform/235_BDm_R.in
index a281b6c..a281b6c 100644
--- a/test/05_transform/235_BDm_R.in
+++ b/test/050_transform/235_BDm_R.in
diff --git a/test/05_transform/235_BDm_R.out b/test/050_transform/235_BDm_R.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/235_BDm_R.out
+++ b/test/050_transform/235_BDm_R.out
diff --git a/test/05_transform/236_BDr_F.in b/test/050_transform/236_BDr_F.in
index 68a3262..68a3262 100644
--- a/test/05_transform/236_BDr_F.in
+++ b/test/050_transform/236_BDr_F.in
diff --git a/test/05_transform/236_BDr_F.out b/test/050_transform/236_BDr_F.out
index cf4f816..cf4f816 100644
--- a/test/05_transform/236_BDr_F.out
+++ b/test/050_transform/236_BDr_F.out
diff --git a/test/05_transform/237_BDm_F.in b/test/050_transform/237_BDm_F.in
index 9200d9a..9200d9a 100644
--- a/test/05_transform/237_BDm_F.in
+++ b/test/050_transform/237_BDm_F.in
diff --git a/test/05_transform/237_BDm_F.out b/test/050_transform/237_BDm_F.out
index 2864f5b..2864f5b 100644
--- a/test/05_transform/237_BDm_F.out
+++ b/test/050_transform/237_BDm_F.out
diff --git a/test/05_transform/238_BLr_U.in b/test/050_transform/238_BLr_U.in
index ae1bb2e..ae1bb2e 100644
--- a/test/05_transform/238_BLr_U.in
+++ b/test/050_transform/238_BLr_U.in
diff --git a/test/05_transform/238_BLr_U.out b/test/050_transform/238_BLr_U.out
index f7fb13c..f7fb13c 100644
--- a/test/05_transform/238_BLr_U.out
+++ b/test/050_transform/238_BLr_U.out
diff --git a/test/05_transform/239_BLm_U.in b/test/050_transform/239_BLm_U.in
index 82eef50..82eef50 100644
--- a/test/05_transform/239_BLm_U.in
+++ b/test/050_transform/239_BLm_U.in
diff --git a/test/05_transform/239_BLm_U.out b/test/050_transform/239_BLm_U.out
index 1367517..1367517 100644
--- a/test/05_transform/239_BLm_U.out
+++ b/test/050_transform/239_BLm_U.out
diff --git a/test/05_transform/240_BLr_R.in b/test/050_transform/240_BLr_R.in
index 5aeee46..5aeee46 100644
--- a/test/05_transform/240_BLr_R.in
+++ b/test/050_transform/240_BLr_R.in
diff --git a/test/05_transform/240_BLr_R.out b/test/050_transform/240_BLr_R.out
index b5b36ad..b5b36ad 100644
--- a/test/05_transform/240_BLr_R.out
+++ b/test/050_transform/240_BLr_R.out
diff --git a/test/05_transform/241_BLm_R.in b/test/050_transform/241_BLm_R.in
index 4aff162..4aff162 100644
--- a/test/05_transform/241_BLm_R.in
+++ b/test/050_transform/241_BLm_R.in
diff --git a/test/05_transform/241_BLm_R.out b/test/050_transform/241_BLm_R.out
index 7721ab5..7721ab5 100644
--- a/test/05_transform/241_BLm_R.out
+++ b/test/050_transform/241_BLm_R.out
diff --git a/test/05_transform/242_BLr_F.in b/test/050_transform/242_BLr_F.in
index a621e5e..a621e5e 100644
--- a/test/05_transform/242_BLr_F.in
+++ b/test/050_transform/242_BLr_F.in
diff --git a/test/05_transform/242_BLr_F.out b/test/050_transform/242_BLr_F.out
index 0b0565c..0b0565c 100644
--- a/test/05_transform/242_BLr_F.out
+++ b/test/050_transform/242_BLr_F.out
diff --git a/test/05_transform/243_BLm_F.in b/test/050_transform/243_BLm_F.in
index 6aa4a5a..6aa4a5a 100644
--- a/test/05_transform/243_BLm_F.in
+++ b/test/050_transform/243_BLm_F.in
diff --git a/test/05_transform/243_BLm_F.out b/test/050_transform/243_BLm_F.out
index d4abffc..d4abffc 100644
--- a/test/05_transform/243_BLm_F.out
+++ b/test/050_transform/243_BLm_F.out
diff --git a/test/05_transform/transform_tests.c b/test/050_transform/transform_tests.c
index 1e49037..1e49037 100644
--- a/test/05_transform/transform_tests.c
+++ b/test/050_transform/transform_tests.c

Generated with cgit - Back to sebastiano.tronto.net