|
5.1.20 division
-
Syntax:
division ( ideal_expression, ideal_expression )
division ( module_expression, module_expression )
division ( ideal_expression, ideal_expression, int_expression )
division ( module_expression, module_expression, int_expression )
division ( ideal_expression, ideal_expression, int_expression, intvec_expression )
division ( module_expression, module_expression, int_expression, intvec_expression )
-
Type:
list
-
Purpose:
division computes a division with remainder.
For two ideals resp. modules M (first argument) and N (second argument), it returns a list T,R,U where T is a matrix, R is an ideal resp. a module, and U is a diagonal matrix of units such that matrix(M)*U=matrix(N)*T+matrix(R) is a standard representation for the normal form R of M with respect to a standard basis of N .
division uses different algorithms depending on whether N is represented by a standard basis.
For a polynomial basering, the matrix U is the identity matrix.
A matrix T as above is also computed by lift .
For additional arguments n (third argument) and w (fourth argument), division returns a list T,R as above such that matrix(M)=matrix(N)*T+matrix(R) is a standard representation for the normal form R of M with respect to N up to weighted degree n with respect to the weight vector w .
The weighted degree of T and R respect to w is at most n .
If the weight vector w is not given, division uses the standard weight vector w=1,...,1 .
-
Example:
| ring R=0,(x,y),ds;
poly f=x5+x2y2+y5;
division(f,jacob(f));
→ [1]:
→ _[1,1]=1/5x
→ _[2,1]=3/10y
→ [2]:
→ _[1]=-1/2y5
→ [3]:
→ _[1,1]=1
division(f^2,jacob(f));
→ [1]:
→ _[1,1]=1/20x6-9/80xy5-5/16x7y+5/8x2y6
→ _[2,1]=1/8x2y3+1/5x5y+1/20y6-3/4x3y4-5/4x6y2-5/16xy7
→ [2]:
→ _[1]=0
→ [3]:
→ _[1,1]=1/4-25/16xy
division(ideal(f^2),jacob(f),10);
→ // ** _ is no standardbasis
→ [1]:
→ _[1,1]=-75/8y9
→ _[2,1]=1/2x2y3+x5y-1/4y6-3/2x3y4+15/4xy7+375/16x2y8
→ [2]:
→ _[1]=x10+9/4y10
|
See
ideal;
lift;
module.
|