]>
Book Contents Previous Section 9.15 DecimalExpansion Next Section 9.17 DoubleFloat Book Index

## 9.16 DistributedMultivariatePolynomial

DistributedMultivariatePolynomial which is abbreviated as DMP and HomogeneousDistributedMultivariatePolynomial, which is abbreviated as HDMP, are very similar to MultivariatePolynomial except that they are represented and displayed in a non-recursive manner.

(d1,d2,d3) : DMP([z,y,x],FRAC INT)
Type: Void

The constructor DMP orders its monomials lexicographically while HDMP orders them by total order refined by reverse lexicographic order.

d1 := -4*z + 4*y**2*x + 16*x**2 + 1

-4 z+4 y 2 x+16 x 2+1

Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
d2 := 2*z*y**2 + 4*x + 1

2 z y 2+4 x+1

Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
d3 := 2*z*x**2 - 2*y**2 - x

2 z x 2-2 y 2-x

Type: DistributedMultivariatePolynomial([z,y,x],Fraction Integer)

These constructors are mostly used in Gröbner basis calculations.

groebner [d1,d2,d3]

[z-1568 2745 x 6-1264 305 x 5+6 305 x 4+182 549 x 3-2047 610 x 2-103 2745 x-2857 10980,y 2+112 2745 x 6-84 305 x 5-1264 305 x 4-13 549 x 3+84 305 x 2+1772 2745 x+2 2745,x 7+29 4 x 6-17 16 x 4-11 8 x 3+1 32 x 2+15 16 x+1 4]

Type: List DistributedMultivariatePolynomial([z,y,x],Fraction Integer)
(n1,n2,n3) : HDMP([z,y,x],FRAC INT)
Type: Void
n1 := d1

4 y 2 x+16 x 2-4 z+1

Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
n2 := d2

2 z y 2+4 x+1

Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)
n3 := d3

2 z x 2-2 y 2-x

Type: HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)

Note that we get a different Gröbner basis when we use the HDMP polynomials, as expected.

groebner [n1,n2,n3]

[y 4+2 x 3-3 2 x 2+1 2 z-1 8,x 4+29 4 x 3-1 8 y 2-7 4 z x-9 16 x-1 4,z y 2+2 x+1 2,y 2 x+4 x 2-z+1 4,z x 2-y 2-1 2 x,z 2-4 y 2+2 x 2-1 4 z-3 2 x]

Type: List HomogeneousDistributedMultivariatePolynomial([z,y,x],Fraction Integer)

GeneralDistributedMultivariatePolynomial is somewhat more flexible in the sense that as well as accepting a list of variables to specify the variable ordering, it also takes a predicate on exponent vectors to specify the term ordering. With this polynomial type the user can experiment with the effect of using completely arbitrary term orderings. This flexibility is mostly important for algorithms such as Gr\"{o}bner basis calculations which can be very sensitive to term ordering.

For more information on related topics, see ugIntroVariablesPage in Section ugIntroVariablesNumber , ugTypesConvertPage in Section ugTypesConvertNumber , PolynomialXmpPage , UnivariatePolynomialXmpPage , and MultivariatePolynomialXmpPage .

Book Contents Previous Section 9.15 DecimalExpansion Next Section 9.17 DoubleFloat Book Index