# Singular

#### D.15.23.1 realclassify

Procedure from library `realclassify.lib` (see realclassify_lib).

Usage:
realclassify(f[, format]); f poly, format string

Return:
A list containing (in this order)
- the type of the singularity as a string,
- the normal form,
- the corank, the Milnor number, the inertia index and a bound for the determinacy as integers.
The normal form involves parameters for singularities of modality greater than 0. The actual value of the parameters is not computed in most of the cases. If the value of the parameter is unknown, the normal form is given as a string with an "a" as the parameter. Otherwise, it is given as a polynomial.
An optional string `format` can be provided. Its default value is "short" in which case the return value is the list described above. If set to "nice", a string is added at the end of this list, containing the result in a more readable form.

Note:
The classification is done over the real numbers, so in contrast to classify.lib, the signs of coefficients of monomials where even exponents occur matter.
The ground field must be Q (the rational numbers). No field extensions of any kind nor floating point numbers are allowed.
The monomial order must be local.
The input polynomial must be contained in maxideal(2) and must be an isolated singularity of modality 0 or 1. The Milnor number is checked for being finite.

Example:
 ```LIB "realclassify.lib"; ring r = 0, (x,y,z), ds; poly f = (x2+3y-2z)^2+xyz-(x-y3+x2z3)^3; realclassify(f, "nice"); ==> [1]: ==> D[4]- ==> [2]: ==> z2+x2y-y3 ==> [3]: ==> 2 ==> [4]: ==> 4 ==> [5]: ==> 0 ==> [6]: ==> 3 ==> [7]: ==> ==> Type of singularity: D[4]- ==> Normal form: z2+x2y-y3 ==> Corank: 2 ==> Milnor number: 4 ==> Inertia index: 0 ==> Determinacy: <= 3 ==> ```