Home Online Manual
Back: totalmultiplicities
Forward: semigroup
Up: alexpoly_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.6.1.3 alexanderpolynomial

Procedure from library alexpoly.lib (see alexpoly_lib).

alexanderpolynomial(INPUT); INPUT poly or list

INPUT is either a REDUCED bivariate polynomial defining a plane curve singularity, or the output of hnexpansion(f[,"ess"]), or the list hne in the ring created by hnexpansion(f[,"ess"]), or the output of develop(f) resp. of extdevelop(f,n), or a list containing the contact matrix and a list of integer vectors with the characteristic exponents of the branches of a plane curve singularity, or an integer vector containing the characteristic exponents of an irreducible plane curve singularity.

a ring with variables t, t(1), ..., t(r) (where r is the number of branches of the plane curve singularity f defined by INPUT) and ordering ls over the ground field of the basering.
Moreover, the ring contains the Alexander polynomial of f in variables t(1), ..., t(r) (alexpoly), the zeta function of the monodromy operator of f in the variable t (zeta_monodromy), and a list containing the factors of the Alexander polynomial with multiplicities (alexfactors).

a list, say ALEX, where ALEX[1] is the created ring

to use the ring type: def ALEXring=ALEX[i]; setring ALEXring;.
Alternatively you may use the procedure sethnering and type: sethnering(ALEX,"ALEXring");
To access the Alexander polynomial resp. the zeta function resp. the factors of the Alexander polynomial type: alexpoly resp. zeta_monodromy resp. alexfactors.
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.
If you are not sure whether the INPUT polynomial is reduced or not, use squarefree(INPUT) as input instead.

LIB "alexpoly.lib";
ring r=0,(x,y),ls;
poly f1=(y2-x3)^2-4x5y-x7;
poly f2=y2-x3;
poly f3=y3-x2;
list ALEX=alexanderpolynomial(f1*f2*f3);
def ALEXring=ALEX[1];
setring ALEXring;
==> [1]:
==>    [1]:
==>       -t(1)^6*t(2)^3*t(3)^2+1
==>    [2]:
==>       -1
==> [2]:
==>    [1]:
==>       -t(1)^12*t(2)^6*t(3)^4+1
==>    [2]:
==>       1
==> [3]:
==>    [1]:
==>       -t(1)^26*t(2)^13*t(3)^8+1
==>    [2]:
==>       1
==> [4]:
==>    [1]:
==>       -t(1)^4*t(2)^2*t(3)^3+1
==>    [2]:
==>       -1
==> [5]:
==>    [1]:
==>       -t(1)^8*t(2)^4*t(3)^6+1
==>    [2]:
==>       1
==> -t(1)^36*t(2)^18*t(3)^13-t(1)^32*t(2)^16*t(3)^10-t(1)^30*t(2)^15*t(3)^11-\
==> -t^67-t^58-t^56-t^47+t^20+t^11+t^9+1
See also: resolutiongraph; totalmultiplicities.