# Singular

#### D.2.4.8 extendpoly

Procedure from library `grobcov.lib` (see grobcov_lib).

Usage:
extendGC(poly f,ideal p,ideal q);
f is a polynomial in Q[a][x] in generic representation of an I-regular function F defined on the locally
closed segment S=V(p) \ V(q).
p,q are ideals in Q[a], representing the Crep of
segment S.

Return:
the extended representation of F in S.
It can consist of a single polynomial or a set of
polynomials when needed.

Note:
The basering R, must be of the form Q[a][x],
(a=parameters,x=variables), and should be
defined previously. The ideals must be defined on R.

Example:
 ```LIB "grobcov.lib"; if(defined(R)){kill R;} ring R=(0,a1,a2),(x),lp; short=0; poly f=(a1^2-4*a1+a2^2-a2)*x+(a1^4-16*a1+a2^3-4*a2); ideal p=a1*a2; ideal q=a2^2-a2,a1*a2,a1^2-4*a1; extendpoly(f,p,q);" "; ==> (a1+4*a2-4)*x+(a1^3+4*a2^2-16) ==> // EXAMPLE; if (defined(R)){kill R;} ring R=(0,a0,b0,c0,a1,b1,c1,a2,b2,c2),(x), dp; short=0; poly f=(b1*a2*c2-c1*a2*b2)*x+(-a1*c2^2+b1*b2*c2+c1*a2*c2-c1*b2^2); ideal p= (-a0*b1*c2+a0*c1*b2+b0*a1*c2-b0*c1*a2-c0*a1*b2+c0*b1*a2), (a1^2*c2^2-a1*b1*b2*c2-2*a1*c1*a2*c2+a1*c1*b2^2+b1^2*a2*c2-b1*c1*a2*b2+c1^2*a2^2), (a0*a1*c2^2-a0*b1*b2*c2-a0*c1*a2*c2+a0*c1*b2^2+b0*b1*a2*c2-b0*c1*a2*b2-c0*a1*a2*c2+c0*c1*a2^2), (a0^2*c2^2-a0*b0*b2*c2-2*a0*c0*a2*c2+a0*c0*b2^2+b0^2*a2*c2-b0*c0*a2*b2+c0^2*a2^2), (a0*a1*c1*c2-a0*b1^2*c2+a0*b1*c1*b2-a0*c1^2*a2+b0*a1*b1*c2-b0*a1*c1*b2-c0*a1^2*c2+c0*a1*c1*a2), (a0^2*c1*c2-a0*b0*b1*c2-a0*c0*a1*c2+a0*c0*b1*b2-a0*c0*c1*a2+b0^2*a1*c2-b0*c0*a1*b2+c0^2*a1*a2), (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*a0*a1*b1*c1*c2-a0*a1*c1^2*b2-a0*b1^3*c2+a0*b1^2*c1*b2-a0*b1*c1^2*a2 -b0*a1^2*c1*c2+b0*a1*b1^2*c2-b0*a1*b1*c1*b2+b0*a1*c1^2*a2-c0*a1^2*b1*c2+c0*a1^2*c1*b2); ideal q= (-a1*c2+c1*a2), (-a1*b2+b1*a2), (-a0*c2+c0*a2), (-a0*b2+b0*a2), (-a0*c1+c0*a1), (-a0*b1+b0*a1), (-a1*b1*c2+a1*c1*b2), (-a0*b1*c2+a0*c1*b2), (-a0*b0*c2+a0*c0*b2), (-a0*b0*c1+a0*c0*b1); extendpoly(f,p,q); ==> _[1]=(-a1*b2+b1*a2)*x+(-a1*c2+c1*a2) ==> _[2]=(-a0*b2+b0*a2)*x+(-a0*c2+c0*a2) ==> _[3]=(-a0*b1+b0*a1)*x+(-a0*c1+c0*a1) ```