Previous Page Next Page Contents

Dom::DistributedPolynomial -- the domains of distributed polynomials

Introduction

Dom::DistributedPolynomial(Vars, R, ..) creates the domain of polynomials in the variables of the list Vars over the commutative ring R in distributed representation.

Domain

Dom::DistributedPolynomial( <Vars <, R <, Order>>>)

Parameters

Vars - a list of indeterminates. Default is [] (the empty list, indicating ``arbitrary indeterminates'').
R - a commutative ring, i.e., a domain of category Cat::CommutativeRing. Default is Dom::ExpressionField(normal).
Order - a monomial ordering, i.e., one of the predefined orderings LexOrder, DegreeOrder or DegInvLexOrder or any object of type Dom::MonomOrdering. Default is LexOrder.

Details

Creating Elements

Dom::DistributedPolynomial(Vars, R, Order)(p)
Dom::DistributedPolynomial(Vars, R, Order)(lm)
Dom::DistributedPolynomial(Vars, R, Order)(lm,v)

Parameters

p - a polynomial or a polynomial expression.
lm - list of monomials, which are represented as lists containing the coefficients together with the exponents or exponent vectors.
v - list of indeterminates. This parameter is only valid for Vars = [].

Categories

if Vars has a single variable, then
Cat::UnivariatePolynomial(R)


else
Cat::Polynomial(R)

Related Domains

Dom::Polynomial, Dom::MultivariatePolynomial, Dom::UnivariatePolynomial

Entries

characteristic

The characteristic of this domain.

coeffRing

The coefficient ring of this domain as defined by the parameter R.

key

The name of the created domain.

one

The neutral element w.r.t. "_mult".

ordering

The monomial order as defined by the parameter Order.

variables

The list of variables as defined by the parameter Vars.

zero

The neutral element w.r.t. "_plus".

Method _divide: exact polynomial division

Method _invert: inverse of an element

Method _mult: multiplies polynomials and coefficient ring elements

Method _negate: negates a polynomial

Method _plus: adds polynomials and coefficent ring elements

Method _power: nth power of a polynomial

Method _subtract: subtracts a polynomial or a coefficient ring element

Method content: content of a polynomial

Method D: differential operator for polynomials

Method Dpoly: differential operator for polynomials

Method decompose: functional decomposition of a polynomial

Method diff: differentiates a polynomial

Method dimension: dimension of affine variety

Method divide: divides polynomials

Method evalp: evaluates a polynomial

Method factor: factors a polynomial

Method func_call: applies expressions to a polynomial

Method gcd: greatest common divisor of polynomials

Method gcdex: extended Euclidean algorithm for polynomials

Method groebner: reduced Gröbner basis

Method int: definite and indefinite integration of a polynomial

Method intmult: multiplies a polynomial with an integer

Method isone: test for one

Method iszero: test for zero

Method lcm: least common multiple of polynomials

Method makeIntegral: makes the coefficients fraction free

Method monic: normalizes a polynomial

Method normalForm: complete reduction modulo an ideal

Method numericSolve: numerical zeros of polynomials

Method pdioe: solves polynomial Diophantine equations

Method pdivide: pseudo-division of polynomials

Method pquo: pseudo-quotient of polynomials

Method prem: pseudo-remainder of polynomials

Method random: creates a random polynomial

Method realSolve: isolates all real roots of a real univariate polynomial

Method resultant: resultant of two polynomials

Method ringmult: multiplies a polynomial with a coefficient ring element

Method solve: zeros of polynomials

Method SPolynomial: computes the S-polynomial of two polynomials

Method sqrfree: square-free factorization of polynomials

Method coeff: coefficients of a polynomial

Method degree: degree of a polynomial

Method degreevec: vector of exponents of the leading term of a polynomial

Method euclideanDegree: Euclidean degree function

Method ground: ground term of a polynomial

Method has: existence of an object in a polynomial

Method indets: indeterminates of a polynomial

Method lcoeff: leading coefficient of a polynomial

Method ldegree: lowest degree of a polynomial

Method lmonomial: leading monomial of a polynomial

Method lterm: leading term of a polynomial

Method mainvar: main variable of a polynomial

Method mapcoeffs: applies a function to the coefficients of a polynomial

Method multcoeffs: multiplies the coefficients of a polynomial with a factor

Method nterms: number of terms of a polynomial

Method nthcoeff: n-th coefficient of a polynomial

Method nthmonomial: n-th monomial of a polynomial

Method nthterm: n-th term of a polynomial

Method orderedVariableList: ordered list of indeterminates of a polynomial

Method pivotSize: size of a pivot element

Method reductum: reductum of a polynomial

Method tcoeff: lowest coefficient of a polynomial

Method convert: conversion to a polynomial

Method expr: conversion to a basic type

Method poly: converts to a basic polynomial domain

Method TeX: TeX formatting of a polynomial

Method TeXCoeff: TeX formatting of a polynomial coefficient

Method TeXident: TeX formatting of a polynomial indeterminate

Method TeXTerm: TeX formatting of a polynomial term

Method adaptIndets: converts polynomials to common indeterminates

Method isNeg: test on leading output token

Method mult: multiplies polynomials

Method new: creates a new element

Method plus: adds polynomials

Method print: prints polynomials

Method printMonomial: prints a monomial in defined order

Method printTerm: prints a term in defined order

Method Rep: data representation of a polynomial

Method sign: leading sign of a polynomial

Example 1

The following call creates a polynomial domain in x, y and z.

>> DP := Dom::DistributedPolynomial([x, y, z])
      Dom::DistributedPolynomial([x, y, z],
      
         Dom::ExpressionField(normal, iszero@normal), LexOrder)

Since neither the coefficient ring nor the monomial ordering was specified, this domain is created with the default values for these parameters.

It is rather easy to create elements of this domain, as e.g.

>> a := DP(x + 2*y*z + 3)
                               x + 2 y z + 3
>> b := DP(z^4 - 2*y^2*x^2)
                                   2  2    4
                              - 2 x  y  + z

In contrast to expressions all elements of this domain have a representation which is fixed by the chosen Order, the representation of the coefficient ring R and the way of representing monomials.

With these elements one can now perform usual arithmetic operations as, e.g., (scalar) multiplication, multiplication with integers and adding polynomials and ring elements:

>> 4*b^2 + a/3 + 1/2
               4  4       2  2  4                        8
           16 x  y  - 16 x  y  z  + 1/3 x + 2/3 y z + 4 z  + 3/2

There are a lot of methods for manipulating polynomials and to get access to all parts of a polynomial. For example one has access to the leading monomial of a as follows:

>> lmonomial(a)
                                     x

The leading monomial of a polynomial depends on the monomial ordering, so with respect to the degree order one gets a different result:

>> lmonomial(a, DegreeOrder)
                                   2 y z

To get a minus its leading monomial one may call:

>> DP::reductum(a)
                                 2 y z + 3

Obviously the following identity holds:

>> a - lmonomial(a) - DP::reductum(a)
                                     0

There are also methods for converting elements of this domain into other domains, like a basic polynomial domain or the domain of arbitrary expressions:

>> poly(a), domtype(poly(a))
      poly(x + 2 y z + 3, [x, y, z], Dom::ExpressionField(normal,
      
         iszero@normal)), DOM_POLY
>> expr(b), domtype(expr(b))
                           4      2  2
                          z  - 2 x  y , DOM_EXPR

Super-Domain

Dom::BaseDomain

Axioms

if R has Ax::normalRep, then
Ax::normalRep
if R has Ax::canonicalRep, then
Ax::canonicalRep

Changes




Do you have questions or comments?


Copyright © SciFace Software GmbH & Co. KG 2000