diff options
author | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2007-08-14 05:14:52 +0000 |
commit | ab8cc85adde879fb963c94d15675783f2cf4b183 (patch) | |
tree | c202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/MPOLY.ht | |
download | open-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz |
Initial population.
Diffstat (limited to 'src/hyper/pages/MPOLY.ht')
-rw-r--r-- | src/hyper/pages/MPOLY.ht | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/hyper/pages/MPOLY.ht b/src/hyper/pages/MPOLY.ht new file mode 100644 index 00000000..1619aae4 --- /dev/null +++ b/src/hyper/pages/MPOLY.ht @@ -0,0 +1,110 @@ +% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved. +% !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. +\newcommand{\MultivariatePolynomialXmpTitle}{MultivariatePolynomial} +\newcommand{\MultivariatePolynomialXmpNumber}{9.54} +% +% ===================================================================== +\begin{page}{MultivariatePolynomialXmpPage}{9.54 MultivariatePolynomial} +% ===================================================================== +\beginscroll + +The domain constructor \spadtype{MultivariatePolynomial} is similar to +\spadtype{Polynomial} except that it specifies the variables to be used. +%-% \HDindex{polynomial!multiple variables} Most functions available for{MultivariatePolynomialXmpPage}{9.54}{MultivariatePolynomial} +\spadtype{Polynomial} are available for \spadtype{MultivariatePolynomial}. +The abbreviation for \spadtype{MultivariatePolynomial} is +\spadtype{MPOLY}. +The type expressions +\centerline{{\spadtype{MultivariatePolynomial([x,y],Integer)}}} +and +\centerline{{\spadtype{MPOLY([x,y],INT)}}} +refer to the domain of multivariate polynomials in the variables +\spad{x} and \spad{y} where the coefficients are restricted to be integers. +The first +variable specified is the main variable and the display of the +polynomial reflects this. +\xtc{ +This polynomial appears with +terms in descending powers of the variable \spad{x}. +}{ +\spadpaste{m : MPOLY([x,y],INT) := (x**2 - x*y**3 +3*y)**2 \bound{m}} +} +\xtc{ +It is easy to see a different variable ordering by doing a conversion. +}{ +\spadpaste{m :: MPOLY([y,x],INT) \free{m}} +} +\xtc{ +You can use other, unspecified variables, by using +\spadtype{Polynomial} in the coefficient type of \spadtype{MPOLY}. +}{ +\spadpaste{p : MPOLY([x,y],POLY INT) \bound{pdec}} +} +\xtc{ +}{ +\spadpaste{p := (a**2*x - b*y**2 + 1)**2 \free{pdec}\bound{p}} +} +\xtc{ +Conversions can be used to re-express such polynomials in terms of +the other variables. For example, you can first push all the +variables into a polynomial with integer coefficients. +}{ +\spadpaste{p :: POLY INT \free{p}\bound{prev}} +} +\xtc{ +Now pull out the variables of interest. +}{ +\spadpaste{\% :: MPOLY([a,b],POLY INT) \free{prev}} +} + +\beginImportant +\noindent {\bf Restriction:} +\texht{\begin{quotation}\noindent}{\newline\indent{5}} +\Language{} does not allow you to create types where +\spadtype{MultivariatePolynomial} is contained in the coefficient type of +\spadtype{Polynomial}. Therefore, +\spad{MPOLY([x,y],POLY INT)} is legal but +\spad{POLY MPOLY([x,y],INT)} is not. +\texht{\end{quotation}}{\indent{0}} +\endImportant + +\xtc{ +Multivariate polynomials may be combined with univariate polynomials +to create types with special structures. +}{ +\spadpaste{q : UP(x, FRAC MPOLY([y,z],INT)) \bound{qdec}} +} +\xtc{ +This is a polynomial in \spad{x} whose coefficients are +quotients of polynomials in \spad{y} and \spad{z}. +}{ +\spadpaste{q := (x**2 - x*(z+1)/y +2)**2 \free{qdec}\bound{q}} +} +\xtc{ +Use conversions for structural rearrangements. +\spad{z} does not appear in a denominator and so it can be made +the main variable. +}{ +\spadpaste{q :: UP(z, FRAC MPOLY([x,y],INT)) \free{q}} +} +\xtc{ +Or you can make a multivariate polynomial in \spad{x} and \spad{z} +whose coefficients are fractions in polynomials in \spad{y}. +}{ +\spadpaste{q :: MPOLY([x,z], FRAC UP(y,INT)) \free{q}} +} +A conversion like \spad{q :: MPOLY([x,y], FRAC UP(z,INT))} is not +possible in this example +because \spad{y} appears in the denominator of a fraction. +As you can see, \Language{} provides extraordinary flexibility in the +manipulation and display of expressions via its conversion facility. + +For more information on related topics, see +\downlink{`Polynomial'}{PolynomialXmpPage}\ignore{Polynomial}, +\downlink{`UnivariatePolynomial'}{UnivariatePolynomialXmpPage}\ignore{UnivariatePolynomial}, and +\downlink{`DistributedMultivariatePolynomial'}{DistributedMultivariatePolynomialXmpPage}\ignore{DistributedMultivariatePolynomial}. +\showBlurb{MultivariatePolynomial} +\endscroll +\autobuttons +\end{page} +% |