|
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";
// EXAMPLE
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)
|
|