aboutsummaryrefslogtreecommitdiff
path: root/src/steps.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/steps.c')
-rw-r--r--src/steps.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/src/steps.c b/src/steps.c
index 34ddcc2..6478bc2 100644
--- a/src/steps.c
+++ b/src/steps.c
@@ -979,29 +979,42 @@ static int
979estimate_optimal_HTM(CubeTarget ct) 979estimate_optimal_HTM(CubeTarget ct)
980{ 980{
981 int dr1, dr2, dr3, cor, ret; 981 int dr1, dr2, dr3, cor, ret;
982 Cube cube = ct.cube; 982 Cube inv;
983 983
984 dr1 = ptableval(&pd_khuge_HTM, cube); 984 dr1 = ptableval(&pd_khuge_HTM, ct.cube);
985 cor = estimate_corners_HTM(ct); 985 cor = estimate_corners_HTM(ct);
986 ret = MAX(dr1, cor); 986 ret = MAX(dr1, cor);
987
988 if (ret > ct.target) 987 if (ret > ct.target)
989 return ret; 988 return ret;
990 989
991 cube = apply_trans(rf, ct.cube); 990 dr2 = ptableval(&pd_khuge_HTM, apply_trans(rf, ct.cube));
992 dr2 = ptableval(&pd_khuge_HTM, cube);
993 ret = MAX(ret, dr2); 991 ret = MAX(ret, dr2);
994
995 if (ret > ct.target) 992 if (ret > ct.target)
996 return ret; 993 return ret;
997 994
998 cube = apply_trans(fd, ct.cube); 995 dr3 = ptableval(&pd_khuge_HTM, apply_trans(fd, ct.cube));
999 dr3 = ptableval(&pd_khuge_HTM, cube);
1000
1001 /* Michiel de Bondt's trick */
1002 if (dr1 == dr2 && dr2 == dr3 && dr1 != 0) 996 if (dr1 == dr2 && dr2 == dr3 && dr1 != 0)
1003 dr3++; 997 dr3++;
998 ret = MAX(ret, dr3);
999 if (ret > ct.target || ret == 0)
1000 return ret;
1004 1001
1002 /* Inverse cube probing */
1003
1004 inv = inverse_cube(ct.cube);
1005 dr1 = ptableval(&pd_khuge_HTM, inv);
1006 ret = MAX(ret, dr1);
1007 if (ret > ct.target)
1008 return ret;
1009
1010 dr2 = ptableval(&pd_khuge_HTM, apply_trans(rf, inv));
1011 ret = MAX(ret, dr2);
1012 if (ret > ct.target)
1013 return ret;
1014
1015 dr3 = ptableval(&pd_khuge_HTM, apply_trans(fd, inv));
1016 if (dr1 == dr2 && dr2 == dr3 && dr1 != 0)
1017 dr3++;
1005 return MAX(ret, dr3); 1018 return MAX(ret, dr3);
1006} 1019}
1007 1020

Generated with cgit - Back to sebastiano.tronto.net