Home Online Manual
Top
Back: locusdg
Forward: envelopdg
FastBack: general_lib
FastForward: inout_lib
Up: grobcov_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.4.12 envelop

Procedure from library grobcov.lib (see grobcov_lib).

Usage:
envelop(F,C);
The first argument F must be the family of curves of which on want to compute the envelop.
The second argument C must be the ideal of conditions
over the variables, and should contain as polynomials
as the number of variables -1.

Return:
The components of the envelop with its taxonomy:
The taxonomy distinguishes 'Normal',
'Special', 'Accumulation', 'Degenerate' components.
In the case of 'Special' components, it also
outputs the antiimage of the component
and an integer (0-1). If the integer is 0
the component is not a curve of the family and is
not considered as 'Relevant' by the envelopdg routine applied to it, but is considered as 'Relevant' if the integer is 1.

Note:
grobcov is called internally.
The basering R, must be of the form Q[a][x] (a=parameters, x=variables).

Example:
 
LIB "grobcov.lib";
// Steiner Deltoid
// 1. Consider the circle x1^2+y1^2-1=0, and a mover point M(x1,y1) on it.
// 2. Consider the triangle A(0,1), B(-1,0), C(1,0).
// 3. Consider lines passing through M perpendicular to two sides of ABC triangle.
// 4. Obtain the envelop of the lines above.
ring R=(0,x,y),(x1,y1,x2,y2),lp;
ideal C=(x1)^2+(y1)^2-1,
x2+y2-1,
x2-y2-x1+y1;
matrix M[3][3]=x,y,1,x2,y2,1,x1,0,1;
poly F=det(M);
short=0;
// Curves Family F=
F;
==> -x1*y2+(y)*x1+(-y)*x2+(x)*y2
// Conditions C=
C;
==> C[1]=x1^2+y1^2-1
==> C[2]=x2+y2-1
==> C[3]=-x1+y1+x2-y2
def Env=envelop(F,C);
Env;
==> [1]:
==>    [1]:
==>       _[1]=(x^4+2*x^2*y^2+10*x^2*y-x^2+y^4-6*y^3+12*y^2-8*y)
==>    [2]:
==>       [1]:
==>          _[1]=1
==>    [3]:
==>       Normal
==>    [4]:
==>       1
==> [2]:
==>    [1]:
==>       _[1]=(x+y-1)
==>    [2]:
==>       [1]:
==>          _[1]=1
==>    [3]:
==>       [1]:
==>          Special
==>       [2]:
==>          y2,x2-1,y1,x1-1
==>       [3]:
==>          0
==>    [4]:
==>       1