|
D.5.5.4 extdevelop
Procedure from library hnoether.lib (see hnoether_lib).
- Usage:
- extdevelop(L,N); list L, int N
- Assume:
- L is the output of
develop(f) , or of extdevelop(l,n) ,
or one entry in the list hne in the ring created by
hnexpansion(f[,"ess"]) .
- Return:
- an extension of the Hamburger-Noether development of f as a list
in the same format as L has (up to the last entry in the output
of
develop(f) ).
Type help develop; , resp. help hnexpansion; for more
details.
- Note:
- The new HN-matrix will have at least N columns (if the HNE is not
finite). In particular, if f is irreducible then (in most cases)
extdevelop(develop(f),N) will produce the same result as
develop(f,N) .
If the matrix M of L has n columns then, compared with
parametrisation(L) , paramametrize(extdevelop(L,N)) will increase the
exactness by at least (N-n) more significant monomials.
Example:
| LIB "hnoether.lib";
if (defined(HNEring))
{
def save_r_i_n_g=HNEring;
kill HNEring;
}
// ------ the example starts here -------
ring exring=0,(x,y),dp;
list hn=hnexpansion(x14-3y2x11-y3x10-y2x9+3y4x8+y5x7+3y4x6+x5*(-y6+y5)
-3y6x3-y7x2+y8);
def HNEring=hn[1];
setring HNEring;
export(HNEring);
==> // ** `HNEring` is already global
print(hne[1][1]); // HNE of 1st branch is finite
==> 0,x,0,
==> 0,1,x
print(extdevelop(hne[1],5)[1]);
==> No extension is possible
==> 0,x,0,
==> 0,1,x
print(hne[2][1]); // HNE of 2nd branch can be extended
==> 0,x,0,
==> 0,1,x,
==> 0,1,-1
list ehne=extdevelop(hne[2],5);
print(ehne[1]); // new HN-matrix has 5 columns
==> 0,x,0, 0,0,
==> 0,1,x, 0,0,
==> 0,1,-1,1,-1
parametrisation(hne[2]);
==> [1]:
==> _[1]=x4-x5-x6+x7
==> _[2]=x6-2x7+2x9-x10
parametrisation(ehne);
==> [1]:
==> _[1]=x4-x5+x6-x7-x8+x9-x10+x11
==> _[2]=x6-2x7+3x8-4x9+2x10-2x12+4x13-3x14+2x15-x16
if (defined(save_r_i_n_g))
{
kill HNEring;
def HNEring=save_r_i_n_g;
}
| See also:
develop;
hnexpansion;
parametrisation.
|