
D.2.4.12 locus
Procedure from library grobcov.lib (see grobcov_lib).
 Usage:
 locus(ideal F[,options])
Special routine for determining the locus of points of
a geometrical construction.
 Input:
 The input ideal must be the set equations
defining the locus. Calling sequence:
locus(F[,options]);
The input ring must be a parametrical ideal
in Q[x1,..,xn][u1,..,um],
(x=tracer variables, u=remaining auxiliary variables).
The number of tracer variables is n=dim(space).
The n last uvariables are considered as mover variables.
(Inverts the concept of parameters and variables of
the ring).
 Options:
 An option is a pair of arguments: string, integer.
To modify the default options, pairs of arguments
option name, value of valid options must be added to
the call.The algorithm allows the following options as
pair of arguments:
"grobcov", list(the previous computed grobcov(F)).
It is to be used when we modify externally the grobcov,
for example to obtain the real grobcov.
"antiimage",0 if the antiimage is not to be
shown for "Normal" components.
"comments", c: by default it is 0, but it can be set
to 1.
 Return:
 The output is a list of the components:
((p1,(p11,..p1s_1),tax_1),..,(pk,(pk1,..pks_k),tax_k)
Elements 1 and 2 of a component represent the
Pcanonical form of the component.
The third element tax is:
for normal point components,
tax=(d,taxonomy,antiimage) being
d=dimension of the antiimage on the mover varaibles,
taxonomy="Normal" or "Special" and
antiimage=ideal of the antiimage over the mover
variables which are taken to be the n last uvariables.
for nonnormal point components,
tax =(d,taxonomy) being
d=dimension of the component and
taxonomy="Accumulation" or "Degenerate".
The components are given in canonical Prepresentation.
The normal locus has two kind of components:
Normal and Special.
Normal component:
 each point in the component has 0dimensional
antiimage.
 the antiimage in the mover coordinates is equal
to the dimension of the component
Special component:
 each point in the component has 0dimensional
antiimage.
 the antiimage in the mover coordinates is smaller
than the dimension of the component
The nonnormal locus has two kind of components:
Accumulation and Degenerate.
Accumulation component:
 each point in the component has antiimage of
dimension greater than 0.
 the component has dimension less than n1.
Degenerate components:
 each point in the component has antiimage
of dimension greater than 0.
 the component has dimension n1.
When a normal point component has degree greater than 9,
then the taxonomy is not determined, and (n,'normal', 0)
is returned as third element of the component. (n is the
dimension of the space).
Given a parametric ideal F representing the system F
determining the locus of points (x) which verify certain
properties, the call to locus(F) determines the different
classes of locus components, following the taxonomy
defined in the book:
A. Montes. "The Groebner Cover" (Discussing Parametric
Polynomial Systems) not yet published
A previous paper gives particular definitions
for loci in 2d.
M. Abanades, F. Botana, A. Montes, T. Recio,
"An Algebraic Taxonomy for Locus Computation
in Dynamic Geometry",
ComputerAided Design 56 (2014) 2233.
 Note:
 The input must be the locus system.
Example:
 LIB "grobcov.lib";
if(defined(R)){kill R;}
ring R=(0,x,y),(x1,y1),dp;
short=0;
// Concoid
ideal S96=x1 ^2+y1 ^24,(x2)*x1 x*y1 +2*x,(xx1 )^2+(yy1 )^21;
locus(S96);
==> [1]:
==> [1]:
==> _[1]=(x^4+2*x^3+x^2*y^23*x^22*x*y^28*x*y6*x+2*y^2+8*y+6)
==> [2]:
==> [1]:
==> _[1]=(y^2+2*y+2)
==> _[2]=(xy2)
==> [3]:
==> [1]:
==> 1
==> [2]:
==> Normal
==> [3]:
==> _[1]=x1^2+y1^24
==> [2]:
==> [1]:
==> _[1]=(x^2+y^24*y+3)
==> [2]:
==> [1]:
==> _[1]=1
==> [3]:
==> [1]:
==> 0
==> [2]:
==> Special
==> [3]:
==> _[1]=x1^2+y1^24
==> _[2]=4875*y1^6548*x1*y1^4+3836*y1^5+26216*x1*y1^3+7208*y1^4193\
44*x1*y1^212320*y1^3+79328*x1*y1132624*y1^220096*x1+73152*y167328
==> _[3]=4875*x1*y1^5+10514*x1*y1^4+7652*y1^5+20812*x1*y1^310144*y1\
^4+54392*x1*y1^2+13760*y1^386304*x1*y1+26432*y1^2+70528*x1214336*y1+130\
304

