|  |  7.5.2.0. linReduce Procedure from librarybfun.lib(see  bfun_lib).
 
Example:Usage:
linReduce(f, I [,s,t,u]); f a poly, I an ideal, s,t,u optional ints
Return:
poly or list, linear reductum (over field) of f by elements from I
Purpose:
reduce a polynomial only by linear reductions (no monomial multiplications)
Note:
If s<>0, a list consisting of the reduced polynomial and the coefficient
vector of the used reductions is returned, otherwise (and by default)
 only reduced polynomial is returned.
 If t<>0 (and by default) all monomials are reduced (if possible),
 otherwise, only leading monomials are reduced.
 If u<>0 (and by default), the ideal is linearly pre-reduced, i.e.
 instead of the given ideal, the output of
 linReduceIdealis used.If u is set to 0 and the given ideal does not equal the output of
 
 linReduceIdeal, the result might not be as expected.
Display:
If printlevel=1, progress debug messages will be printed,if printlevel>=2, all the debug messages will be printed.
 
 |  | LIB "bfun.lib";
ring r = 0,(x,y),dp;
ideal I = 1,y,xy;
poly f = 5xy+7y+3;
poly g = 7x+5y+3;
linReduce(g,I);     // reduces tails
==> 7x
linReduce(g,I,0,0); // no reductions of tails
==> 7x+5y+3
linReduce(f,I,1);   // reduces tails and shows reductions used
==> [1]:
==>    0
==> [2]:
==>    -5*gen(3)-7*gen(2)-3*gen(1)
f = x3+y2+x2+y+x;
I = x3-y3, y3-x2,x3-y2,x2-y,y2-x;
list l = linReduce(f,I,1);
l;
==> [1]:
==>    5y
==> [2]:
==>    gen(5)-4*gen(4)+2*gen(3)-3*gen(2)-3*gen(1)
module M = I;
f - (l[1]-(M*l[2])[1,1]);
==> 0
 | 
 
 |