Dom::Polynomial
-- the
domains of polynomials in arbitrarily many indeterminatesDom::Polynomial
(R, ..)
creates the domain
of polynomials in arbitrarily many indeterminates over the commutative
ring R
in distributed representation.
Dom::Polynomial( <R <, Order>>)
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 . |
Dom::Polynomial
represents polynomials in arbitrarily
many indeterminates over arbitrary commutative rings.
It is simply a frontend 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
.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.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.
indets
is first called to get the
identifiers and then the polynomial is created with respect to these
identifiers.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.
Dom::Polynomial
(R <, Order>)(p)
Dom::Polynomial
(R <, Order>)(lm,v)
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. |
Cat::Polynomial(R)
Dom::DistributedPolynomial
,
Dom::MultivariatePolynomial
,
Dom::UnivariatePolynomial
The characteristic of this domain, which is the characteristic of
R
.
The coefficient ring of this domain as defined by the parameter
R
.
The name of the domain created.
The neutral element w.r.t. "_mult"
, which is
R::one
.
The monomial order as defined by the parameter
Order
.
The neutral element w.r.t. "_plus"
, which is
R::zero
.
The following call creates the polynomial domain over the rationals.
>> PR:=Dom::Polynomial(Dom::Rational)
Dom::Polynomial(Dom::Rational, LexOrder)
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)
2 3 2 x + x y - 7/2
>> b := PR(x*(2*t + z^3) - 6)
3 2 t x + x z - 6
>> c := a^2-b/3+3
4 3 3 2 6 2 3 - 2/3 t x + 4 x + 4 x y + x y - 14 x - 7 x y - 3 1/3 x z + 69/4
_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.Dom::PolynomialExplicit([],R,Order)
"indets"
now returns a set of
indeterminates."Rep"
, "decompose"
,
"int"
, "makeIntegral"
, "monic"
,
"orderedVariableList"
, "ordering"
,
"reductum"
, "resultant"
were added.