#### D.6.15.4 param

Procedure from library `hnoether.lib` (see hnoether_lib).

Usage:
  param(L [,s]); L list, s any type (optional)

Assume:
  L is the output of `develop(f)`, or of `extdevelop(develop(f),n)`, or (one entry in) the list of HN data created by `hnexpansion(f[,"ess"])`.

Return:
  If L are the HN data of an irreducible plane curve singularity f: a parametrization for f in the following format:
  - if only the list L is given, the result is an ideal of two polynomials p[1],p[2]: if the HNE was finite then f(p[1],p[2])=0}; if not, the true parametrization will be given by two power series, and p[1],p[2] are truncations of these series.
  - if the optional parameter s is given, the result is a list l: l[1]=param(L) (ideal) and l[2]=intvec with two entries indicating the highest degree up to which the coefficients of the monomials in l[1] are exact (entry -1 means that the corresponding parametrization is exact).
  If L collects the HN data of a reducible plane curve singularity f, the return value is a list of parametrizations in the respective format.

Note:
  If the basering has only 2 variables, the first variable is chosen as indefinite. Otherwise, the 3rd variable is chosen.

Example:

    LIB "hnoether.lib";
    ring exring=0,(x,y,t),ds;
    poly f=x3+2xy2+y2;
    list Hne=develop(f);
    list hne_extended=extdevelop(Hne,10);
    //   compare the HNE matrices ...
    print(Hne[1]);
    ==> 0,x,
    ==> 0,-1
    print(hne_extended[1]);
    ==> 0,x, 0,0,0,0, 0,0,0,0,
    ==> 0,-1,0,2,0,-4,0,8,0,-16
    // ... and the resulting parametrizations:
    param(Hne);
    ==> // ** Warning: result is exact up to order 2 in x and 3 in y !
    ==> _[1]=-t2
    ==> _[2]=-t3
    param(hne_extended);
    ==> // ** Warning: result is exact up to order 10 in x and 11 in y !
    ==> _[1]=-t2+2t4-4t6+8t8-16t10
    ==> _[2]=-t3+2t5-4t7+8t9-16t11
    param(hne_extended,0);
    ==> // ** Warning: result is exact up to order 10 in x and 11 in y !
    ==> [1]:
    ==>    _[1]=-t2+2t4-4t6+8t8-16t10
    ==>    _[2]=-t3+2t5-4t7+8t9-16t11
    ==> [2]:
    ==>    10,11
    // An example with more than one branch:
    list L=hnexpansion(f*(x2+y4));
    ==>
    ==> // 'hnexpansion' created a list of one ring.
    ==> // To see the ring and the data stored in the ring, type (if you assigned
    ==> // the name L to the list):
    ==>      show(L);
    ==> // To display the computed HN expansion, type
    ==>      def HNring = L[1]; setring HNring;  displayHNE(hne);
    def HNring = L[1]; setring HNring;
    param(hne);
    ==> // Parametrization of branch number 1 computed.
    ==> // ** Warning: result is exact up to order 4 in x and 5 in y !
    ==> // Parametrization of branch number 2 computed.
    ==> // Parametrization of branch number 3 computed.
    ==> [1]:
    ==>    _[1]=-x2+2*x4
    ==>    _[2]=-x3+2*x5
    ==> [2]:
    ==>    _[1]=(a)*x2
    ==>    _[2]=x
    ==> [3]:
    ==>    _[1]=(-a)*x2
    ==>    _[2]=x

See also: develop; extdevelop.

User manual for Singular version 4.4.1, 2025, generated by texi2html.