1 | LIB "tst.lib"; |
---|
2 | tst_init(); |
---|
3 | |
---|
4 | LIB "pfd.lib"; |
---|
5 | |
---|
6 | example pfd; |
---|
7 | |
---|
8 | /* pfd(poly,poly) */ |
---|
9 | ring r1 = 0, x(1..5), dp; |
---|
10 | poly f = -2*x(1)*x(3)+3*x(3)*x(4)+x(2)*x(5)+x(3)*x(5)-x(4)*x(5); |
---|
11 | poly g = x(1)*x(3)*(-x(2)+x(3)+x(4))*(x(1)-x(5))*x(5); |
---|
12 | list dec = pfd(f,g); |
---|
13 | displaypfd(dec); |
---|
14 | getStringpfd_indexed(dec); |
---|
15 | displaypfd_long(dec); |
---|
16 | getStringpfd(dec); |
---|
17 | checkpfd(list(f,g), dec); |
---|
18 | checkpfd(list(f,g), dec,10); |
---|
19 | kill dec; |
---|
20 | |
---|
21 | ring r2 = (0,i), (q,r,s,t), dp; |
---|
22 | minpoly = i^2+1; |
---|
23 | poly f = 5*i*q^2*r + s^3*r - r^4 + (1+i)*q*r*s*t + s^2*t^2 -t^3; |
---|
24 | poly g = 4/(1+i)*q*r^3*(i*r+s-t^2)^2*(q^2+r^2+s^2); |
---|
25 | list dec = pfd(f,g); |
---|
26 | displaypfd(dec); |
---|
27 | getStringpfd_indexed(dec); |
---|
28 | displaypfd_long(dec); |
---|
29 | getStringpfd(dec); |
---|
30 | checkpfd(list(f,g), dec); |
---|
31 | checkpfd(list(f,g), dec,10); |
---|
32 | kill dec; |
---|
33 | |
---|
34 | ring r3 = 5, (x,y,z), dp; |
---|
35 | poly f = 2*x^3-x^2*y+x*y^2+y^3-2*x^2*z-2*x*y*z-y^2*z+2*x*z^2+y*z^2-2*z^3; |
---|
36 | poly g = (x^2+3*y)^2*(x-2*y^2)*(x+y+1)^3*(2*x+3*y+4)*(x^2-x*y+y^2); |
---|
37 | list dec = pfd(f,g); |
---|
38 | displaypfd(dec); |
---|
39 | checkpfd(list(f,g), dec); |
---|
40 | checkpfd(list(f,g), dec,10); |
---|
41 | kill dec; |
---|
42 | |
---|
43 | ring r4 = 5, (x,y,z), lp; |
---|
44 | poly f = fetch(r3,f); |
---|
45 | poly g = fetch(r3,g); |
---|
46 | list dec = pfd(f,g); |
---|
47 | displaypfd(dec); |
---|
48 | checkpfd(list(f,g), dec); |
---|
49 | checkpfd(list(f,g), dec,10); |
---|
50 | kill dec; |
---|
51 | |
---|
52 | /* pfd(list) */ |
---|
53 | ring s1 = 0, (x,y,z), dp; |
---|
54 | poly f1 = x*y+y*z+z*x-x-y-z+1; |
---|
55 | poly g1 = (z-2)*x^2*(y+1)^2*(x+2*y^2-z); |
---|
56 | poly f2 = 1; |
---|
57 | poly g2 = (z-2)*x^2*(y+1)^2*(x+2*y^2-z); |
---|
58 | poly f3 = x^4+y^4+z^4; |
---|
59 | poly g3 = (x^2+y^2+z^2)^2*(x+y+z)^3; |
---|
60 | list list_of_args = list(list(f1,g1), list(f2,g2), list(f3,g3)); |
---|
61 | list dec = pfd(list_of_args); |
---|
62 | displaypfd(dec[1]); |
---|
63 | displaypfd(dec[2]); |
---|
64 | displaypfd(dec[3]); |
---|
65 | checkpfd(list(f1,g1), dec[1]); |
---|
66 | checkpfd(list(f2,g2), dec[2]); |
---|
67 | checkpfd(list(f3,g3), dec[3]); |
---|
68 | kill dec; |
---|
69 | |
---|
70 | /* pfd(matrix) */ |
---|
71 | ring s2 = 3, (x,y,z), dp; |
---|
72 | poly f11 = (x+y+z+1)^3; |
---|
73 | poly g11 = (x-y)*(y-z)^2*(z-x)^3*(x^2+y^2+z^2); |
---|
74 | poly f12 = 1; |
---|
75 | poly g12 = (x-y)*(y-z)^2*(z-x)^3*(x^2+y^2+z^2); |
---|
76 | poly f21 = (x+2*y+3*z)^3-10; |
---|
77 | poly g21 = (x-y)^3*(y-z)^3*(z-x)^3*(x^2+y^2+z^2)^2; |
---|
78 | poly f22 = 1; |
---|
79 | poly g22 = (x-y)^3*(y-z)^3*(z-x)^3*(x^2+y^2+z^2)^2; |
---|
80 | list matrix_of_args = list(list(list(f11,g11), list(f12,g12)), |
---|
81 | list(list(f21,g21), list(f22,g22))); |
---|
82 | list dec = pfd(matrix_of_args); |
---|
83 | displaypfd(dec[1][1]); |
---|
84 | displaypfd(dec[1][2]); |
---|
85 | displaypfd(dec[2][1]); |
---|
86 | displaypfd(dec[2][2]); |
---|
87 | checkpfd(list(f11,g11), dec[1][1]); |
---|
88 | checkpfd(list(f12,g12), dec[1][2]); |
---|
89 | checkpfd(list(f21,g21), dec[2][1]); |
---|
90 | checkpfd(list(f22,g22), dec[2][2]); |
---|
91 | kill dec; |
---|
92 | |
---|
93 | |
---|
94 | tst_status(1);$ |
---|