# Singular

#### D.13.3.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 acutally 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 @sc{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"; printlevel=1; ring r=0,(x,y),ds; poly f=x2-y4+x5y7; puiseuxExpansion(f,3,"subst"); displayPuiseuxExpansion(puiseuxExpansion(f,3)); ```