# Singular          #### D.6.11.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,p: if the HNE was finite then f(p,p)=0}; if not, the true parametrization will be given by two power series, and p,p are truncations of these series.
- if the optional parameter s is given, the result is a list l: l=param(L) (ideal) and l=intvec with two entries indicating the highest degree up to which the coefficients of the monomials in l 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); ==> 0,x, ==> 0,-1 print(hne_extended); ==> 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 ! ==> _=-t2 ==> _=-t3 param(hne_extended); ==> // ** Warning: result is exact up to order 10 in x and 11 in y ! ==> _=-t2+2t4-4t6+8t8-16t10 ==> _=-t3+2t5-4t7+8t9-16t11 param(hne_extended,0); ==> // ** Warning: result is exact up to order 10 in x and 11 in y ! ==> : ==> _=-t2+2t4-4t6+8t8-16t10 ==> _=-t3+2t5-4t7+8t9-16t11 ==> : ==> 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; setring HNring; displayHNE(hne); def HNring = L; 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. ==> : ==> _=-x2+2*x4 ==> _=-x3+2*x5 ==> : ==> _=(a)*x2 ==> _=x ==> : ==> _=(-a)*x2 ==> _=x ``` 