Top
Back: hnoether_lib
Forward: develop
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.1 HNdevelop

Procedure from library hnoether.lib (see hnoether_lib).

Usage:
HNdevelop(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 usually does not exist in the originally given basering, HNdevelop 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:
HNdevelop decides which procedure (develop or reddevelop) applies best to the given problem and calls it.
If f is known to be irreducible as a power series, develop(f) should be chosen instead to avoid the change of basering.
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=0,(x,y),dp;
list hne=HNdevelop(x4-y6);
==> finite HNE found
==> finite HNE found
==> // result: 2 branch(es) successfully computed,
==> //         basering has changed to HNEring
nameof(basering);
==> HNEring
size(hne);           // number of branches
==> 2
print(hne[1][1]);    // HN-matrix of 1st branch
==> 0,x,0,
==> 0,1,x 
param(hne[1]);       // parametrization of 1st branch
==> _[1]=x3
==> _[2]=x2
param(hne[2]);       // parametrization of 2nd branch
==> _[1]=-x3
==> _[2]=-x2
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; reddevelop.


Top Back: hnoether_lib Forward: develop 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-2, August 2001, generated by texi2html.