MultiIndices#

Background#

A multiindex is simply a length D vector of nonnegative integers p=[p1,p2,,pD]. Multiindices are commonly employed for defining multivariate polynomial expansions and other function parameterizations. In these cases, sets of multiindices define the form of the expansion.

Example: Multivariate Polynomial

A multivariate polynomial Φp(x):RDR can be defined as the product of D univariate polynomials. Using monomials for example,

Φp(x)=i=1Dxipi

A multivariate polynomial expansion can then be written succinctly as

f(x)=pScpΦp(x)

where S is a set of multiindices and cp are scalar coefficients.

Example: Wavelets

Multivariate polynomials are constructed from a tensor product of one-dimensional functions and each one-dimensional function depends on a single integer: the degree of the one-dimensional polynomial. This is a common way to define multivariate functions from indexed families of one-dimensional basis functions. In a general setting, however, the one-dimensional family does not need to be index by a single integer. Families of one-dimensional functions indexed with multiple integers can also be “tensorized” into multivariate functions. Wavelets are a prime example of this.

A one dimensional wavelet basis contains functions of the form

ψj,k(x)=2j/2ψ(2jxk)

where j and k are integers and ψ:RR is an orthogonal wavelet. Unlike polynomials, two integers are required to index the one-dimensional family. Nevertheless, a multivariate wavelet basis can be defined through the tensor product of components in this family:

Ψp(x)=i=1D/2ψp2i,p2i+1(xi)

where Ψp:RD/2R is a multivariate wavelet basis function in D/2 dimensions and p is a multiindex with D components.

C++ Objects#

Definitions#