
D.6.1.3 alexanderpolynomial
Procedure from library alexpoly.lib (see alexpoly_lib).
 Usage:
 alexanderpolynomial(INPUT); INPUT poly or list
 Assume:
 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.
 Create:
 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 ).
 Return:
 a list, say
ALEX , where ALEX[1] is the created ring
 Note:
 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 HamburgerNoether 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.
Example:
 LIB "alexpoly.lib";
ring r=0,(x,y),ls;
poly f1=(y2x3)^24x5yx7;
poly f2=y2x3;
poly f3=y3x2;
list ALEX=alexanderpolynomial(f1*f2*f3);
def ALEXring=ALEX[1];
setring ALEXring;
alexfactors;
==> [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
alexpoly;
==> t(1)^36*t(2)^18*t(3)^13t(1)^32*t(2)^16*t(3)^10t(1)^30*t(2)^15*t(3)^11\
t(1)^26*t(2)^13*t(3)^8+t(1)^10*t(2)^5*t(3)^5+t(1)^6*t(2)^3*t(3)^2+t(1)^4*\
t(2)^2*t(3)^3+1
zeta_monodromy;
==> t^67t^58t^56t^47+t^20+t^11+t^9+1
 See also:
resolutiongraph;
totalmultiplicities.
