|
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.
|