Top
Back: reddevelop
Forward: extdevelop
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.4 essdevelop

Procedure from library hnoether.lib (see hnoether_lib).

Usage:
essdevelop(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, essdevelop 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] an "essential" branch of f, but the last entry being omitted).
For more details type help reddevelop;.

Note:
If the HNE needs a field extension, some of the branches will be conjugate. In this case essdevelop reduces the computation to one representative for each group of conjugate branches.
Note that the degree of each branch is in general less than the degree of the field extension in which all HNEs can be put.
Use reddevelop or HNdevelop to compute a complete HNE, i.e., a HNE for all branches.
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=2,(x,y),dp;
poly f=(x4+x2y+y2)*(x3+xy2+y3);
// --------- compute all branches: ---------
list hne=reddevelop(f);
==>  Change of basering (field extension) necessary!
==> finite HNE found
==> finite HNE found
==> finite HNE found
==>  Change of basering (field extension) necessary!
==> // new minimal polynomial: a6+a5+a3+a2+1
==> finite HNE found
==> finite HNE found
==> // result: 5 branch(es) successfully computed,
==> //         basering has changed to HNEring
displayHNE(hne[1]);   // HN-matrix of 1st branch
==> HNE[1]=y+(a^4+a^2)*z(0)
==> HNE[2]=x+z(0)
displayHNE(hne[4]);   // HN-matrix of 4th branch
==> HNE[1]=y+(a^4+a^2+a)*z(0)^2
==> HNE[2]=x+z(0)
setring r;
kill HNEring;
// --- compute only one of conjugate branches: ---
list hne=essdevelop(f);
==>  Change of basering (field extension) necessary!
==> finite HNE found
==>  Change of basering (field extension) necessary!
==> // new minimal polynomial: a6+a5+a3+a2+1
==> finite HNE found
==> // result: 2 branch(es) successfully computed;
==> // note that conjugate branches are omitted and that the number
==> // of branches represented by each remaining one may vary!
==> // basering has changed to HNEring
displayHNE(hne);
==> // Hamburger-Noether development of branch nr.1:
==> HNE[1]=y+(a^4+a^2)*z(0)
==> HNE[2]=x+z(0)
==> 
==> // Hamburger-Noether development of branch nr.2:
==> HNE[1]=y+(a^4+a^2+a)*z(0)^2
==> HNE[2]=x+z(0)
==> 
// no. 1 of essdevelop represents no. 1 - 3 of reddevelop and
// no. 2 of essdevelop represents no. 4 + 5 of reddevelop
kill HNEring,r;
// --- restore HNEring if previously defined ---
if (defined(rettering)) {
setring rettering;
def HNEring=rettering;
export HNEring;
}
See also: HNdevelop; develop; extdevelop; reddevelop.


Top Back: reddevelop Forward: extdevelop 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-0, February 2001, generated by texi2html.