# Singular          #### D.15.29.1 realclassify

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

Usage:
realclassify(f); f poly

Return:
A list of elements NF of type NormalFormEquation with the following keys:
NF.singularityType = the type of the singularity as a string
NF.normalFormEquation = an element F of type Poly with the normal form equation (a representative of the stable equivalence class of f, as chosen by Arnold)
NF.modality = the modality of f
NF.parameters = a list where each entry is a list consisting out of the parameter term in the normalform equation and an interval
NF.corank = the corank of f (of type int)
NF.inertiaIndex = the interia index of f (of type int)
NF.milnorNumber = the milnor number of f (of type int)
NF.determinacy = an lower bound for the determinacy of f (of type int)

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.
In case of NF.modality=1, the parameter values are given as an element of a number field QQ[a]/(minpoly), the coefficient ring of F in terms of the unique root of minpoly of the ring F.in in the interval specified in NF.parameters in conjunction with the parameter term.

Example:
 ```LIB "realclassify.lib"; ring r = 0, (x,y,z), ds; poly f = (x2+3y-2z)^2+xyz-(x-y3+x2z3)^3; realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = D- ==> Normalform equation = x2y-y3 ==> Milnor number = 4 ==> Modality = 0 ==> Determinacy <= 3 ==> map phi = r, x+2y+y^2+x*y,x+y+y^2+x^2,z; poly f = x^2+y^2-z^2; // A f=phi(f); realclassify(f); ==> : ==> Corank = 0 ==> Inertia index = 1 ==> Normalform equation of type = A ==> Normalform equation = 0 ==> Milnor number = 1 ==> Modality = 0 ==> Determinacy <= 2 ==> poly f = x^3+y^2-z^2; // A f=phi(f); realclassify(f); ==> : ==> Corank = 1 ==> Inertia index = 1 ==> Normalform equation of type = A ==> Normalform equation = x3 ==> Milnor number = 2 ==> Modality = 0 ==> Determinacy <= 3 ==> poly f = x^2*y-y^3+z^2; // D- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = D- ==> Normalform equation = x2y-y3 ==> Milnor number = 4 ==> Modality = 0 ==> Determinacy <= 3 ==> poly f = x^3-y^4-z^2; // E- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = E- ==> Normalform equation = x3-y4 ==> Milnor number = 6 ==> Modality = 0 ==> Determinacy <= 4 ==> poly f = x^3+x*y^3+z^2; // E f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = E ==> Normalform equation = x3+xy3 ==> Milnor number = 7 ==> Modality = 0 ==> Determinacy <= 5 ==> poly f = x^3+y^5-z^2; // E f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = E ==> Normalform equation = x3+y5 ==> Milnor number = 8 ==> Modality = 0 ==> Determinacy <= 5 ==> poly f = x^3+3*x^2*y^2+x*y^4-z^2; //J+ f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = J- ==> Normalform equation = x3+(a)*x2y2-xy4 ==> Milnor number = 10 ==> Modality = 1 ==> Parameter term = (a)*x2y2 ==> Minimal polynomial = (5a4-81) ==> Interval = [0, 731] ==> Determinacy <= 7 ==> ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = J+ ==> Normalform equation = x3+(a)*x2y2+xy4 ==> Milnor number = 10 ==> Modality = 1 ==> Parameter term = (a)*x2y2 ==> Minimal polynomial = (5a4-81) ==> Interval = [-5/2, -3/2] ==> Determinacy <= 7 ==> ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = J+ ==> Normalform equation = x3+3x2y2+xy4 ==> Milnor number = 10 ==> Modality = 1 ==> Parameter term = 3x2y2 ==> Determinacy <= 7 ==> poly f = x^3+x^2*y^2+4*y^9+z^2; //J+ f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = J+ ==> Normalform equation = x3+x2y2+15y9 ==> Milnor number = 13 ==> Modality = 1 ==> Parameter term = 15y9 ==> Determinacy <= 10 ==> ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = J+ ==> Normalform equation = x3+x2y2-15y9 ==> Milnor number = 13 ==> Modality = 1 ==> Parameter term = -15y9 ==> Determinacy <= 10 ==> poly f = -x^4-x^2*y^2+3y^9-z^2; //X-- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = X-- ==> Normalform equation = -x4-x2y2+19683y9 ==> Milnor number = 14 ==> Modality = 1 ==> Parameter term = 19683y9 ==> Determinacy <= 9 ==> ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = X-- ==> Normalform equation = -x4-x2y2-19683y9 ==> Milnor number = 14 ==> Modality = 1 ==> Parameter term = -19683y9 ==> Determinacy <= 9 ==> poly f = -x^2*y^2-x^7+4*y^8+z^2; //Y[7,8]-- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = Y[8,7]-+ ==> Normalform equation = -x2y2+(a)*y7+x8 ==> Milnor number = 16 ==> Modality = 1 ==> Parameter term = (a)*y7 ==> Minimal polynomial = (a4-128) ==> Interval = [-130, 0] ==> Determinacy <= 8 ==> ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = Y[8,7]-+ ==> Normalform equation = -x2y2+y7+x8 ==> Milnor number = 16 ==> Modality = 1 ==> Parameter term = (a)*y7 ==> Minimal polynomial = (a4-128) ==> Interval = [0, 130] ==> Determinacy <= 8 ==> ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = Y[7,8]-- ==> Normalform equation = -x2y2-x7+4y8 ==> Milnor number = 16 ==> Modality = 1 ==> Parameter term = 4y8 ==> Determinacy <= 8 ==> ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = Y[7,8]-+ ==> Normalform equation = -x2y2+x7+4y8 ==> Milnor number = 16 ==> Modality = 1 ==> Parameter term = 4y8 ==> Determinacy <= 8 ==> poly f = (x^2+y^2)^2+5*x^9-z^2; // tilde Y f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = tilde(Y)+ ==> Normalform equation = x4+2x2y2+y4+5x9 ==> Milnor number = 19 ==> Modality = 1 ==> Parameter term = 5x9 ==> Determinacy <= 9 ==> ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = tilde(Y)+ ==> Normalform equation = x4+2x2y2+y4-5x9 ==> Milnor number = 19 ==> Modality = 1 ==> Parameter term = -5x9 ==> Determinacy <= 9 ==> poly f = x^3+y^7+3*x*y^5+z^2; // E f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = E ==> Normalform equation = x3+3xy5+y7 ==> Milnor number = 12 ==> Modality = 1 ==> Parameter term = 3xy5 ==> Determinacy <= 8 ==> poly f = x^3+x*y^5+4*y^8-z^2; // E f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = E ==> Normalform equation = x3+xy5+4y8 ==> Milnor number = 13 ==> Modality = 1 ==> Parameter term = 4y8 ==> Determinacy <= 9 ==> poly f = x^3+y^8+2*x*y^6+z^2; // E+ f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = E+ ==> Normalform equation = x3+2xy6+y8 ==> Milnor number = 14 ==> Modality = 1 ==> Parameter term = 2xy6 ==> Determinacy <= 9 ==> poly f = x^3*y+y^5+5*x*y^4-z^2; // Z f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = Z ==> Normalform equation = x3+5xy4+y5 ==> Milnor number = 11 ==> Modality = 1 ==> Parameter term = 5xy4 ==> Determinacy <= 5 ==> poly f = x^3*y+x*y^4+6*x^2*y^3+z^2; // Z f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = Z ==> Normalform equation = x3y+6x2y3+xy4 ==> Milnor number = 12 ==> Modality = 1 ==> Parameter term = 6x2y3 ==> Determinacy <= 6 ==> poly f = x^3*y-y^6+2*x*y^5-z^2; // Z- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = Z- ==> Normalform equation = x3y+2xy5-y6 ==> Milnor number = 13 ==> Modality = 1 ==> Parameter term = 2xy5 ==> Determinacy <= 6 ==> poly f = x^4+y^5+x^2*y^3+z^2; // W+ f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = W+ ==> Normalform equation = x4+x2y3+y5 ==> Milnor number = 12 ==> Modality = 1 ==> Parameter term = x2y3 ==> Determinacy <= 5 ==> poly f = -x^4+x*y^4+y^6-z^2; // W- f=phi(f); realclassify(f); ==> : ==> Corank = 2 ==> Inertia index = 1 ==> Normalform equation of type = W- ==> Normalform equation = -x4+xy4+y6 ==> Milnor number = 13 ==> Modality = 1 ==> Parameter term = y6 ==> Determinacy <= 6 ==> poly p = x^4-x^2*y^2+5*y^4+x*y^3+x^3*y+z^2; //X9++ f=phi(f); realclassify(p); ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = X++ ==> Normalform equation = x4+(a)*x2y2+y4 ==> Milnor number = 9 ==> Modality = 1 ==> Parameter term = (a)*x2y2 ==> Minimal polynomial = (18541a6-2454316a4+32984048a2-17909824) ==> Interval = [10829268444323/1000000000000, 433170737773/40000000000] ==> Determinacy <= 4 ==> ==> : ==> Corank = 2 ==> Inertia index = 0 ==> Normalform equation of type = X++ ==> Normalform equation = x4+(a)*x2y2+y4 ==> Milnor number = 9 ==> Modality = 1 ==> Parameter term = (a)*x2y2 ==> Minimal polynomial = (18541a6-2454316a4+32984048a2-17909824) ==> Interval = [-94106465721/125000000000, -752851725767/1000000000000] ==> Determinacy <= 4 ==> ``` 