Home Online Manual
Top
Back: displayTropicalLifting
Forward: displayPuiseuxExpansion
FastBack:
FastForward:
Up: tropical_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.13.4.3 puiseuxExpansion

Procedure from library tropical.lib (see tropical_lib).

Usage:
puiseuxExpansion(f,n,#); f poly, n int, # list

Assume:
f is a non-constant polynomial in two variables which is not divisible by the first variable and which is squarefree as a power series over the complex numbers;
the base field is either the field of rational numbers or a finite extension thereof; monomial ordering is assumed to be local;
the optional parameter # can be the string 'subst'

Return:
list, where each entry of the list l describes the Newton-Puiseux
parametrisations of one branch of the plane curve singularity
at the origin defined by f; only the terms up to order n of each
parametetrisation are computed
l[i][1] = is a ring
l[i][2] = int
l[i][3] = string

WE NOW DESCRIBE THE LIST ENTRIES l[i] IN MORE DETAIL:
- the ring l[i][1] contains an ideal LIFT and the Newton-Puiseux parametrisation of the branch is given by x=t^N and y=LIFT[1], where N=l[i][2]
- if the base field had a parameter and a minimal polynomial, then the new base field will have a parameter and a new minimal polynomial, and LIFT[2] describes how the old parameter can be computed from the new one
- if a field extension with minimal polynomial of degree k was necessary, then to the one extension produced actually k extensions correspond by replacing the parameter a successively by all zeros of the minimal polynomial
- if the option subst was set l[i][3] contains the polynomial where y has been substituted by y(t^{1/N}) as a string

Remark:
- it is best to use the procedure displayPuiseuxExpansion to display the result
- the procedure requires the Singular procedure absPrimdecGTZ to be present in the package primdec.lib
- if f is not squarefree it will be replaced by its squarefree part

Example:
 
LIB "tropical.lib";
==> Welcome to polymake version
==> Copyright (c) 1997-2015
==> Ewgenij Gawrilow, Michael Joswig (TU Darmstadt)
==> http://www.polymake.org
printlevel=1;
ring r=0,(x,y),ds;
poly f=x2-y4+x5y7;
puiseuxExpansion(f,3,"subst");
==> // ** name conflict var(1) and var(3): `x(1)`, rename to `@x(1)`in >>    \
     ring EXTENSIONRING = ring(RL);<<
==> in tropical.lib::findzerosAndBasictransform:6449
==> // ** redefining ggteiler (              int ggteiler=gcd(wneu[1],wneu[2]\
   );) tropical.lib::tropicalparametrise:5895
==> // ** redefining ggteiler (              int ggteiler=gcd(wneu[1],wneu[2]\
   );) tropical.lib::tropicalparametrise:5895
==> The procedure has created a list of lists. The jth entry of this list
==> contains a ring, an integer and an intvec.
==> In this ring lives an ideal representing the wanted lifting,
==> if the integer is N then in the parametrisation t has to be replaced by t\
   ^1/N,
==> and if the ith component of the intvec is w[i] then the ith component in \
   LIFT
==> should be multiplied by t^-w[i]/N in order to get the parametrisation.
==> 
==> Suppose your list has the name L, then you can access the 1st ring via:
==> 
==> def LIFTRing=L[1][1]; setring LIFTRing; LIFT;
==> 
==> !!!! WARNING: The number of terms computed in the Puiseux expansion were
==> !!!!          not enough to find all branches of the curve singularity!
==> [1]:
==>    [1]:
==>       // coefficients: QQ
==> // number of vars : 1
==> //        block   1 : ordering ls
==> //                  : names    t
==> //        block   2 : ordering C
==>    [2]:
==>       2
==>    [3]:
==>       (11/8)*t^(30/2) + (5/4)*t^(43/2) + (139/256)*t^(56/2) + (35/256)*t^\
   (69/2) + (21/1024)*t^(82/2) + (7/4096)*t^(95/2) + (1/16384)*t^(108/2)
==> [2]:
==>    [1]:
==>       // coefficients: QQ
==> // number of vars : 1
==> //        block   1 : ordering ls
==> //                  : names    t
==> //        block   2 : ordering C
==>    [2]:
==>       2
==>    [3]:
==>       (11/8)*t^(30/2) + (-5/4)*t^(43/2) + (139/256)*t^(56/2) + (-35/256)*\
   t^(69/2) + (21/1024)*t^(82/2) + (-7/4096)*t^(95/2) + (1/16384)*t^(108/2)
==> [3]:
==>    [1]:
==>       // coefficients: QQ(a)
==> // number of vars : 1
==> //        block   1 : ordering ls
==> //                  : names    t
==> //        block   2 : ordering C
==>    [2]:
==>       2
==>    [3]:
==>       (-a4+1)*t^(4/2) + (a7-a3)*t^(17/2) + (14a6-3a2)/8*t^(30/2) + (21a5-\
   a)/16*t^(43/2) + (140a4-1)/256*t^(56/2) + (35a3)/256*t^(69/2) + (21a2)/10\
   24*t^(82/2) + (7a)/4096*t^(95/2) + (1/16384)*t^(108/2)
displayPuiseuxExpansion(puiseuxExpansion(f,3));
==> // ** name conflict var(1) and var(3): `x(1)`, rename to `@x(1)`in >>    \
     ring EXTENSIONRING = ring(RL);<<
==> in tropical.lib::findzerosAndBasictransform:6449
==> // ** redefining ggteiler (              int ggteiler=gcd(wneu[1],wneu[2]\
   );) tropical.lib::tropicalparametrise:5895
==> // ** redefining ggteiler (              int ggteiler=gcd(wneu[1],wneu[2]\
   );) tropical.lib::tropicalparametrise:5895
==> The procedure has created a list of lists. The jth entry of this list
==> contains a ring, an integer and an intvec.
==> In this ring lives an ideal representing the wanted lifting,
==> if the integer is N then in the parametrisation t has to be replaced by t\
   ^1/N,
==> and if the ith component of the intvec is w[i] then the ith component in \
   LIFT
==> should be multiplied by t^-w[i]/N in order to get the parametrisation.
==> 
==> Suppose your list has the name L, then you can access the 1st ring via:
==> 
==> def LIFTRing=L[1][1]; setring LIFTRing; LIFT;
==> 
==> !!!! WARNING: The number of terms computed in the Puiseux expansion were
==> !!!!          not enough to find all branches of the curve singularity!
==> =============================
==> 1. Expansion:
==> 
==> The Puiseux expansion lives in the ring
==> Q[[t^(1/2)]]
==> 
==> The expansion has the form:
==> y=(1)*t^(1/2) + (1/4)*t^(14/2)
==> 
==> =============================
==> 2. Expansion:
==> 
==> The Puiseux expansion lives in the ring
==> Q[[t^(1/2)]]
==> 
==> The expansion has the form:
==> y=(-1)*t^(1/2) + (1/4)*t^(14/2)
==> 
==> =============================
==> 3. Expansion:
==> 
==> The Puiseux expansion lives in the ring
==> Q[a]/0[[t^(1/2)]]
==> 
==> The expansion has the form:
==> y=(a)*t^(1/2) + (1/4)*t^(14/2)
==>