Home Online Manual
Top
Back: read
Forward: regularity
FastBack: Functions and system variables
FastForward: Control structures
Up: Functions
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

5.1.124 reduce

Syntax:
reduce ( poly_expression, ideal_expression )
reduce ( poly_expression, ideal_expression, int_expression )
reduce ( poly_expression, poly_expression, ideal_expression )
reduce ( vector_expression, ideal_expression )
reduce ( vector_expression, ideal_expression, int_expression )
reduce ( vector_expression, module_expression )
reduce ( vector_expression, module_expression, int_expression )
reduce ( vector_expression, poly_expression, module_expression )
reduce ( ideal_expression, ideal_expression )
reduce ( ideal_expression, ideal_expression, int_expression )
reduce ( ideal_expression, matrix_expression, ideal_expression )
reduce ( module_expression, ideal_expression )
reduce ( module_expression, ideal_expression, int_expression )
reduce ( module_expression, module_expression )
reduce ( module_expression, module_expression, int_expression )
reduce ( module_expression, matrix_expression, module_expression )
reduce ( poly/vector/ideal/module, ideal/module, int, intvec )
reduce ( ideal, matrix, ideal, int )
reduce ( poly, poly, ideal, int )
reduce ( poly, poly, ideal, int, intvec )
Type:
the type of the first argument
Purpose:
reduces a polynomial, vector, ideal or module to its normal form with respect to an ideal or module represented by a standard basis. Returns 0 if and only if the polynomial (resp. vector, ideal, module) is an element (resp. subideal, submodule) of the ideal (resp. module). The result may have no meaning if the second argument is not a standard basis.
The third (optional) argument of type int modifies the behavior:
  • 0 default
  • 1 consider only the leading term and do no tail reduction.
  • 2 reduce also with bad ecart (in the local case)
  • 4 reduce without division, return possibly a non-zero constant multiple of the remainder

If a second argument u of type poly or matrix is given, the first argument p is replaced by p/u. This works only for zero dimensional ideals (resp. modules) in the third argument and gives, even in a local ring, a reduced normal form which is the projection to the quotient by the ideal (resp. module). One may give a degree bound in the fourth argument with respect to a weight vector in the fifth argument in order have a finite computation. If some of the weights are zero, the procedure may not terminate!
Note:
The commands reduce and NF are synonymous.
Example:
 
  ring r1 = 0,(z,y,x),ds;
  poly s1=2x5y+7x2y4+3x2yz3;
  poly s2=1x2y2z2+3z8;
  poly s3=4xy5+2x2y2z3+11x10;
  ideal i=s1,s2,s3;
  ideal j=std(i);
  reduce(3z3yx2+7y4x2+yx5+z12y2x2,j);
==> -yx5+2401/81y14x2+2744/81y11x5+392/27y8x8+224/81y5x11+16/81y2x14
  reduce(3z3yx2+7y4x2+yx5+z12y2x2,j,1);
==> -yx5+z12y2x2
  // 4 arguments:
  ring rs=0,x,ds;
  // normalform of 1/(1+x) w.r.t. (x3) up to degree 5
  reduce(poly(1),1+x,ideal(x3),5);
==> // ** _ is no standard basis
==> 1-x+x2
See ideal; module; std; vector.