# Singular

#### D.2.4.11 locusdg

Procedure from library `grobcov.lib` (see grobcov_lib).

Usage:
locusdg(L) The call must be locusdg(locus(grobcov(S))).

Return:
The output is the list of the 'Relevant' components of the locus in Dynamic Geometry:(C1,..,C:m), where
C_i= ( p_i,(p_i1,..p_is_i), 'Relevant', level_i )
The 'Relevant' components are the 'Normal' and 'Accumulation' components of the locus. (See help for locus).

Note:
It can only be called after computing the locus.
Calling sequence: locusdg(locus(grobcov(S)));

Example:
 ```LIB "grobcov.lib"; ring R=(0,a,b),(x,y),dp; short=0; // Concoid ideal S96=x^2+y^2-4,(b-2)*x-a*y+2*a,(a-x)^2+(b-y)^2-1; // System S96= S96; ==> S96[1]=x^2+y^2-4 ==> S96[2]=(b-2)*x+(-a)*y+(2*a) ==> S96[3]=x^2+y^2+(-2*a)*x+(-2*b)*y+(a^2+b^2-1) locus(grobcov(S96)); ==> [1]: ==> [1]: ==> _[1]=(a^4+2*a^2*b^2-9*a^2+b^4-9*b^2+4*b+12) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Normal ==> [4]: ==> 1 ==> [2]: ==> [1]: ==> _[1]=(a^2+b^2-4*b+3) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> [1]: ==> Special ==> [2]: ==> y-2,x ==> [4]: ==> 1 locusdg(locus(grobcov(S96))); ==> [1]: ==> [1]: ==> _[1]=(a^4+2*a^2*b^2-9*a^2+b^4-9*b^2+4*b+12) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Relevant ==> [4]: ==> 1 kill R; "********************************************"; ==> ******************************************** ring R=(0,a,b),(x4,x3,x2,x1),dp; ideal S=(x1-3)^2+(x2-1)^2-9, (4-x2)*(x3-3)+(x1-3)*(x4-1), (3-x1)*(x3-x1)+(4-x2)*(x4-x2), (4-x4)*a+(x3-3)*b+3*x4-4*x3, (a-x1)^2+(b-x2)^2-(x1-x3)^2-(x2-x4)^2; short=0; locus(grobcov(S)); ==> locus detected that the mover must avoid point (x1-3,x2-4) in order to ob\ tain the correct locus ==> [1]: ==> [1]: ==> _[1]=(a^2-6*a+b^2+b+7) ==> [2]: ==> [1]: ==> _[1]=(b-2) ==> _[2]=(a^2-6*a+13) ==> [3]: ==> Normal ==> [4]: ==> 1 ==> [2]: ==> [1]: ==> _[1]=(a^4-12*a^3+2*a^2*b^2-13*a^2*b+236*a^2-12*a*b^2+78*a*b-1200*a+\ b^4-13*b^3+60*b^2-85*b+1495) ==> [2]: ==> [1]: ==> _[1]=(b-4) ==> _[2]=(a-3) ==> [3]: ==> Normal ==> [4]: ==> 1 ==> [3]: ==> [1]: ==> _[1]=(b-2) ==> _[2]=(a^2-6*a+13) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Accumulation ==> [4]: ==> 1 ==> [4]: ==> [1]: ==> _[1]=(b-4) ==> _[2]=(a-3) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Accumulation ==> [4]: ==> 1 locusdg(locus(grobcov(S))); ==> locus detected that the mover must avoid point (x1-3,x2-4) in order to ob\ tain the correct locus ==> [1]: ==> [1]: ==> _[1]=(a^2-6*a+b^2+b+7) ==> [2]: ==> [1]: ==> _[1]=(b-2) ==> _[2]=(a^2-6*a+13) ==> [3]: ==> Relevant ==> [4]: ==> 1 ==> [2]: ==> [1]: ==> _[1]=(a^4-12*a^3+2*a^2*b^2-13*a^2*b+236*a^2-12*a*b^2+78*a*b-1200*a+\ b^4-13*b^3+60*b^2-85*b+1495) ==> [2]: ==> [1]: ==> _[1]=(b-4) ==> _[2]=(a-3) ==> [3]: ==> Relevant ==> [4]: ==> 1 ==> [3]: ==> [1]: ==> _[1]=(b-2) ==> _[2]=(a^2-6*a+13) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Relevant ==> [4]: ==> 1 ==> [4]: ==> [1]: ==> _[1]=(b-4) ==> _[2]=(a-3) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Relevant ==> [4]: ==> 1 kill R; "********************************************"; ==> ******************************************** ring R=(0,x,y),(x1,x2),dp; short=0; ideal S=-(x - 5)*(x1 - 1) - (x2 - 2)*(y - 2), (x1 - 5)^2 + (x2 - 2)^2 - 4, -2*(x - 5)*(x2 - 2) + 2*(x1 - 5)*(y - 2); locus(grobcov(S)); ==> [1]: ==> [1]: ==> _[1]=(3*x^2-30*x-y^2+4*y+71) ==> [2]: ==> [1]: ==> _[1]=(y-2) ==> _[2]=(x-5) ==> [3]: ==> [1]: ==> Special ==> [2]: ==> x1-4,x2^2-4*x2+1 ==> [4]: ==> 1 ==> [2]: ==> [1]: ==> _[1]=(y-2) ==> _[2]=(x-5) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Accumulation ==> [4]: ==> 1 locusdg(locus(grobcov(S))); ==> [1]: ==> [1]: ==> _[1]=(y-2) ==> _[2]=(x-5) ==> [2]: ==> [1]: ==> _[1]=1 ==> [3]: ==> Relevant ==> [4]: ==> 1 ```