|  |  D.2.4.9 extendGC Procedure from librarygrobcov.lib(see  grobcov_lib).
 
Example:Usage:
extendGC(list GC);
list GC must the grobcov of a parametric ideal computed
with option "rep",2. It determines the full
 representation.
 The default option of grobcov provides the bases in
 generic representation (the I-regular functions forming
the bases are then given by a single polynomial.
 They can specialize to zero for some points of the
 segments, but in general, it is sufficient for many
 purposes. Nevertheless the I-regular functions allow a
full representation given by a set of polynomials
 specializing to the value of the function (after
 normalization) or to zero, but at least one of the
 polynomials specializes to non-zero. The full
 representation can be obtained by computing
 the grobcov with option "ext",1. (The default
 option there is "ext",0).
 With option "ext",1 the computation can be
 much more time consuming, but the result can
 be simpler.
 Alternatively, one can compute the full representation
of the bases after computing grobcov with the default
 option for "ext" and the option "rep",2,
 that outputs both the Prep and the Crep of the
 segments, and then call "extendGC" to its output.
 
Return:
When calling extendGC(grobcov(S,"rep",2)) the
result is of the form
 [[[lpp_1,basis_1,segment_1,lpph_1], ... ,
 [lpp_s,basis_s,segment_s,lpph_s]] ],
 where each function of the basis can be given
 by an ideal of representants.
 
Note:
The basering R, must be of the form Q[a][x],
(a=parameters, x=variables),
 and should be defined previously. The ideal
 must be defined on R.
 
       discussion of parametric ideal
 |  | LIB "grobcov.lib";
if(defined(R)){kill R;}
ring R=(0,a0,b0,c0,a1,b1,c1),(x), dp;
short=0;
ideal S=a0*x^2+b0*x+c0,
a1*x^2+b1*x+c1;
def GCS=grobcov(S,"rep",2);
// grobcov(S) with both P and C representations
GCS;
==> [1]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=0
==>          [2]:
==>             [1]:
==>                _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*\
   a1*c1-b0*c0*a1*b1+c0^2*a1^2)
==>    [4]:
==>       [1]:
==>          _[1]=0
==>       [2]:
==>          _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*c1-\
   b0*c0*a1*b1+c0^2*a1^2)
==> [2]:
==>    [1]:
==>       _[1]=x
==>    [2]:
==>       _[1]=(b0*a1*c1-c0*a1*b1)*x+(-a0*c1^2+b0*b1*c1+c0*a1*c1-c0*b1^2)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*\
   c1-b0*c0*a1*b1+c0^2*a1^2)
==>          [2]:
==>             [1]:
==>                _[1]=(b0*c1-c0*b1)
==>                _[2]=(a0*c1-c0*a1)
==>                _[3]=(a0*b1-b0*a1)
==>             [2]:
==>                _[1]=(a1)
==>                _[2]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*c1-\
   b0*c0*a1*b1+c0^2*a1^2)
==>       [2]:
==>          _[1]=(-a0*c1+c0*a1)
==>          _[2]=(-a0*b1+b0*a1)
==>          _[3]=(-a0*b0*c1+a0*c0*b1)
==> [3]:
==>    [1]:
==>       _[1]=x^2
==>    [2]:
==>       _[1]=(a1)*x^2+(b1)*x+(c1)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(b0*c1-c0*b1)
==>             _[2]=(a0*c1-c0*a1)
==>             _[3]=(a0*b1-b0*a1)
==>          [2]:
==>             [1]:
==>                _[1]=(a1)
==>                _[2]=(b0*c1-c0*b1)
==>                _[3]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(-b0*c1+c0*b1)
==>          _[2]=(-a0*c1+c0*a1)
==>          _[3]=(-a0*b1+b0*a1)
==>       [2]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
==> [4]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(b1)
==>             _[2]=(a1)
==>             _[3]=(b0)
==>             _[4]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(c1)
==>                _[2]=(b1)
==>                _[3]=(a1)
==>                _[4]=(c0)
==>                _[5]=(b0)
==>                _[6]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(b1)
==>          _[2]=(a1)
==>          _[3]=(b0)
==>          _[4]=(a0)
==>       [2]:
==>          _[1]=(c1)
==>          _[2]=(b1)
==>          _[3]=(a1)
==>          _[4]=(c0)
==>          _[5]=(b0)
==>          _[6]=(a0)
==> [5]:
==>    [1]:
==>       _[1]=0
==>    [2]:
==>       _[1]=0
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(c1)
==>             _[2]=(b1)
==>             _[3]=(a1)
==>             _[4]=(c0)
==>             _[5]=(b0)
==>             _[6]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=1
==>    [4]:
==>       [1]:
==>          _[1]=(c1)
==>          _[2]=(b1)
==>          _[3]=(a1)
==>          _[4]=(c0)
==>          _[5]=(b0)
==>          _[6]=(a0)
==>       [2]:
==>          _[1]=1
==> [6]:
==>    [1]:
==>       _[1]=x
==>    [2]:
==>       _[1]=(b1)*x+(c1)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a1)
==>             _[2]=(b0*c1-c0*b1)
==>             _[3]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(b1)
==>                _[2]=(a1)
==>                _[3]=(b0)
==>                _[4]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
==>       [2]:
==>          _[1]=(b1)
==>          _[2]=(a1)
==>          _[3]=(b0)
==>          _[4]=(a0)
==> [7]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a1)
==>             _[2]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(a1)
==>                _[2]=(b0*c1-c0*b1)
==>                _[3]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>       [2]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
def FGC=extendGC(GCS,"rep",1);
// Full representation
FGC;
==> [1]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=0
==>          [2]:
==>             [1]:
==>                _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*\
   a1*c1-b0*c0*a1*b1+c0^2*a1^2)
==>    [4]:
==>       [1]:
==>          _[1]=0
==>       [2]:
==>          _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*c1-\
   b0*c0*a1*b1+c0^2*a1^2)
==> [2]:
==>    [1]:
==>       _[1]=x
==>    [2]:
==>       _[1]=(a0*b1-b0*a1)*x+(a0*c1-c0*a1)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*\
   c1-b0*c0*a1*b1+c0^2*a1^2)
==>          [2]:
==>             [1]:
==>                _[1]=(b0*c1-c0*b1)
==>                _[2]=(a0*c1-c0*a1)
==>                _[3]=(a0*b1-b0*a1)
==>             [2]:
==>                _[1]=(a1)
==>                _[2]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a0^2*c1^2-a0*b0*b1*c1-2*a0*c0*a1*c1+a0*c0*b1^2+b0^2*a1*c1-\
   b0*c0*a1*b1+c0^2*a1^2)
==>       [2]:
==>          _[1]=(-a0*c1+c0*a1)
==>          _[2]=(-a0*b1+b0*a1)
==>          _[3]=(-a0*b0*c1+a0*c0*b1)
==> [3]:
==>    [1]:
==>       _[1]=x^2
==>    [2]:
==>       [1]:
==>          _[1]=(a1)*x^2+(b1)*x+(c1)
==>          _[2]=(a0*a1)*x^2+(b0*a1)*x+(c0*a1)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(b0*c1-c0*b1)
==>             _[2]=(a0*c1-c0*a1)
==>             _[3]=(a0*b1-b0*a1)
==>          [2]:
==>             [1]:
==>                _[1]=(a1)
==>                _[2]=(b0*c1-c0*b1)
==>                _[3]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(-b0*c1+c0*b1)
==>          _[2]=(-a0*c1+c0*a1)
==>          _[3]=(-a0*b1+b0*a1)
==>       [2]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
==> [4]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(b1)
==>             _[2]=(a1)
==>             _[3]=(b0)
==>             _[4]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(c1)
==>                _[2]=(b1)
==>                _[3]=(a1)
==>                _[4]=(c0)
==>                _[5]=(b0)
==>                _[6]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(b1)
==>          _[2]=(a1)
==>          _[3]=(b0)
==>          _[4]=(a0)
==>       [2]:
==>          _[1]=(c1)
==>          _[2]=(b1)
==>          _[3]=(a1)
==>          _[4]=(c0)
==>          _[5]=(b0)
==>          _[6]=(a0)
==> [5]:
==>    [1]:
==>       _[1]=0
==>    [2]:
==>       _[1]=0
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(c1)
==>             _[2]=(b1)
==>             _[3]=(a1)
==>             _[4]=(c0)
==>             _[5]=(b0)
==>             _[6]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=1
==>    [4]:
==>       [1]:
==>          _[1]=(c1)
==>          _[2]=(b1)
==>          _[3]=(a1)
==>          _[4]=(c0)
==>          _[5]=(b0)
==>          _[6]=(a0)
==>       [2]:
==>          _[1]=1
==> [6]:
==>    [1]:
==>       _[1]=x
==>    [2]:
==>       [1]:
==>          _[1]=(b1)*x+(c1)
==>          _[2]=(b0)*x+(c0)
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a1)
==>             _[2]=(b0*c1-c0*b1)
==>             _[3]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(b1)
==>                _[2]=(a1)
==>                _[3]=(b0)
==>                _[4]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
==>       [2]:
==>          _[1]=(b1)
==>          _[2]=(a1)
==>          _[3]=(b0)
==>          _[4]=(a0)
==> [7]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       [1]:
==>          [1]:
==>             _[1]=(a1)
==>             _[2]=(a0)
==>          [2]:
==>             [1]:
==>                _[1]=(a1)
==>                _[2]=(b0*c1-c0*b1)
==>                _[3]=(a0)
==>    [4]:
==>       [1]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>       [2]:
==>          _[1]=(a1)
==>          _[2]=(a0)
==>          _[3]=(-b0*c1+c0*b1)
 | 
 
 |