1 | LIB "tst.lib"; |
---|
2 | LIB "nfmodstd.lib"; |
---|
3 | tst_init(); |
---|
4 | |
---|
5 | proc tst_test_nfmodstd(def I) |
---|
6 | { |
---|
7 | // input type ideal or module |
---|
8 | def Jtst = nfmodStd(I); |
---|
9 | Jtst; |
---|
10 | } |
---|
11 | |
---|
12 | ring r=(0,a),(x,y,z,w,u),dp; |
---|
13 | minpoly = a^2+1; |
---|
14 | ideal HIa=(8+a)*x^2*y^2+5*x*y^3+(3-a)*x^3*z +x^2*y*z, |
---|
15 | x^5+2*y^3*z^2+13*y^2*z^3+5*y*z^4, |
---|
16 | 8*x^3+(12+a)*y^3+x*z^2+3, |
---|
17 | (7-a)*x^2*y^4+18*y^3*z^2+y^3*z^3; |
---|
18 | tst_test_nfmodstd(HIa); |
---|
19 | ideal HJa=(2*a+3)*x*y^4*z^2 + (a+2)*x^2*y^3*z*w-x^2*y^3*z*w + 2*x*y*z^2*w^3 + (7*a-1)*y^3*w^4, |
---|
20 | 2*x^2*y^4*z + x^2*y*z^2*w^2-a*x*y^2*z^2*w^2 + (a+11)*x^2*y*z*w^3 -12*x*w^6 + 12*y*w^6, |
---|
21 | 2*y^5*z + x^2*y^2*z*w-x*y^3*z*w -x*y^3*w^2 +a*y^4*w^2 + 2*y^2*z*w^3, |
---|
22 | 3*x*y^4*z^3 + x^2*y^2*z*w^3-x*y^3*z*w^3 +(4+a)*y^3*z^2*w^3 +3*x*y*z^3*w^3 +4*a*z^2*w^6 |
---|
23 | -x*w^7+y*w^7; |
---|
24 | |
---|
25 | tst_test_nfmodstd(HJa); |
---|
26 | ideal HBa =x+(a/2147483647)*x*y+(a/2147483646)*y*z, |
---|
27 | x^2*z + (a/2147483647)*y^3 + (a+1)*y*z^2, |
---|
28 | (2*a*x)/3-(7*a*y)/23 + (9*z)/7; |
---|
29 | |
---|
30 | tst_test_nfmodstd(HBa); |
---|
31 | kill r; |
---|
32 | ring r=(0,a),(x,y,z,w,u),dp; |
---|
33 | minpoly =a^3+a+5; |
---|
34 | ideal ka=(5+a)*x^3*y^2*z + (a+3)*y^3*x^2*z + (a+7)*x*y^2*z^2, |
---|
35 | (a+3)*x*y^2*z^2 + (a+1)*x^5 + (a-11)*y^2*z^2, |
---|
36 | (a+2)*x*y*z + (a+7)*x^3 + 12*y^3 + 1,3*x^3 +(a- 4)*y^3 + y*z^2; |
---|
37 | tst_test_nfmodstd(ka); |
---|
38 | |
---|
39 | ideal Hka=(a+5)*x^3*y^2*z + (a-3)*y^3*x^2*z + (a+7)*x*y^2*z^2, |
---|
40 | (a+3)*x*y^2*z^2 + a*x^5 + (a+11)*y^2*z*w^2, |
---|
41 | 4*x*y*z + (a+7)*x^3 + 12*y^3 + a*z^3, |
---|
42 | 3*x^3 +(a- 4)*y^3 + y*z^2; |
---|
43 | tst_test_nfmodstd(Hka); |
---|
44 | |
---|
45 | ideal Ua = a*x + (a-1)*y + z + (a+2)*w + u,x*y + (a-1)*y*z + z*w + |
---|
46 | (a + 2)*x*w + a*w*u,a*x*y*z + (a + 5)*y*z*w + a*x*y*u + (a+2)*x*w*u + a*z*w*u, |
---|
47 | (a-11)*x*y*z*w + (a + 5)*x*y*z*u + a*x*y*w*u + a*x*z*w*u + a*y*z*w*u,(a + 3)*x*y*z*w*u + a+23; |
---|
48 | tst_test_nfmodstd(Ua); |
---|
49 | kill r; |
---|
50 | ring r = 0,(x,y,z),dp; |
---|
51 | module K = [x2z+x-7*y,z2+9*x], [y2+7*z+7,10*z3-7*x2], [-xz+52*yz,xy+49*z], |
---|
52 | [52*xyz+yz,7*xy+y+z], [10*xy+z2,xz+x+7*z]; |
---|
53 | tst_test_nfmodstd(K); |
---|
54 | kill r; |
---|
55 | ring r = (0,a),(x,y),(c,dp); |
---|
56 | minpoly = a^3+2a+7; |
---|
57 | module M = [(a/2+1)*x^2+2/3y, 3*x-a*y+ a/7+2], [ax, y]; |
---|
58 | tst_test_nfmodstd(M); |
---|
59 | kill r; |
---|
60 | proc tst_test_chinrempoly(list l, list m) |
---|
61 | { |
---|
62 | def Jtst = chinrempoly(l,m); |
---|
63 | Jtst; |
---|
64 | } |
---|
65 | |
---|
66 | ring r=97,x,dp; |
---|
67 | poly f=x^7-7*x + 3; |
---|
68 | ideal J=factorize(f,1); |
---|
69 | list m=J[1..ncols(J)]; |
---|
70 | list l= x^2+2*x+3, x^2+5, x^2+7; |
---|
71 | tst_test_chinrempoly(l, m); |
---|
72 | kill r; |
---|
73 | |
---|
74 | ring r = 0, x,dp; |
---|
75 | poly f1 = 30x7+5x6+23x5+27x4+5x3+13x2+29x+7; |
---|
76 | poly f2 = 8x4+24x3+6x2+28x+5; |
---|
77 | poly f3 = 14x4+8x3+2x2+11x+9; |
---|
78 | poly f4 = 8x2+22x+4; |
---|
79 | poly f5 = 7x4+9x3+12x2+x+11; |
---|
80 | poly f6 = 26x2+x+9; |
---|
81 | poly f7 = 19x3+4x2+2x+24; |
---|
82 | poly f8 = x4+27x3+4x2+23x+30; |
---|
83 | poly f9 = 20x3+11x2+16x+29; |
---|
84 | poly f10 = 5x2+22x+10; |
---|
85 | poly f11 = 12x5+16x4+8x3+28x2+x+26; |
---|
86 | poly f12 = 3x11+6x10+21x9+7x8+6x7+20x6+25x5+19x4+10x3+6x2+18x+5; |
---|
87 | poly f13 =19x2+18x+21; |
---|
88 | poly f14 = 21x10+12x9+x8+29x7+14x6+8x5+21x4+14x3+4x2+28x+18; |
---|
89 | poly f15 = 23x4+13x3+26x2+26x+14; |
---|
90 | |
---|
91 | list m=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15; |
---|
92 | |
---|
93 | poly g1 = 24x5+25x4+11x3+x2+3x+9; |
---|
94 | poly g2 = 8x3+17x2+19x+25; |
---|
95 | poly g3 = 26x3+27x2+14x+27; |
---|
96 | poly g4 = 24x+23; |
---|
97 | poly g5 =7x3+10x2+9x+22; |
---|
98 | poly g6 = 30x+6; |
---|
99 | poly g7 = 24x2+26x+2; |
---|
100 | poly g8 = 16x+9; |
---|
101 | poly g9 =17x3+25x2+11x+20; |
---|
102 | poly g10 =x +15; |
---|
103 | poly g11 = 14x3+x2+6x+16; |
---|
104 | poly g12 = 8x9+22x8+15x7+7x6+23x5+15x4+5x3+21x2+x+6; |
---|
105 | poly g13 =4x +3; |
---|
106 | poly g14 = 19x5+11x4+22x3+27x2+x+13; |
---|
107 | poly g15 = 22x2+15x+5; |
---|
108 | |
---|
109 | list l=g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11,g12,g13,g14,g15; |
---|
110 | |
---|
111 | tst_test_chinrempoly(l, m); |
---|
112 | tst_status(1);$ |
---|