|  |  D.6.15.6 invariants Procedure from libraryhnoether.lib(see  hnoether_lib).
 
Example:Usage:
invariants(INPUT); INPUT list or poly
Assume:
INPUTis the output ofdevelop(f), or ofextdevelop(develop(f),n), or one entry of the list of HN data
computed byhnexpansion(f[,"ess"]).
Return:
list INVof the following format:If|  |     INV[1]:  intvec    (characteristic exponents)
    INV[2]:  intvec    (generators of the semigroup)
    INV[3]:  intvec    (Puiseux pairs, 1st components)
    INV[4]:  intvec    (Puiseux pairs, 2nd components)
    INV[5]:  int       (degree of the conductor)
    INV[6]:  intvec    (sequence of multiplicities)
 | 
 INPUTcontains no valid HN expansion, the empty list is
returned.
Assume:
INPUTis a bivariate polynomial f, or the output ofhnexpansion(f), or the list of HN data computed byhnexpansion(f [,"ess"]).
Return:
list INV, such thatINV[i]coincides with the output ofinvariants(develop(f[i])), where f[i] is the i-th branch of
f, and the last entry ofINVcontains further invariants of
f in the format:|  |     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 hnexpansionand use it as input instead of
the polynomial itself.
 See also:
 develop;
 displayInvariants;
 hnexpansion;
 intersection;
 multsequence.|  | 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] div 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
 | 
 
 |