| LIB "hnoether.lib";
ring exring=0,(x,y,t),ds;
// 1st Example: input is a polynomial
poly g=(x2-y3)*(x3-y5);
parametrisation(g);
→ [1]:
→ _[1]=t3
→ _[2]=t2
→ [2]:
→ _[1]=t5
→ _[2]=t3
// 2nd Example: input is the ring of a Hamburger-Noether expansion
poly h=x2-y2-y3;
list hn=hnexpansion(h);
parametrisation(h,1);
→ [1]:
→ [1]:
→ _[1]=t
→ _[2]=t-1/2t2
→ [2]:
→ -1,2
→ [2]:
→ [1]:
→ _[1]=t
→ _[2]=-t-1/2t2
→ [2]:
→ -1,2
// 3rd Example: input is a Hamburger-Noether expansion
poly f=x3+2xy2+y2;
list hne=develop(f);
list hne_extended=extdevelop(hne,10);
// compare the matrices ...
print(hne[1]);
→ 0,x,
→ 0,-1
print(hne_extended[1]);
→ 0,x, 0,0,0,0, 0,0,0,0,
→ 0,-1,0,2,0,-4,0,8,0,-16
// ... and the resulting parametrizations:
parametrisation(hne);
→ [1]:
→ _[1]=-t2
→ _[2]=-t3
parametrisation(hne_extended);
→ [1]:
→ _[1]=-t2+2t4-4t6+8t8-16t10
→ _[2]=-t3+2t5-4t7+8t9-16t11
parametrisation(hne_extended,0);
→ [1]:
→ [1]:
→ _[1]=-t2+2t4-4t6+8t8-16t10
→ _[2]=-t3+2t5-4t7+8t9-16t11
→ [2]:
→ 10,11
|