# Singular

#### D.15.1.3 arnoldNormalForm

Procedure from library `arnoldclassify.lib` (see arnoldclassify_lib).

Usage:
arnoldNormalForm( S [, l]), S string or singclass, l list

Assume:
If S is of type string, then S is the name of a singularity series as listed by arnoldListAllSeries() and l may contain suitable integer parameters k,r,s. Otherwise S of type singclass is a singularity class from Arnol'd's list.
Optional suitable polynomial parameters a,b,c,d can be appended to l. If a,b,c,d are not given, valid values are chosen automatically.

Return:
string NF is the normal form of the series S if no parameters given, or poly NF is the normal form of the class S with paramaters k,r,s.

Example:
 ```LIB "arnoldclassify.lib"; ring R = 0, (x,y), ds; poly a,b,c,d; a= 1+y2; c= 3+y; int k = 5; int r = 4; int s = 3; arnoldNormalForm ("W[12k+1]", k,r,s,a,b,c,d); ==> x4+x2y11+x2y13+xy16+3y22+y23 def f = _; def sf = arnoldClassify( f ); arnoldNormalForm(sf, a,b,c,d); ==> x4+x2y11+x2y13+xy16+3y22+y23 arnoldNormalForm("W[12k+1]"); ==> x4+x*y^(3*k+1)+y^(4*k+2) arnoldNormalForm(sf); ==> x4+xy16+y22 ```