1.1 --- a/test/Tools/isac/Knowledge/gcd_poly_ml.sml Mon Nov 04 11:40:29 2019 +0100
1.2 +++ b/test/Tools/isac/Knowledge/gcd_poly_ml.sml Wed Nov 06 15:08:27 2019 +0100
1.3 @@ -55,7 +55,7 @@
1.4 "----------- infix %%*%% --------------------------------";
1.5 "----------- fun gcd_coeff ------------------------------";
1.6 (*"----------- fun gcd_coeff_poly -------------------------";*)
1.7 -"----------- fun eval -----------------------------------";
1.8 +"----------- fun Gcd_ML.eval -----------------------------------";
1.9 "----------- fun multi_to_uni ---------------------------";
1.10 "----------- fun uni_to_multi ---------------------------";
1.11 "----------- fun find_new_r ----------------------------";
1.12 @@ -578,17 +578,17 @@
1.13 if gcd_coeff_poly [(~2, [2, 0]), (5, [5, 0]),(~4, [3, 2]), (2, [2, 3])] = 1 then ()
1.14 else error "gcd_coeff_poly [(~2, [2, 0]), (5, [5, 0]),(~4, [3, 2]), (2, [2, 3])] = 1 changed";*)
1.15
1.16 -"----------- fun eval -----------------------------------";
1.17 -"----------- fun eval -----------------------------------";
1.18 -"----------- fun eval -----------------------------------";
1.19 -if eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 0 1 = [(1, [0]), (~1, [1])] then ()
1.20 - else error " eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 0 1 = [(1, [0]), (~1, [1])] changed";
1.21 -if eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 1 1 = [(2, [0]), (~2, [2])] then ()
1.22 - else error " eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 1 1 =[(2, [0]), (~2, [2])] changed";
1.23 -if eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 0 3 = [(9, [0]), (~25, [1])] then ()
1.24 - else error " eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 0 3 = [(9, [0]), (~25, [1])] changed";
1.25 -if eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 1 3 = [(6, [0]), (~8, [2])] then ()
1.26 - else error " eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 1 3 = [ (6, [0]), (~8, [2])] changed";
1.27 +"----------- fun Gcd_ML.eval -----------------------------------";
1.28 +"----------- fun Gcd_ML.eval -----------------------------------";
1.29 +"----------- fun Gcd_ML.eval -----------------------------------";
1.30 +if Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 0 1 = [(1, [0]), (~1, [1])] then ()
1.31 + else error " Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 0 1 = [(1, [0]), (~1, [1])] changed";
1.32 +if Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 1 1 = [(2, [0]), (~2, [2])] then ()
1.33 + else error " Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 1 1 =[(2, [0]), (~2, [2])] changed";
1.34 +if Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 0 3 = [(9, [0]), (~25, [1])] then ()
1.35 + else error " Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 0 3 = [(9, [0]), (~25, [1])] changed";
1.36 +if Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]), (1,[2, 0])] 1 3 = [(6, [0]), (~8, [2])] then ()
1.37 + else error " Gcd_ML.eval [(~3, [2, 1]), (2, [0, 1]),(1,[2,0])] 1 3 = [ (6, [0]), (~8, [2])] changed";
1.38
1.39 "----------- fun multi_to_uni ---------------------------";
1.40 "----------- fun multi_to_uni ---------------------------";
1.41 @@ -846,8 +846,8 @@
1.42 "~~~~~ and try_new_r, args:"; val (a, b, n, M, r, r_list, steps) = (a, b, n, M, r, [], []);
1.43 val r = find_new_r a b r;
1.44 val r_list = r_list @ [r];
1.45 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.46 - (order (eval b (n - 2) r)) (n - 1) 0
1.47 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.48 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0
1.49 val steps = steps @ [g_r];
1.50 (*HENSEL_lifting a b n M 1 r r_list steps g_r ( zero_poly n ) [1]
1.51 exception Div raised*)
1.52 @@ -856,8 +856,8 @@
1.53 m > M = false;
1.54 val r = find_new_r a b r;
1.55 val r_list = r_list @ [r];
1.56 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.57 - (order (eval b (n - 2) r)) (n - 1) 0;
1.58 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.59 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0;
1.60 lex_ord (lmonom g) (lmonom g_r) = false;
1.61 lexp g = lexp g_r = true;
1.62 val (g_n, new, steps) = NEWTON r_list [g, g_r] steps mult g_n (n - 2);
1.63 @@ -873,8 +873,8 @@
1.64 "~~~~~ and try_new_r, args:"; val (a, b, n, M, r, r_list, steps) = (a, b, n, M, r, r_list, steps);
1.65 val r = find_new_r a b r;
1.66 val r_list = r_list @ [r];
1.67 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.68 - (order (eval b (n - 2) r)) (n - 1) 0
1.69 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.70 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0
1.71 val steps = steps @ [g_r];
1.72 (*HENSEL_lifting a b n M 1 r r_list steps g_r (zero_poly n) [1]
1.73 exception Div raised*)
1.74 @@ -883,8 +883,8 @@
1.75 m > M = false;
1.76 val r = find_new_r a b r;
1.77 val r_list = r_list @ [r];
1.78 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.79 - (order (eval b (n - 2) r)) (n - 1) 0;
1.80 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.81 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0;
1.82 lex_ord (lmonom g) (lmonom g_r) = false;
1.83 lexp g = lexp g_r = true;
1.84 val (g_n, new, steps) = NEWTON r_list [g, g_r] steps mult g_n (n - 2);
1.85 @@ -900,8 +900,8 @@
1.86 "~~~~~ and try_new_r, args:"; val (a, b, n, M, r, r_list, steps) = (a, b, n, M, r, r_list, steps);
1.87 val r = find_new_r a b r;
1.88 val r_list = r_list @ [r];
1.89 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.90 - (order (eval b (n - 2) r)) (n - 1) 0
1.91 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.92 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0
1.93 val steps = steps @ [g_r];
1.94 (*HENSEL_lifting a b n M 1 r r_list steps g_r (zero_poly n) [1]
1.95 exception Div raised*)
1.96 @@ -910,8 +910,8 @@
1.97 m > M = false;
1.98 val r = find_new_r a b r;
1.99 val r_list = r_list @ [r];
1.100 - val g_r = gcd_poly' (order (eval a (n - 2) r))
1.101 - (order (eval b (n - 2) r)) (n - 1) 0;
1.102 + val g_r = gcd_poly' (order (Gcd_ML.eval a (n - 2) r))
1.103 + (order (Gcd_ML.eval b (n - 2) r)) (n - 1) 0;
1.104 lex_ord (lmonom g) (lmonom g_r) = false;
1.105 lexp g = lexp g_r = true;
1.106 val (g_n, new, steps) = NEWTON r_list [g, g_r] steps mult g_n (n - 2);