Home Online Manual
Top
Back: extendpoly
Forward: ConsLevels
FastBack:
FastForward:
Up: grobcov_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.4.9 extendGC

Procedure from library grobcov.lib (see grobcov_lib).

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

Example:
 
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);
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]:
==>       _[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)
==> [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
==>    [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)
==> [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]:
==>       [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)
==> [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
==>    [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)
==> [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)