Class ConversionMatrix

Class Documentation

class ConversionMatrix

Conversions between shapelet basis types.

The basis conversion matrix is block-diagonal and only needs to be computed once, so we cache the blocks in a hidden singleton and provide operations that act on shapelet matrices while taking advantage of the sparseness of the conversion.

Public Functions

Eigen::MatrixXd getBlock(int n) const

Return a block of the block-diagonal conversion matrix.

Eigen::MatrixXd buildDenseMatrix() const

Construct the full conversion matrix (should just be used for testing).

void multiplyOnLeft(ndarray::Array<double, 1> const &array) const

Multiply the given array by the conversion matrix on the left in-place.

void multiplyOnRight(ndarray::Array<double, 1> const &array) const

Multiply the given array by the conversion matrix on the right in-place.

ConversionMatrix(BasisTypeEnum input, BasisTypeEnum output, int order)

Construct a conversion matrix that maps the input basis to the output basis.

Public Static Functions

static void convertCoefficientVector(ndarray::Array<double, 1> const &array, BasisTypeEnum input, BasisTypeEnum output, int order)

Convert a coefficient vector between basis types in-place.

static void convertOperationVector(ndarray::Array<double, 1> const &array, BasisTypeEnum input, BasisTypeEnum output, int order)

Convert an operation (evaluation, integration) vector between basis types in-place.