test/Tools/isac/Knowledge/gcd_poly_ml.sml
changeset 59686 3ce3d089bd64
parent 59368 c69a314184f3
child 60318 e6e7a9b9ced7
     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);