Top
Back: D.5.5.6 displayHNE
Forward: D.5.5.8 displayInvariants
FastBack: D. SINGULAR libraries
FastForward: E. Release Notes
Up: D.5.5 hnoether_lib
Top: Singular 2-0-4 Manual
Contents: Table of Contents
Index: F. Index
About: About This Document

D.5.5.7 invariants

Procedure from library hnoether.lib (see hnoether_lib).

Usage:

invariants(INPUT); INPUT list or poly

Assume:

INPUT is the output of develop(f), or of extdevelop(develop(f),n), or one entry in the list hne of the HNEring created by hnexpansion.

Return:

list, if INPUT contains a valid HNE:

 
    invariants(INPUT)[1]:  intvec    (characteristic exponents)
    invariants(INPUT)[2]:  intvec    (generators of the semigroup)
    invariants(INPUT)[3]:  intvec    (Puiseux pairs, 1st components)
    invariants(INPUT)[4]:  intvec    (Puiseux pairs, 2nd components)
    invariants(INPUT)[5]:  int       (degree of the conductor)
    invariants(INPUT)[6]:  intvec    (sequence of multiplicities)

an empty list, if INPUT contains no valid HNE.

Assume:

INPUT is bivariate polynomial f or the output of hnexpansion(f[,"ess"]), or the list hne in the HNEring created by hnexpansion.

Return:

list INV, such that INV[i] is the output of invariants(develop(f[i])) as above, where f[i] is the ith branch of the curve f, and the last entry contains further invariants of f in the format:

 
    INV[i][1]    : intvec    (characteristic exponents)
    INV[i][2]    : intvec    (generators of the semigroup)
    INV[i][3]    : intvec    (Puiseux pairs, 1st components)
    INV[i][4]    : intvec    (Puiseux pairs, 2nd components)
    INV[i][5]    : int       (degree of the conductor)
    INV[i][6]    : intvec    (sequence of multiplicities)
    INV[last][1] : intmat    (contact matrix of the branches)
    INV[last][2] : intmat    (intersection multiplicities of the branches)
    INV[last][3] : int       (delta invariant of f)
Note:

In case the Hamburger-Noether expansion of the curve f is needed for other purposes as well it is better to calculate this first with the aid of hnexpansion and use it as input instead of the polynomial itself.

Example:

 
LIB "hnoether.lib";
ring exring=0,(x,y),dp;
list hne=develop(y4+2x3y2+x6+x5y);
list INV=invariants(hne);
INV[1];                   // the characteristic exponents
→ 4,6,7
INV[2];                   // the generators of the semigroup of values
→ 4,6,13
INV[3],INV[4];            // the Puiseux pairs in packed form
→ 3,7 2,2
INV[5] / 2;               // the delta-invariant
→ 8
INV[6];                   // the sequence of multiplicities
→ 4,2,2,1,1
// To display the invariants more 'nicely':
displayInvariants(hne);
→  characteristic exponents  : 4,6,7
→  generators of semigroup   : 4,6,13
→  Puiseux pairs             : (3,2)(7,2)
→  degree of the conductor   : 16
→  delta invariant           : 8
→  sequence of multiplicities: 4,2,2,1,1
/////////////////////////////
INV=invariants((x2-y3)*(x3-y5));
INV[1][1];                // the characteristic exponents of the first branch
→ 2,3
INV[2][6];                // the sequence of multiplicities of the second branch
→ 3,2,1,1
print(INV[size(INV)][1]);         // the contact matrix of the branches
→      0     3
→      3     0
print(INV[size(INV)][2]);         // the intersection numbers of the branches
→      0     9
→      9     0
INV[size(INV)][3];                // the delta invariant of the curve
→ 14

See also: develop; displayInvariants; intersection; multsequence.


Top Back: D.5.5.6 displayHNE Forward: D.5.5.8 displayInvariants FastBack: D. SINGULAR libraries FastForward: E. Release Notes Up: D.5.5 hnoether_lib Top: Singular 2-0-4 Manual Contents: Table of Contents Index: F. Index About: About This Document
            User manual for Singular version 2-0-4, October 2002, generated by texi2html.