aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pruning.c8
-rw-r--r--src/pruning.h1
-rw-r--r--src/steps.c91
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
75PruneData 75PruneData
76pd_cp_drud = {
77 .filename = "pt_cp_drud",
78 .coord = &coord_cp,
79 .moveset = &moveset_drud,
80};
81
82PruneData
76pd_htrfin_htr = { 83pd_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;
11extern PruneData pd_drud_eofb; 11extern PruneData pd_drud_eofb;
12extern PruneData pd_drudfin_noE_sym16_drud; 12extern PruneData pd_drudfin_noE_sym16_drud;
13extern PruneData pd_htr_drud; 13extern PruneData pd_htr_drud;
14extern PruneData pd_cp_drud;
14extern PruneData pd_htrfin_htr; 15extern PruneData pd_htrfin_htr;
15extern PruneData pd_nxopt31_HTM; 16extern 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);
26static int estimate_dr_eofb(DfsArg *arg); 26static int estimate_dr_eofb(DfsArg *arg);
27static int estimate_drudfin_drud(DfsArg *arg); 27static int estimate_drudfin_drud(DfsArg *arg);
28static int estimate_htr_drud(DfsArg *arg); 28static int estimate_htr_drud(DfsArg *arg);
29static int estimate_cp_drud(DfsArg *arg);
29static int estimate_htrfin_htr(DfsArg *arg); 30static int estimate_htrfin_htr(DfsArg *arg);
30static int estimate_nxopt31_HTM(DfsArg *arg); 31static int estimate_nxopt31_HTM(DfsArg *arg);
31static int estimate_light_HTM(DfsArg *arg); 32static int estimate_light_HTM(DfsArg *arg);
@@ -48,6 +49,8 @@ static char check_eo_msg[100] = "EO must be solved on given axis";
48static char check_dr_msg[100] = "DR must be solved on given axis"; 49static char check_dr_msg[100] = "DR must be solved on given axis";
49static char check_htr_msg[100] = "HTR must be solved"; 50static char check_htr_msg[100] = "HTR must be solved";
50static char check_drany_msg[100] = "DR must be solved on at least one axis"; 51static char check_drany_msg[100] = "DR must be solved on at least one axis";
52static char check_co_msg[100] = "CO must be solved on the given axis";
53static 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 */
893Step
894corners_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
912Step
913corners_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
931Step
932corners_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
950Step
951corners_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 */
890Step 970Step
891htrfin_htr = { 971htrfin_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
1170static int 1255static int
1256estimate_cp_drud(DfsArg *arg)
1257{
1258 return ptableval(&pd_cp_drud, arg->cube);
1259}
1260
1261static int
1171estimate_htrfin_htr(DfsArg *arg) 1262estimate_htrfin_htr(DfsArg *arg)
1172{ 1263{
1173 return ptableval(&pd_htrfin_htr, arg->cube); 1264 return ptableval(&pd_htrfin_htr, arg->cube);

Generated with cgit - Back to sebastiano.tronto.net