verion 1.0   7 Jan 1999  Thomas.Grandine@PSS.Boeing.com

This file contains preliminary (and very crude) documentation for MVP,
a package designed to create, evaluate, and manipulate multivariate
polynomials.  The package (as of early 1999) contains 11 user-callable
C routines which do various things.  The package relies on the C
version of LAPACK in order to work properly.

Each of the routines in the package works off a single data structure
for multivariate polynomials (MVPOLY).  This data structure is
designed to support an arbitrary number of independent and dependent
variables.  In other words, MVPOLY can represent any mapping from a
rectangular sub-domain of R^n to R^m where the component functions of
the mapping are polynomials.  The rectangular sub-domain is
characterized by defining an interval over each variable.  Thus,
MVPOLY can represent any mapping

[a_1,b_1] x [a_2,b_2] x ... x [a_n,b_n] -> R^m

in which the component functions are polynomials.  The polynomials are
represented as a sum of multivariate monomials.  Here is a quick
description of the fields which comprise this data structure:

nind   - the number of independent variables (n above)
ndep   - the number of dependent variables (m above)
nterm  - the number of monomial terms in the sum
expon  - an array of exponent values for the monomials
bounds - the array (a_1,b_1,a_2,b_2, ... ,a_n,b_n)
coefs  - an array containing the coefficients of the monomials

As an example, consider the mapping

(x,y) |-> (x + 2x^2 + 3xy, y + 7y^2, 5xy^2)

defined over [0,1] x [0,1].  This mapping will be represented as

nind = 2
ndep = 3
nterm = 6
expon = [1, 0,
         0, 1,
         2, 0,
         1, 1,
         0, 2,
         1, 2]
bounds = [0.0, 1.0,
          0.0, 1.0]
coefs = [1.0, 0.0, 2.0, 3.0, 0.0, 0.0,
         0.0, 1.0, 0.0, 0.0, 7.0, 0.0,
         0.0, 0.0, 0.0, 0.0, 0.0, 5.0]

Here is a brief description of what each of the 11 routines does:

mvaxpy - Compute a * p(x) + q(x), where p and q are multivariate
         polynomials
mvcopy - Create a copy of an MVPOLY structure
mvfree - Free all of the memory associated with an MVPOLY
mvintp - Integrate a multivariate polynomial with respect to one of
         its variables
mvnorm - Compute the 2-norm of a multivariate polynomial function
mvpder - Evaluate a partial derivative of a multivariate polynomial
mvpifn - Compute a multivariate polynomial which interpolates a
         collection of linear functionals using the least polynomial
         method of de Boor and Ron
mvpint - Compute a multivariate polynomial which interpolates a
         collection of data points using the least polynomial method
         of de Boor and Ron
mvprdp - Read a multivariate polynomial definition from a text stream
mvpval - Evaluate a multivariate polynomial at a point
mvpwrt - Write a multivariate polynomial definition to a text stream
