# Singular

#### D.4.18.9 deltaLoc

Procedure from library `normal.lib` (see normal_lib).

Usage:
deltaLoc(f,J); f poly, J ideal

Assume:
f is reduced bivariate polynomial; basering has exactly two variables; J is irreducible prime component of the singular locus of f (e.g., one entry of the output of `minAssGTZ(I);`, I = <f,jacob(f)>).

Return:
list L:

`L[1]`; int:
the sum of (local) delta invariants of f at the (conjugated) singular points given by J.
`L[2]`; int:
the sum of (local) Tjurina numbers of f at the (conjugated) singular points given by J.
`L[3]`; int:
the sum of (local) number of branches of f at the (conjugated) singular points given by J.

Note:
procedure makes use of `execute`; increasing printlevel displays more comments (default: printlevel=0).

Example:
 ```LIB "normal.lib"; ring r=0,(x,y),dp; poly f=(x2+y^2-1)^3 +27x2y2; ideal I=f,jacob(f); I=std(I); list qr=minAssGTZ(I); size(qr); ==> 6 // each component of the singular locus either describes a cusp or a pair // of conjugated nodes: deltaLoc(f,qr[1]); ==> [1]: ==> 1 ==> [2]: ==> 2 ==> [3]: ==> 1 deltaLoc(f,qr[2]); ==> [1]: ==> 1 ==> [2]: ==> 2 ==> [3]: ==> 1 deltaLoc(f,qr[3]); ==> [1]: ==> 1 ==> [2]: ==> 2 ==> [3]: ==> 1 deltaLoc(f,qr[4]); ==> [1]: ==> 1 ==> [2]: ==> 2 ==> [3]: ==> 1 deltaLoc(f,qr[5]); ==> [1]: ==> 2 ==> [2]: ==> 2 ==> [3]: ==> 4 deltaLoc(f,qr[6]); ==> [1]: ==> 2 ==> [2]: ==> 2 ==> [3]: ==> 4 ```