# Singular

#### D.15.6.3 curveDeligneNumber

Procedure from library `curveInv.lib` (see curveInv_lib).

Usage:
curveDeligneNumber(I); I ideal

Assume:
I is a radical ideal, dim(R/I) = 1

Return:
the Deligne number of R/I

Remarks:
The Deligne number e satisfies by definition: e = 3delta - m. So the algorithm splits the computation into two parts: one part computes the delta invariant, the other part the colength of derivations m.

Note:
the optional parameter can be used if the normalization has already been computed. If a list L contains the output of the procedure normal (with options prim, wd and usering if the ring has a mixed ordering), apply curveDeligneNumber(I,L)

Example:
 ```LIB "curveInv.lib"; ////////////////////////////// // Deligne number of curves // ////////////////////////////// // Example 1: ring R = 0,(x,y,z),ds; ideal I = x2-y4z,z3y2+xy2; I = std(radical(I)); curveDeligneNumber(I); ==> 30 // Example 2: ring S = 0,(x,y),ds; ideal I = (x+y)*(x2-y3); curveDeligneNumber(I); ==> 5 // Example 3: ideal J = (x2-y3)*(x2+y2)*(x-y); curveDeligneNumber(J); ==> 15 // Let us also compute the milnor number of this complete intersection: milnor(J); ==> 17 // We see that the Milnor number is bigger than the Deligne number. Hence, this // curve cannot be quasi homogeneous. This can also be verified by Saitos criterion: reduce(J[1],std(jacob(J[1]))); ==> -1/5y6+19/50y7 ```