| #### D.13.6.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";
    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:6334
    ==> 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:6334
    ==> 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)
    ==>

User manual for Singular version 4.4.0, 2024, generated by texi2html.