# Singular          #### D.6.11.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(r-1) = []*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 Hamburger-Noether 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`) means that `y=[]*z(0)^1+...`, the 2nd line (`HNE`) 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) ``` 