source: git/Tst/Long/hnoether_l.tst @ 09f10e

spielwiese
Last change on this file since 09f10e was 935bf64, checked in by Hans Schönemann <hannes@…>, 17 years ago
*hannes: hne id git-svn-id: file:///usr/local/Singular/svn/trunk@10205 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 13.6 KB
Line 
1// File: hnoether_l.tst
2// Intensive tests for hnoether lib
3LIB "tst.lib";
4tst_init();
5LIB "hnoether.lib";
6// ------------ test of develop: -------------------
7ring zuklein=0,x,dp;
8develop(x2+2x3);
9ring r=0,(x,y),ds;
10develop(x2+2x+3+y);
11develop(0);
12develop(x2+y2);
13develop(x2+y+y2);
14develop(2x2+3xy+4xy3-x2y);
15poly p_1 = y2+x3;
16poly p_2 = p_1^2 + x5y;
17poly p_3 = p_2^2 + x^10 *p_1;
18poly p_4 = p_3^2 + x^20 *p_2;
19poly p_5 = p_4^2 + x^40 *p_3;
20param(develop(p_2));
21int z=timer;
22param(develop(p_4));
23tst_ignore(timer-z,"time");
24z=timer;
25list Hne=develop(p_4,-1);
26tst_ignore(timer-z,"time");
27print(extdevelop(Hne,4)[1]);
28tst_ignore(timer-z,"time");
29z=timer;
30print(develop(p_4,4)[1]);
31tst_ignore(timer-z,"time");
32poly heme=xy8+y8+x4y6+4x3y6+2x5y5+6x6y4+4x8y3+x10y2+4x9y2+2x11y+x12;
33Hne=develop(heme);
34print(Hne[1]);
35ring R=32003,(x,y),dp;
36poly p_5=imap(r,p_5);
37z=timer;
38print(develop(p_5,-1)[1]);
39tst_ignore(timer-z,"time");
40kill r;
41ring r=32003,(x,y),ls;
42poly p_5=fetch(R,p_5);
43z=timer;
44print(develop(p_5,-1)[1]);
45tst_ignore(timer-z,"time");
46kill r,R;
47ring r=2,(x,y,t),ds;
48poly f=y2+x7y+x9+x8;
49param(develop(f));
50kill r;
51ring r=7,(x,y),dp;
52poly f=2*(y-3x7)^14;
53develop(f+x12y14);
54develop(f+x7y14);
55kill r;
56ring r=(0,i),(a,b),dp;
57develop(a2+ib3);
58develop(a5+i2*a4+2i*a2b+b2);
59kill r;
60ring r=(0,i),(a,b),dp;
61minpoly=i2+1;
62develop(a2+ib3);
63develop(a5+i2*a4+2i*a2b+b2);
64develop((a+2b)^2+ib5);
65kill r;
66ring r=(7,i),(x,y),dp;
67develop(x+y);
68kill r;
69ring r=(7,i),(x,y),dp;
70minpoly=i2+1;
71develop(x);
72kill r;
73ring r=(49,k),(g,h),Dp;
74develop(g3+h4);
75develop((g2+2h)^7+h9);
76kill r;
77ring r=real,(x,y),dp;
78develop(x-y);
79kill r;
80ring r=(11,a,b,c),(d,e,f),ls;
81develop(ad2+a2b3e3+2bc4e4);
82kill r;
83
84// ------------ test of hnexpansion: -------------------
85setring zuklein;
86hnexpansion(x);
87ring r=7,(a,b),dp;
88hnexpansion(a6+b4);
89kill r;
90ring r=0,(x,y),dp;
91hnexpansion(x6-y4);
92hnexpansion((x6-y4)*(y6-x4));
93hnexpansion((y-x2+x3)*(y-x2-x3));
94hnexpansion((x7-2x4y2+xy4-1y5)*(x7-4x4y2+4xy4-1y5));
95hnexpansion((y2-x3)*(y2-x3-x4));
96hnexpansion((y2-x3-x4)*(y2+x3+x4));
97hnexpansion(((x2-y)^2+x5)*((2x2-y)^2+x5));
98hnexpansion(x2+1+y3);
99hnexpansion(0);
100kill r;
101ring r=(49,i),(x,y),dp;
102def L=hnexpansion(x);
103def HNring = L[1]; setring HNring;  displayHNE(hne);
104kill L,HNring,r;
105ring r=(7,i),(x,y),dp;
106list Hne=hnexpansion(x3+y6);
107displayHNE(Hne);
108kill Hne;
109def L=hnexpansion((x2+y4)*(x+y4));
110def HNring = L[1]; setring HNring;  displayHNE(hne);
111setring r;
112kill L,HNring;
113hnexpansion(x2+y4);
114kill r;
115ring r=(0,e),(x,y),lp;
116hnexpansion(x2-y2);
117hnexpansion(x2-ey2);
118kill r;
119ring r=(32003,i),(x,y),dp;
120minpoly=i2+1;
121param(hnexpansion(x2+y4));
122kill r;
123ring r=(32003,i),(x,y),dp;
124minpoly=i2+i+1;
125param(hnexpansion(x2+y4));
126kill r;
127ring r=real,(x,y),dp;
128hnexpansion(x);
129kill r;
130ring r=(11,a,b,c),(d,e,f,g),dp;
131list L=hnexpansion(a2bd2+bce3+a2c3e4);
132displayHNE(L);
133kill r;
134ring r=(11,a,b,c),(d,e),Ds;
135hnexpansion(a2bd2+bce3+a2c3e4);
136kill r;
137ring r=(11,a),(x,y,z),wp(1,2,3);
138minpoly=a2+4;
139list L=hnexpansion(x2+ay3);
140param(L,1);
141kill r;
142ring F2=2,(x,y,t),ds;
143poly f=y2+x7y+x9+x8;
144def L=hnexpansion(f);
145def P=param(L[1],1);
146map phi=F2,P[1][1],P[1][2];
147phi(f);
148kill L,P,phi,F2;
149
150//--------------- examples with change to ring extension
151ring R=32003,(x,y),dp;
152poly f=(x6+(y-x)^4)*(y+x);
153def L=hnexpansion(f);
154def HNring = L[1]; setring HNring;  displayHNE(hne);
155setring R;
156kill HNring;
157f=x19-4x18+3x17+8x16y-1x16-10x15y-4x14y2+6x14y+10x13y2-16x12y2+26x10y3-5x9y4
158     -30x8y4+2x7y5+26x6y5-16x4y6+6x2y7-1y8;
159L=hnexpansion(f);
160def HNring = L[1]; setring HNring;  displayHNE(hne);
161setring R;
162kill HNring;
163f=x29-6x28+14x27+12x26y-18x26-56x25y-6x24y2+13x25+110x24y+84x23y2-5x24
164     -108x23y-282x22y2-56x21y3+54x22y+396x21y2+390x20y3+14x19y4-266x20y2
165     -840x19y3-310x18y4+790x18y3+1134x17y4+138x16y5-1575x16y4-1008x15y5
166     -30x14y6+2220x14y5+588x13y6+2x12y7-2268x12y6-216x11y7+1692x10y7+45x9y8
167     -915x8y8-4x7y9+350x6y9-90x4y10+14x2y11-1y12;
168L=hnexpansion(f);
169def HNring = L[1]; setring HNring;  displayHNE(hne);
170displayInvariants(hne);
171setring R;
172kill HNring;
173L=hnexpansion(xy6+x3y4-4x5y3+6x7y2-4x9y+x11,"ess");
174def HNring = L[1]; setring HNring;  displayHNE(hne);
175setring R; kill HNring;
176L=hnexpansion(y10-4x3y8+6x6y6-4x9y4+x12y2+x16,"ess");
177L[2];
178def HNring = L[1]; setring HNring;
179def P=param(hne[1]);
180map phi=HNring,P[1][1],P[1][2];
181phi(f);
182kill P,phi;
183setring R; kill HNring;
184L=hnexpansion((y10-4x3y8+6x6y6-4x9y4+x12y2+x16)*(x6-y4),"ess");
185L[2];
186def HNring = L[1]; setring HNring;  displayHNE(hne);
187ideal P; map phi;
188for (int i=1; i<=size(hne); i++)
189{
190  P=param(hne[i]);
191  phi=HNring,P[1],P[2];
192  phi(f);
193}
194kill i,P,phi,L,HNring,R;
195
196ring r=0,(x,y),ds;
197poly g=x12+y15+x13+x16;
198def L=hnexpansion(g,1);
199L[2];
200def HNring = L[1]; setring HNring;  displayHNE(hne);
201ideal P; map phi;
202for (int i=1; i<=size(hne); i++)
203{
204  P=param(hne[i]);
205  phi=HNring,P[1],P[2];
206  ord(phi(f));
207}
208kill i,P,phi,L,HNring;
209setring r;
210poly f=(x2-y2)*(x2+y2)*(x2+y4);
211def L=hnexpansion(f,"ess");
212L[2];
213def HNring = L[1]; setring HNring;  displayHNE(hne);
214setring r; kill HNring;
215f=(x2-y2)*(x2+y2)*(2y2+x4)*(y2-x7)*(2x2+y4);
216L=hnexpansion(f,"ess");
217L[2];
218def HNring = L[1]; setring HNring;  displayHNE(hne);
219setring r; kill HNring;
220f=(y2+x2)*(x2-y3)*(x6-13y12);
221L=hnexpansion(f,1);
222L[2];
223def HNring = L[1]; setring HNring;
224ideal P; map phi;
225for (int i=1; i<=size(hne); i++)
226{
227  P=param(hne[i]);
228  phi=HNring,P[1],P[2];
229  phi(f);
230}
231kill i,P,phi,HNring,L,r;
232ring r=(0,a),(x,y),ds;
233minpoly=a2-2;
234poly f=(x2-y2)*(x2+y2)*(2y2+x4)*(y2-x7)*(2x2+y4);
235def L=hnexpansion(f,1);
236L[2];
237def HNring = L[1]; setring HNring;
238ideal P; map phi;
239for (int i=1; i<=size(hne); i++)
240{
241  P=param(hne[i]);
242  phi=HNring,P[1],P[2];
243  phi(f);
244}
245kill i,P,phi,HNring,L;
246
247//--------------- examples with more than one ring change
248ring F3=3,(x,y),dp;
249list L=hnexpansion((x3-xy2+y3)*(x2+y2)*(x4-x3y+xy3+y4));
250def HNring = L[1]; setring HNring; 
251map T; int i;
252for (i=1; i<=size(hne); i++) {
253 T=basering,param(hne[i]);
254 T(f);
255}
256displayHNE(hne);
257def displayRing=displayHNE(hne[3],1);
258setring displayRing; HNE;
259kill displayRing,HNring,i;
260setring F3;
261poly f=(x3-xy4+y6)*(x2+y2)*(x4-x3y+xy3+y4);
262L=hnexpansion(f,1);
263L[2];
264def HNring = L[1]; setring HNring; 
265map T; int i;
266for (i=1; i<=size(hne); i++) {
267 T=basering,param(hne[i]);
268 T(f);
269}
270kill HNring,i;
271setring F3;
272f=(x3-xy4+y6)*(x2+y6)*(x4-x3y4+xy12+y16);
273L=hnexpansion((x3-xy4+y6)*(x2+y6)*(x4-x3y4+xy12+y16));
274def HNring = L[1]; setring HNring; 
275map T; int i;
276for (i=1; i<=size(hne); i++) {
277 T=basering,param(hne[i]);
278 T(f);
279}
280kill L,HNring,i;
281
282ring r=199,(x,y),ds;
283poly g=y36+6x8y30-24x9y30+15x16y24-x17y24+20x24y18+41x18y24+42x25y18
284 +15x32y12+31x26y18-42x33y12-86x27y18+6x40y6+23x34y12+x41y6-75x35y12
285 +x48+31x42y6+59x36y12+24x49+75x43y6+41x50-64x44y6+86x51+25x45y6+59x52
286 -25x53-83x54;
287def L=hnexpansion(g);
288invariants(L);
289delta(L);
290delta(g);
291L=hnexpansion(g,1);
292L[2];
293invariants(L);
294def HNring = L[1]; setring HNring;  displayHNE(hne);
295kill L,r,HNring;
296
297// -------------- bigger examples with timings
298ring r=0,(x,y),dp;
299poly p_1 = y2+x3;
300poly p_2 = p_1^2 + x5y;
301poly p_3 = p_2^2 + x^10 *p_1;
302poly p_4 = p_3^2 + x^20 *p_2;
303poly p_5 = p_4^2 + x^40 *p_3;
304z=timer;
305list L=hnexpansion(p_1*p_2*p_3*p_4);
306tst_ignore(timer-z,"time");
307tst_ignore(kmemory(),"memory");
308print(L[3][1]);
309print(L[4][1]);
310displayInvariants(L);
311z=timer;
312L=hnexpansion(p_5);
313tst_ignore(timer-z,"time");
314tst_ignore(kmemory(),"memory");
315print(L[1][1]);
316displayInvariants(L);
317displayInvariants(L[1]);
318kill r;
319ring r=0,(x,y),ds;
320poly f=(x4-2y6)*(x10+y14+x16+y17)+x30+4x24y8+y32;
321z=timer;
322def L=hnexpansion(f);
323tst_ignore(timer-z,"time");
324tst_ignore(kmemory(),"memory");
325def HNring = L[1]; setring HNring;  displayHNE(hne);
326kill L,HNring,r;
327
328ring r=32003,(x,y),ds;
329poly p_1 = y4+x6;
330poly p_2 = y7-2x14;
331poly p_3 = p_1^14 + p_2^10+x100+y83;
332z=timer;
333def L=hnexpansion(p_3,"ess");
334tst_ignore(timer-z,"time");
335tst_ignore(kmemory(),"memory");
336L[2];
337def HNring = L[1]; setring HNring;  displayHNE(hne);
338kill r,L,HNring;
339
340// irreducible example with 3 Puiseux pairs over algebraic number field
341// (no field extension needed)
342ring r=(199,a),(x,y,t),ds;
343minpoly = 5+12a+3a2-4a3+3a4+a6;
344number I = 23-94a+94a2-38a3-81a4-91a5;   // I^2 = -1
345number sq = -23+95a-94a2+38a3+81a4+91a5; // sq^3 = 2
346ideal J = x-t^12,
347          y-I*t^16-sq*t^18-t^19;
348def f=eliminate(J,t)[1];
349def L=hnexpansion(f);
350displayInvariants(L[1]);
351
352// Example with 1 field extension, 6 conjugate branches, 3 Puiseux pairs
353ring r=199,(x,y),ds;
354poly g=y48+24*x3y46+77*x6y44+34*x9y42+79*x12y40+56*x9y43-82*x15y38-93*x12y41
355 +72*x18y36+12*x15y39+43*x21y34+42*x18y37-6*x15y40-33*x24y32-99*x21y35
356 -96*x18y38+74*x27y30+56*x24y33-74*x21y36-88*x30y28-41*x27y31-70*x24y34
357 +87*x33y26+37*x30y29+36*x27y32+81*x24y35-55*x36y24-78*x33y27-27*x30y30
358 +91*x27y33+87*x39y22+88*x36y25-56*x33y28-87*x30y31-88*x42y20+32*x39y23
359 -87*x36y26+14*x33y29+15*x30y32+74*x45y18+42*x42y21-2*x39y24-92*x36y27
360 +44*x33y30-33*x48y16-86*x45y19-39*x42y22-17*x39y25+42*x36y28+43*x51y14
361 +58*x48y17+24*x45y20-27*x42y23-2*x39y26+72*x54y12-93*x51y15+40*x48y18
362 -28*x45y21+84*x42y24+45*x39y27-82*x57y10+80*x54y13+16*x51y16+18*x48y19
363 -21*x45y22-19*x42y25+79*x60y8+70*x57y11+20*x54y14+31*x51y17+85*x48y20
364 +99*x45y23+34*x63y6-9*x60y9-95*x57y12-97*x54y15+17*x51y18-33*x48y21
365 -20*x45y24+77*x66y4-88*x63y7-57*x60y10+86*x57y13+82*x54y16+64*x51y19
366 -58*x48y22+24*x69y2+83*x66y5-94*x63y8+25*x60y11-34*x57y14-59*x54y17
367 -50*x51y20+x72-16*x69y3-77*x66y6+77*x63y9+83*x60y12+62*x54y18+81*x72y
368 +73*x69y4-25*x66y7+96*x63y10+27*x60y13+56*x57y16+13*x54y19+93*x72y2
369 +71*x69y5-46*x66y8+58*x63y11+38*x60y14-78*x57y17+77*x75+91*x72y3
370 -5*x69y6-65*x66y9-7*x63y12+93*x60y15-40*x75y-38*x72y4-11*x69y7+31*x66y10
371 +21*x63y13+15*x60y16+92*x75y2+29*x72y5+76*x69y8-84*x66y11+76*x63y14
372 -34*x78+65*x75y3-42*x72y6+4*x69y9+10*x66y12-83*x78y+62*x75y4-2*x72y7
373 +39*x69y10-48*x78y2+28*x75y5-23*x72y8+31*x69y11-41*x81+72*x78y3+14*x75y6
374 -21*x72y9+8*x81y+94*x78y4-87*x75y7+50*x81y2+74*x78y5-6*x75y8+61*x84
375 -79*x81y3-95*x78y6+58*x84y-35*x81y4+19*x84y2-81*x87-27*x84y3+77*x87y+x90;
376z=timer;
377list L=hnexpansion(g);
378tst_ignore(timer-z,"time");
379tst_ignore(kmemory(),"memory");
380def HNring = L[1]; setring HNring;  displayHNE(hne);
381setring r; kill HNring;
382z=timer;
383L=hnexpansion(g,"ess");
384tst_ignore(timer-z,"time");
385tst_ignore(kmemory(),"memory");
386L[2];
387
388// ------------ test of extdevelop: -------------------
389list Hne=develop(x2+y3+y4-y5,-1);
390show(extdevelop(Hne,2));
391show(extdevelop(Hne,4));
392show(extdevelop(Hne,10));
393kill Hne,r;
394ring r=(49,i),(x,y),ls;
395list Hne=develop((x2+iy3)^7+x15);
396show(extdevelop(Hne,8));
397kill Hne;
398// ------------ test of essdevelop: -------------------
399setring F3;
400list L=essdevelop((x3-xy2+y3)*(x2+y2)*(x4-x3y+xy3+y4));
401L[2];
402def HNring = L[1]; setring HNring; displayHNE(hne);
403def rr=r;
404map T; int ii;
405for (ii=1; ii<=size(hne); ii++) {
406 T=basering,param(hne[ii]);
407 T(f);
408}
409kill T,f,ii;
410setring F3;
411kill HNring;
412L=essdevelop(x2+y3+xy4);
413L[2];
414displayHNE(L[1]);
415displayHNE(develop(x2+y3+xy4));
416setring r;
417kill F3;
418
419// ------------ more tests of hnexpansion: --------------------
420list L=hnexpansion((x2+iy3)^7+x15); 
421def HNring = L[1]; setring HNring;  displayHNE(hne);
422show(extdevelop(hne[1],8));          // Fehler in factorize endlos!
423map T=basering,param(hne[1]);
424T(f);
425kill T;
426setring r; kill HNring;
427L=hnexpansion((x2+iy3)^6+x15);     // Als Ersatz fuer die Zwischenzeit
428def HNring = L[1]; setring HNring;
429map T=basering,param(hne[1]);
430ord(T(f));
431kill L,HNring,r;
432
433ring r=(0,i),(a,b),ds;
434minpoly=i2+1;
435list L=hnexpansion(a2+ib3-ia3b);
436show(L);
437kill r;
438ring r=0,(x,y),ds;
439displayHNE(hnexpansion((x3+3x2y-xy4+y10)*(x3-x2y+y8)));
440// ------------ more tests of param: ------------------------
441param(develop(x+1+y2));
442param(develop(x2+y3));
443param(develop(y2+x3));
444param(develop(x+y2-y3));
445param(develop(x2+y3+y4));
446param(develop((x-2y3)^2+x3));
447param(develop(y+x2-y3));
448param(develop((y-2x3)^2+x7));
449param(develop((y-2x3)^2+x7),0);
450param(develop(x+y2-y3),0);
451param(develop(x2+y3+y4),"Fritz");
452param(develop(y2+x3+x4),x);
453z=timer;
454param(develop((y-2x3)^2+y5));
455tst_ignore(timer-z,"time");
456kill r;
457ring r=(27,j),(k,l,t),lp;
458list Hne=develop((k3-jl)^6+l7,9);
459param(Hne);
460// ------------ test of displayHNE: -------------------
461displayHNE(Hne);
462kill r;
463ring r=3,(k,l,t),lp;
464list Hne=develop((k3+l)^6+l7,9);
465displayHNE(Hne);
466def RR=displayHNE(Hne,1);
467setring RR; HNE;
468kill RR,r;
469ring r=0,(x,y),dp;
470displayHNE(develop(x));
471displayHNE(develop(y));
472displayHNE(develop(1));
473// ------------ test of displayInvariants: ------------
474list L=hnexpansion((x2+y3+y4)*(x+y2+y3-y4)*(x5+y7));
475displayInvariants(L[1]);
476displayInvariants(L[2]);
477displayInvariants(L);
478// ------------ test of is_irred: ---------------------
479is_irred(x);
480is_irred(x2);
481is_irred((x+y)*(1+x+y));  // one HNE
482is_irred((x+y)*(x+y+xy)); // one of two HNEs found
483is_irred(x2+y2);          // no HNE found
484is_irred(1+x+y);          // unit
485// ----------------------------------------------------------------------------
486// ------- test of invariants, delta, intersection, puiseux2generators,     ---
487// -------         multiplicities, newtonpoly                               ---
488example delta;
489example invariants;
490poly f=(x2-y3+y5)*(x2+y3-y5);
491L=hnexpansion(f);
492delta(f);
493delta(L);
494intersection(L[1],L[2]);
495puiseux2generators(intvec(3,7,15,31,63,127),intvec(2,2,2,2,2,2));
496example newtonpoly;
497// ------- test of getnm, T_Transform, T1_Transform, T2_Transform, koeff, -----
498// ------------  redleit, squarefree, allsquarefree, referencepoly   ----------
499example getnm;
500T_Transform(y2+x3,1,2);
501T1_Transform(y-x2+x3,1,2);
502T2_Transform(y2+x3-x2y,-1,3,2,referencepoly(newtonpoly(y2+x3-x2y)));
503koeff(x2+2xy+3xy2-x2y-2y3,1,2);
504example redleit;
505example squarefree;
506ring R=(27,k),(x,y),dp;
507squarefree(x2);
508squarefree(y3);
509squarefree((x2+y)^3*(x-y)^2*(x+y));
510
511example allsquarefree;
512// ------ Test multSequence (depends on numbering of branches):
513ring rr=0,(x,y),ls;
514poly f=x6y-3x4y4-x4y5+3x2y7-x4y6+2x2y8-y10+2x2y9-y11+x2y10-y12-y13;
515multsequence(f);
516
517tst_status(1);$
Note: See TracBrowser for help on using the repository browser.