aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/pages/MPOLY.ht
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
committerdos-reis <gdr@axiomatics.org>2007-08-14 05:14:52 +0000
commitab8cc85adde879fb963c94d15675783f2cf4b183 (patch)
treec202482327f474583b750b2c45dedfc4e4312b1d /src/hyper/pages/MPOLY.ht
downloadopen-axiom-ab8cc85adde879fb963c94d15675783f2cf4b183.tar.gz
Initial population.
Diffstat (limited to 'src/hyper/pages/MPOLY.ht')
-rw-r--r--src/hyper/pages/MPOLY.ht110
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}
+%