diff options
Diffstat (limited to '')
| -rw-r--r-- | src/pruning.c | 8 | ||||
| -rw-r--r-- | src/pruning.h | 1 | ||||
| -rw-r--r-- | src/steps.c | 91 |
3 files changed, 100 insertions, 0 deletions
diff --git a/src/pruning.c b/src/pruning.c index 1dba949..aeeac21 100644 --- a/src/pruning.c +++ b/src/pruning.c | |||
| @@ -73,6 +73,13 @@ pd_htr_drud = { | |||
| 73 | }; | 73 | }; |
| 74 | 74 | ||
| 75 | PruneData | 75 | PruneData |
| 76 | pd_cp_drud = { | ||
| 77 | .filename = "pt_cp_drud", | ||
| 78 | .coord = &coord_cp, | ||
| 79 | .moveset = &moveset_drud, | ||
| 80 | }; | ||
| 81 | |||
| 82 | PruneData | ||
| 76 | pd_htrfin_htr = { | 83 | pd_htrfin_htr = { |
| 77 | .filename = "pt_htrfin_htr", | 84 | .filename = "pt_htrfin_htr", |
| 78 | .coord = &coord_htrfin, | 85 | .coord = &coord_htrfin, |
| @@ -99,6 +106,7 @@ PruneData * all_pd[] = { | |||
| 99 | &pd_drud_eofb, | 106 | &pd_drud_eofb, |
| 100 | &pd_drudfin_noE_sym16_drud, | 107 | &pd_drudfin_noE_sym16_drud, |
| 101 | &pd_htr_drud, | 108 | &pd_htr_drud, |
| 109 | &pd_cp_drud, | ||
| 102 | &pd_htrfin_htr, | 110 | &pd_htrfin_htr, |
| 103 | &pd_nxopt31_HTM, | 111 | &pd_nxopt31_HTM, |
| 104 | NULL | 112 | NULL |
diff --git a/src/pruning.h b/src/pruning.h index 6bdbee1..a9acb5b 100644 --- a/src/pruning.h +++ b/src/pruning.h | |||
| @@ -11,6 +11,7 @@ extern PruneData pd_drud_sym16_HTM; | |||
| 11 | extern PruneData pd_drud_eofb; | 11 | extern PruneData pd_drud_eofb; |
| 12 | extern PruneData pd_drudfin_noE_sym16_drud; | 12 | extern PruneData pd_drudfin_noE_sym16_drud; |
| 13 | extern PruneData pd_htr_drud; | 13 | extern PruneData pd_htr_drud; |
| 14 | extern PruneData pd_cp_drud; | ||
| 14 | extern PruneData pd_htrfin_htr; | 15 | extern PruneData pd_htrfin_htr; |
| 15 | extern PruneData pd_nxopt31_HTM; | 16 | extern PruneData pd_nxopt31_HTM; |
| 16 | 17 | ||
diff --git a/src/steps.c b/src/steps.c index 3189811..a380494 100644 --- a/src/steps.c +++ b/src/steps.c | |||
| @@ -26,6 +26,7 @@ static int estimate_drud_eofb(DfsArg *arg); | |||
| 26 | static int estimate_dr_eofb(DfsArg *arg); | 26 | static int estimate_dr_eofb(DfsArg *arg); |
| 27 | static int estimate_drudfin_drud(DfsArg *arg); | 27 | static int estimate_drudfin_drud(DfsArg *arg); |
| 28 | static int estimate_htr_drud(DfsArg *arg); | 28 | static int estimate_htr_drud(DfsArg *arg); |
| 29 | static int estimate_cp_drud(DfsArg *arg); | ||
| 29 | static int estimate_htrfin_htr(DfsArg *arg); | 30 | static int estimate_htrfin_htr(DfsArg *arg); |
| 30 | static int estimate_nxopt31_HTM(DfsArg *arg); | 31 | static int estimate_nxopt31_HTM(DfsArg *arg); |
| 31 | static int estimate_light_HTM(DfsArg *arg); | 32 | static int estimate_light_HTM(DfsArg *arg); |
| @@ -48,6 +49,8 @@ static char check_eo_msg[100] = "EO must be solved on given axis"; | |||
| 48 | static char check_dr_msg[100] = "DR must be solved on given axis"; | 49 | static char check_dr_msg[100] = "DR must be solved on given axis"; |
| 49 | static char check_htr_msg[100] = "HTR must be solved"; | 50 | static char check_htr_msg[100] = "HTR must be solved"; |
| 50 | static char check_drany_msg[100] = "DR must be solved on at least one axis"; | 51 | static char check_drany_msg[100] = "DR must be solved on at least one axis"; |
| 52 | static char check_co_msg[100] = "CO must be solved on the given axis"; | ||
| 53 | static char check_coany_msg[100] = "CO must be solved on at least one axis"; | ||
| 51 | 54 | ||
| 52 | /* Steps *********************************************************************/ | 55 | /* Steps *********************************************************************/ |
| 53 | 56 | ||
| @@ -886,6 +889,83 @@ htr_drfb = { | |||
| 886 | .ntables = 1, | 889 | .ntables = 1, |
| 887 | }; | 890 | }; |
| 888 | 891 | ||
| 892 | /* Corners from DR */ | ||
| 893 | Step | ||
| 894 | corners_dr_any = { | ||
| 895 | .shortname = "corners-dr", | ||
| 896 | .name = "Solve corners from DR", | ||
| 897 | |||
| 898 | .final = false, | ||
| 899 | .is_done = check_corners_HTM, | ||
| 900 | .estimate = estimate_cp_drud, | ||
| 901 | .ready = check_coud_HTM, | ||
| 902 | .ready_msg = check_coany_msg, | ||
| 903 | .is_valid = always_valid, | ||
| 904 | .moveset = &moveset_drud, | ||
| 905 | |||
| 906 | .detect = detect_pretrans_drud, | ||
| 907 | |||
| 908 | .tables = {&pd_cp_drud}, | ||
| 909 | .ntables = 1, | ||
| 910 | }; | ||
| 911 | |||
| 912 | Step | ||
| 913 | corners_drud = { | ||
| 914 | .shortname = "corners-drud", | ||
| 915 | .name = "Solve corners from DR on U/D", | ||
| 916 | |||
| 917 | .final = false, | ||
| 918 | .is_done = check_corners_HTM, | ||
| 919 | .estimate = estimate_cp_drud, | ||
| 920 | .ready = check_coud_HTM, | ||
| 921 | .ready_msg = check_co_msg, | ||
| 922 | .is_valid = always_valid, | ||
| 923 | .moveset = &moveset_drud, | ||
| 924 | |||
| 925 | .pre_trans = uf, | ||
| 926 | |||
| 927 | .tables = {&pd_cp_drud}, | ||
| 928 | .ntables = 1, | ||
| 929 | }; | ||
| 930 | |||
| 931 | Step | ||
| 932 | corners_drrl = { | ||
| 933 | .shortname = "corners-drrl", | ||
| 934 | .name = "Solve corners from DR on R/L", | ||
| 935 | |||
| 936 | .final = false, | ||
| 937 | .is_done = check_corners_HTM, | ||
| 938 | .estimate = estimate_cp_drud, | ||
| 939 | .ready = check_coud_HTM, | ||
| 940 | .ready_msg = check_co_msg, | ||
| 941 | .is_valid = always_valid, | ||
| 942 | .moveset = &moveset_drud, | ||
| 943 | |||
| 944 | .pre_trans = rf, | ||
| 945 | |||
| 946 | .tables = {&pd_cp_drud}, | ||
| 947 | .ntables = 1, | ||
| 948 | }; | ||
| 949 | |||
| 950 | Step | ||
| 951 | corners_drfb = { | ||
| 952 | .shortname = "corners-drfb", | ||
| 953 | .name = "Solve corners from DR on F/B", | ||
| 954 | |||
| 955 | .final = false, | ||
| 956 | .is_done = check_corners_HTM, | ||
| 957 | .estimate = estimate_cp_drud, | ||
| 958 | .ready = check_coud_HTM, | ||
| 959 | .ready_msg = check_co_msg, | ||
| 960 | .is_valid = always_valid, | ||
| 961 | .moveset = &moveset_drud, | ||
| 962 | |||
| 963 | .pre_trans = fd, | ||
| 964 | |||
| 965 | .tables = {&pd_cp_drud}, | ||
| 966 | .ntables = 1, | ||
| 967 | }; | ||
| 968 | |||
| 889 | /* HTR finish */ | 969 | /* HTR finish */ |
| 890 | Step | 970 | Step |
| 891 | htrfin_htr = { | 971 | htrfin_htr = { |
| @@ -956,6 +1036,11 @@ Step *steps[] = { | |||
| 956 | &htr_drrl, | 1036 | &htr_drrl, |
| 957 | &htr_drfb, | 1037 | &htr_drfb, |
| 958 | 1038 | ||
| 1039 | &corners_dr_any, | ||
| 1040 | &corners_drud, | ||
| 1041 | &corners_drrl, | ||
| 1042 | &corners_drfb, | ||
| 1043 | |||
| 959 | &htrfin_htr, | 1044 | &htrfin_htr, |
| 960 | 1045 | ||
| 961 | &cornershtr_HTM, | 1046 | &cornershtr_HTM, |
| @@ -1168,6 +1253,12 @@ estimate_htr_drud(DfsArg *arg) | |||
| 1168 | } | 1253 | } |
| 1169 | 1254 | ||
| 1170 | static int | 1255 | static int |
| 1256 | estimate_cp_drud(DfsArg *arg) | ||
| 1257 | { | ||
| 1258 | return ptableval(&pd_cp_drud, arg->cube); | ||
| 1259 | } | ||
| 1260 | |||
| 1261 | static int | ||
| 1171 | estimate_htrfin_htr(DfsArg *arg) | 1262 | estimate_htrfin_htr(DfsArg *arg) |
| 1172 | { | 1263 | { |
| 1173 | return ptableval(&pd_htrfin_htr, arg->cube); | 1264 | return ptableval(&pd_htrfin_htr, arg->cube); |
