Top
Back: develop
Forward: essdevelop
FastBack: gaussman_lib
FastForward: mondromy_lib
Up: hnoether_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.5.5.3 reddevelop

Procedure from library hnoether.lib (see hnoether_lib).

Usage:
reddevelop(f); f poly

Assume:
f is a bivariate polynomial (in the first 2 ring variables)

Create:
ring with name HNEring, variables x,y and ordering ls over a field extension of the current basering's ground field.
Since the Hamburger-Noether development of a reducible curve singularity usually does not exist in the originally given basering, reddevelop always defines HNEring and CHANGES to it. The field extension is chosen minimally.

Return:
list L of lists L[i] (corresponding to the output of develop(f[i]), f[i] a branch of f, but the last entry being omitted).

L[i][1]; matrix:
Each row contains the coefficients of the corresponding line of the Hamburger-Noether expansion (HNE) for f[i]. The end of the line is marked in the matrix by the first ring variable (usually x).
L[i][2]; intvec:
indicating the length of lines of the HNE
L[i][3]; int:
0 if the 1st ring variable was transversal (with respect to f[i]),
1 if the variables were changed at the beginning of the computation,
-1 if an error has occurred.
L[i][4]; poly:
the transformed polynomial of f[i] to make it possible to extend the Hamburger-Noether development a posteriori without having to do all the previous calculation once again (0 if not needed)

Note:
If printlevel>=0 comments are displayed (default is printlevel=0).

Example:
 
LIB "hnoether.lib";
// -------- prepare for example ---------
if (nameof(basering)=="HNEring")
{
def rettering=HNEring;
kill HNEring;
}
// ------ the example starts here -------
ring r = 32003,(x,y),dp;
poly f = x25+x24-4x23-1x22y+4x22+8x21y-2x21-12x20y-4x19y2+4x20+10x19y
+12x18y2-24x18y-20x17y2-4x16y3+x18+60x16y2+20x15y3-9x16y
-80x14y3-10x13y4+36x14y2+60x12y4+2x11y5-84x12y3-24x10y5
+126x10y4+4x8y6-126x8y5+84x6y6-36x4y7+9x2y8-1y9;
list hne=reddevelop(f);
==> finite HNE of one branch found
==>  Change of basering (field extension) necessary!
==> HNE of one branch found
==> HNE of one branch found
==> HNE of one branch found
==> // result: 4 branch(es) successfully computed,
==> //         basering has changed to HNEring
size(hne);            // number of branches
==> 4
print(hne[1][1]);     // HN-matrix of 1st branch
==> 0,1,x,0,
==> 0,x,0,0,
==> 0,2,1,x,
==> 0,1,x,0 
print(hne[4][1]);     // HN-matrix of 4th branch
==> 0,1,(-a+9380),(-4538a-14206)
// a ring change was necessary, a is a parameter
HNEring;
==> //   characteristic : 32003
==> //   1 parameter    : a 
==> //   minpoly        : (a2-9380a-6469)
==> //   number of vars : 2
==> //        block   1 : ordering ls
==> //                  : names    x y 
==> //        block   2 : ordering C
kill HNEring,r;
// --- restore HNEring if previously defined ---
if (defined(rettering)) {
setring rettering;
def HNEring=rettering;
export HNEring;
}
See also: develop; displayHNE; essdevelop; extdevelop; param.


Top Back: develop Forward: essdevelop FastBack: gaussman_lib FastForward: mondromy_lib Up: hnoether_lib Top: Singular Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 2-0-3, February 2002, generated by texi2html.