# Documentation

### This is machine translation

Translated by
Mouse over text to see original. Click the button below to return to the English verison of the page.

# Dom::Polynomial

Domains of polynomials in arbitrarily many indeterminates

## Syntax

### Domain Creation

`Dom::Polynomial(<`R, <Order>`>)`

### Element Creation

`Dom::PolynomialRorder(`p`)`
`Dom::PolynomialRorder(`lm, v`)`

## Description

`Dom::Polynomial(R, ..)` creates the domain of polynomials in arbitrarily many indeterminates over the commutative ring `R` in distributed representation.

`Dom::Polynomial` represents polynomials in arbitrarily many indeterminates over arbitrary commutative rings.

It is simply a front end to the domain `Dom::DistributedPolynomial([],R,Order)` and thus all usual algebraic and arithmetical polynomial operations are implemented. Please see the documentation for `Dom::DistributedPolynomial` for a list of methods.

`Dom::Polynomial(R, Order)` creates a domain of polynomials in arbitrarily many indeterminates over a domain of category `Cat::CommutativeRing` in sparse distributed representation with respect to the monomial ordering `Order`.

If `Dom::Polynomial` is called without any argument, a polynomial domain over the domain `Dom::ExpressionField(normal)` with respect to the lexicographic monomial ordering is created.

 Note:   Only commutative coefficient rings of type `DOM_DOMAIN` which inherit from `Dom::BaseDomain` are allowed. If `R` is of type `DOM_DOMAIN` but does not inherit from `Dom::BaseDomain`, the domain `Dom::ExpressionField``(normal)` will be used instead.

Only identifiers should be used as polynomial indeterminates, since when creating a new element from a polynomial or a polynomial expression the function `indets` is first called to get the identifiers and then the polynomial is created with respect to these identifiers.

 Note:   It is highly recommend to use only coefficient rings with unique zero representation. Otherwise it may happen that, e.g., a polynomial division will not terminate or a wrong degree will be returned.

Please note that for reasons of efficiency not all methods check their arguments, not even at the interactive level. In particular, this is true for many access methods, converting methods and technical methods. Thus, improper use of these methods may result in confusing error messages.

## Superdomain

`Dom::DistributedPolynomial`

## Axioms

`Ax::indetElements`

## Categories

`Cat::Polynomial``(R)`

## Examples

### Example 1

The following call creates the polynomial domain over the rationals.

`PR:=Dom::Polynomial(Dom::Rational)`
``` ```

Since the monomial ordering was not specified, this domain is created with the default value for this parameter.

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

`a := PR(x*(2*x + y^3) - 7/2)`
``` ```
`b := PR(x*(2*t + z^3) - 6)`
``` ```
`c := a^2-b/3+3`
``` ```

## Parameters

 `R` A commutative ring, i.e., a domain of category `Cat::CommutativeRing`. Default: `Dom::ExpressionField(normal)`. `Order` A monomial ordering, i.e., one of the predefined orderings `LexOrder`, `DegreeOrder`, or `DegInvLexOrder` or an element of the domain `Dom::MonomOrdering`. Default: `LexOrder`. `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.

## Entries

 "characteristic" The characteristic of this domain, which is the characteristic of `R`. "coeffRing" The coefficient ring of this domain as defined by the parameter `R`. "key" The name of the domain created. "one" The neutral element w.r.t. `"_mult"`, which is `R::one`. "ordering" The monomial order as defined by the parameter `Order`. "zero" The neutral element w.r.t. `"_plus"`, which is `R::zero`.

## Algorithms

To create polynomials from expressions with no suitable indeterminates the dummy variable `_dummy` is introduced. With this variable it is possible to create elements from constants which otherwise would fail. The drawback of this approach is that two mathematically equal polynomials may have variable lists which differ by this dummy variable.