Class HermiteTransformMatrix

Class Documentation

class HermiteTransformMatrix

A class that computes a matrix that applies a linear transform to a 2-d Hermite polynomial expansion.

Let

\[ Z_{\boldsymbol{n}}\!(\boldsymbol{x}) \equiv \mathcal{H}_{n_0}\!(x_0)\;\mathcal{H}_{n_1}\!(x_1) \]
where
\[ \mathcal{H}_n(x)=(2^n \pi^{1/2} n!)^{-1/2}H_n(x) \]
is the \(i\)th “alternate” Hermite polynomial. This function computes the matrix \(\boldsymbol{Q}(\boldsymbol{U})\) given a linear transform \(\boldsymbol{U}\) such that
\[ Z_{\boldsymbol{m}}\!(\boldsymbol{U}\boldsymbol{x}) = \sum_{\boldsymbol{n}} Q_{\boldsymbol{m},\boldsymbol{n}}\!(\boldsymbol{U})\,Z_{\boldsymbol{n}}\!(\boldsymbol{x}) \]

Public Functions

Eigen::MatrixXd compute(Eigen::Matrix2d const &transform) const

Compute the matrix for a new linear transform.

Eigen::MatrixXd compute(geom::LinearTransform const &transform) const

Compute the matrix for a new linear transform.

Eigen::MatrixXd compute(Eigen::Matrix2d const &transform, int order) const

Compute the matrix for a new linear transform at the given order (must be <= getOrder()).

Eigen::MatrixXd compute(geom::LinearTransform const &transform, int order) const

Compute the matrix for a new linear transform at the given order (must be <= getOrder()).

Eigen::MatrixXd getCoefficientMatrix() const

Return the matrix that maps (1-d) regular polynomials to the alternate Hermite polynomials.

The matrix is always lower triangular, and has size equal to getOrder()+1.

Eigen::MatrixXd getInverseCoefficientMatrix() const

Return the matrix that maps (1-d) alternate Hermite polynomials to regular polynomials.

The matrix is always lower triangular, and has size equal to getOrder()+1.

int getOrder() const

Return the maximum order at which the matrix can be computed.

HermiteTransformMatrix(int order)

Construct an instance able to compute the transform matrix at up to the given order.