source: git/Tst/Short/gcdp_s.tst @ 4e59df4

spielwiese
Last change on this file since 4e59df4 was 341696, checked in by Hans Schönemann <hannes@…>, 14 years ago
Adding Id property to all files git-svn-id: file:///usr/local/Singular/svn/trunk@12231 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 5.5 KB
Line 
1// $Id$
2
3//
4// gcdp_s.tst - short tests for gcd calculations mod p.
5//
6// All univariate non-trivial examples come from gcdUnivP.fex
7// or gcdUnivPAlpha.fex.
8//
9// The example in variables `a', `c', `e', ... came from `untitled2(6/p/1)'
10// in stdMultivPGcd.in.
11//
12// To Do:
13//
14// o multivariate gcd calculations with parameters
15//
16
17LIB "tst.lib";
18tst_init();
19tst_ignore("CVS ID  : $Id$");
20
21//
22// - functions.
23//
24
25//
26// simplifyGcd() - print gcd as well as normalized gcd.
27//
28proc simplifyGcd ( poly f, poly g )
29{
30  poly d=gcd( f, g );
31  d;
32  simplify( d, 1 );
33}
34
35//
36// - ring r1=32003,x,dp.
37//
38
39tst_ignore( "ring r1=32003,x,dp;" );
40ring r1=32003,x,dp;
41
42poly f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
43poly g;
44
45// some trivial examples
46gcd(0, 0);
47gcd(0, 3123);
48gcd(4353, 0);
49simplifyGcd(0, 0);
50simplifyGcd(0, 3123);
51simplifyGcd(4353, 0);
52
53simplifyGcd(0, f);
54simplifyGcd(f, 0);
55
56simplifyGcd(23123, f);
57simplifyGcd(f, 13123);
58
59// some less trivial examples
60f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
61g=-9554*x^3-3341*x^2+6213*x;
62simplifyGcd(f, g);
63
64f=-11265*x^6+12161*x^5+10369*x^4-12161*x^3+896*x^2;
65g=10669*x^8-10673*x^7+5*x^6+8*x^5-10681*x^4+10665*x^3+7*x^2;
66simplifyGcd(f, g);
67
68f=-7918*x^9-14406*x^8-7256*x^7+2092*x^6-2198*x^5-12539*x^4-14631*x^3-7150*x^2;
69g=-14833*x^13-7011*x^12+15121*x^11-10864*x^10+12943*x^9-9871*x^8+10354*x^7-1437*x^6+6604*x^5-10394*x^4-3231*x^3-9348*x^2-2092*x;
70simplifyGcd(f, g);
71
72//
73// - ring r2=(32003,a),x,dp; minpoly=a^4+8734*a^3+a^2+11817*a+1.
74//
75
76tst_ignore( "ring r2=(32003,a),x,dp;" );
77ring r2=(32003,a),x,dp;
78minpoly=a^4+8734*a^3+a^2+11817*a+1;
79
80poly f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
81poly g;
82
83// first, some of the r1 examples
84simplifyGcd(0, 0);
85simplifyGcd(0, 3123);
86simplifyGcd(4353, 0);
87
88simplifyGcd(0, f);
89simplifyGcd(f, 0);
90
91simplifyGcd(23123, f);
92simplifyGcd(f, 13123);
93
94// some less trivial examples
95f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
96g=-9554*x^3-3341*x^2+6213*x;
97simplifyGcd(f, g);
98
99f=-11265*x^6+12161*x^5+10369*x^4-12161*x^3+896*x^2;
100g=10669*x^8-10673*x^7+5*x^6+8*x^5-10681*x^4+10665*x^3+7*x^2;
101simplifyGcd(f, g);
102
103// now, examples involving the algebraic variable
104f=(21147*a^3*x^5+10147*a^3*x^4+8142*a^2*x^4+27671*a*x^4+29289*x^4+29289*a^3*x^3);
105g=(6167*a^3*x^6+1536*a^2*x^6+5211*a*x^6+1536*x^6+17534*a^3*x^5+478*a^2*x^5+1536*a*x^5+19085*x^5+3203*a^3*x^4+26578*a^2*x^4+17052*a*x^4+26770*x^4+26002*a^3*x^3+24062*a^2*x^3+192*a*x^3+6386*x^3);
106simplifyGcd(f, g);
107
108f=(2295*a^2*x^11+5897*a^3*x^10+765*a^2*x^10+27718*a^3*x^9+1283*a^2*x^9+23792*a*x^9+518*x^9+22026*a^3*x^8+11468*a^2*x^8+16834*a*x^8+24778*x^8+28460*a^3*x^7+8140*a^2*x^7+28036*a*x^7+1613*x^7+18196*a^3*x^6+13274*a^2*x^6+4638*a*x^6+31194*x^6+12206*a^3*x^5+10349*a^2*x^5+30979*a*x^5+8612*x^5);
109g=(8192*a^3*x^10+8957*a^2*x^10+9659*a^3*x^9+28672*a^2*x^9+4553*a*x^9+12288*x^9+5819*a^3*x^8+320*a^2*x^8+14380*a*x^8+12104*x^8+12047*a^3*x^7+19823*a^2*x^7+6824*a*x^7+4335*x^7+29376*a^3*x^6+22190*a^2*x^6+31239*a*x^6+22647*x^6);
110simplifyGcd(f, g);
111
112//
113// - ring r3=(32003,t),x,dp.
114//
115
116tst_ignore( "ring r3=(32003,t),x,dp;" );
117ring r3=(32003,t),x,dp;
118
119poly f=(-9554*x^4-12895*x^3-10023*x^2-6213*x);
120poly g;
121
122// first, some of the r1 examples (slightly modified)
123simplifyGcd(0, 0);
124simplifyGcd(0, 3123*t);
125simplifyGcd(4353, 0);
126
127simplifyGcd(0, f/t);
128simplifyGcd(f, 0);
129
130simplifyGcd(23123/t, f);
131simplifyGcd(f, 13123);
132
133// some less trivial examples
134f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
135g=-9554*x^3-3341*x^2+6213*x;
136simplifyGcd(f, g);
137
138// we go on with modified variable names
139tst_ignore( "ring r3=(32003,a,c,e),(f,h,k),dp;" );
140kill r3;
141ring r3=(32003,a,c,e),(f,h,k),dp;
142
143poly fPoly;
144poly gPoly;
145
146fPoly=(16001*c^2*f^2*k^2-16001*c*e*f*k^3+c*f^3*h*k-e*f^2*h*k^2);
147gPoly=(c^3*e*f*h-4*c*e^2*f*h^2);
148simplifyGcd(fPoly, gPoly);
149
150fPoly=(c^4*k^2-5*c^3*f*h*k+4*c^2*e*h*k^2+4*c^2*f^2*h^2-4*c*e*f*h^2*k);
151gPoly=(-c^3*f*k^2+c^2*e*k^3+2*c^2*f^2*h*k-2*c*e*f*h*k^2);
152simplifyGcd(fPoly, gPoly);
153
154fPoly=(-8001*c^4*e*f*k^6+8001*c^4*f^3*h*k^4+8001*c^3*e^2*k^7+8001*c^3*e*f^2*h*k^5+16001*c^3*f^4*h^2*k^3+16001*c^2*e^2*f*h*k^6-16001*c^2*e*f^3*h^2*k^4);
155gPoly=(16001*c^7*e*h*k^3-15998*c^6*e*f*h^2*k^2-7*c^5*e*f^2*h^3*k-8*c^4*e^2*f*h^3*k^2+4*c^4*e*f^3*h^4+8*c^3*e^3*h^3*k^3+24*c^3*e^2*f^2*h^4*k-24*c^2*e^3*f*h^4*k^2-16*c^2*e^2*f^3*h^5+16*c*e^3*f^2*h^5*k);
156simplifyGcd(fPoly, gPoly);
157
158//
159// - ring r4=32003,(t,x),dp.
160//
161// The examples from r4 are those from r3 with parameters
162// changed to ring variables.
163//
164
165tst_ignore( "ring r4=32003,(t,x),dp;" );
166ring r4=32003,(t,x),dp;
167
168poly f=(-9554*x^4-12895*x^3-10023*x^2-6213*x);
169poly g;
170
171// first, some of the r1 examples (slightly modified)
172simplifyGcd(0, 0);
173simplifyGcd(0, 3123*t);
174simplifyGcd(4353, 0);
175
176simplifyGcd(0, f);
177simplifyGcd(f, 0);
178
179simplifyGcd(23123*t, f);
180simplifyGcd(f, 13123);
181
182// some less trivial examples
183f=-9554*x^4-12895*x^3-10023*x^2-6213*x;
184g=-9554*x^3-3341*x^2+6213*x;
185simplifyGcd(t*f, g);
186
187// we go on with modified variable names
188tst_ignore( "ring r4=32003,(a,c,e,f,h,k),dp;" );
189kill r4;
190ring r4=32003,(a,c,e,f,h,k),dp;
191
192poly fPoly;
193poly gPoly;
194
195fPoly=(16001*c^2*f^2*k^2-16001*c*e*f*k^3+c*f^3*h*k-e*f^2*h*k^2);
196gPoly=(c^3*e*f*h-4*c*e^2*f*h^2);
197simplifyGcd(fPoly, gPoly);
198
199fPoly=(c^4*k^2-5*c^3*f*h*k+4*c^2*e*h*k^2+4*c^2*f^2*h^2-4*c*e*f*h^2*k);
200gPoly=(-c^3*f*k^2+c^2*e*k^3+2*c^2*f^2*h*k-2*c*e*f*h*k^2);
201simplifyGcd(fPoly, gPoly);
202
203fPoly=(-8001*c^4*e*f*k^6+8001*c^4*f^3*h*k^4+8001*c^3*e^2*k^7+8001*c^3*e*f^2*h*k^5+16001*c^3*f^4*h^2*k^3+16001*c^2*e^2*f*h*k^6-16001*c^2*e*f^3*h^2*k^4);
204gPoly=(16001*c^7*e*h*k^3-15998*c^6*e*f*h^2*k^2-7*c^5*e*f^2*h^3*k-8*c^4*e^2*f*h^3*k^2+4*c^4*e*f^3*h^4+8*c^3*e^3*h^3*k^3+24*c^3*e^2*f^2*h^4*k-24*c^2*e^3*f*h^4*k^2-16*c^2*e^2*f^3*h^5+16*c*e^3*f^2*h^5*k);
205simplifyGcd(fPoly, gPoly);
206tst_status(1);$
Note: See TracBrowser for help on using the repository browser.