
D.6.9.5 displayHNE
Procedure from library hnoether.lib (see hnoether_lib).
 Usage:
 displayHNE(L[,n]); L list, n int
 Assume:
 L is the output of
develop(f) , or of exdevelop(f,n) ,
or of hnexpansion(f[,"ess"]) , or (one entry in) the list
hne in the ring created by hnexpansion(f[,"ess"]) .
 Return:
  if only one argument is given and if the input are the HN data
of an irreducible plane curve singularity, no return value, but
display an ideal HNE of the following form:
 y = []*x^1+[]*x^2 +...+x^<>*z(1)
x = []*z(1)^2+...+z(1)^<>*z(2)
z(1) = []*z(2)^2+...+z(2)^<>*z(3)
....... ..........................
z(r1) = []*z(r)^2+[]*z(r)^3+......
 where x ,y are the first 2 variables of the basering.
The values of [] are the coefficients of the HamburgerNoether
matrix, the values of <> are represented by x in the
HN matrix.
 if a second argument is given and if the input are the HN data
of an irreducible plane curve singularity, return a ring containing
an ideal HNE as described above.
 if L corresponds to the output of hnexpansion(f)
or to the list of HN data computed by hnexpansion(f[,"ess"]) ,
displayHNE(L[,n]) shows the HNE's of all branches of f in the
format described above. The optional parameter is then ignored.
 Note:
 The 1st line of the above ideal (i.e.,
HNE[1] ) means that
y=[]*z(0)^1+... , the 2nd line (HNE[2] ) means that
x=[]*z(1)^2+... , so you can see which indeterminate
corresponds to which line (it's also possible that x corresponds
to the 1st line and y to the 2nd).
Example:
 LIB "hnoether.lib";
ring r=0,(x,y),dp;
poly f=x3+2xy2+y2;
list hn=develop(f);
displayHNE(hn);
==> y = z(1)*x
==> x = z(1)^2 + ..... (terms of degree >=3)
 See also:
develop;
hnexpansion.
