LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Public Member Functions | Static Public Member Functions | List of all members
lsst::shapelet::ConversionMatrix Class Reference

Conversions between shapelet basis types. More...

#include <ConversionMatrix.h>

Public Member Functions

Eigen::MatrixXd getBlock (int n) const
 Return a block of the block-diagonal conversion matrix. More...
 
Eigen::MatrixXd buildDenseMatrix () const
 Construct the full conversion matrix (should just be used for testing). More...
 
void multiplyOnLeft (ndarray::Array< double, 1 > const &array) const
 Multiply the given array by the conversion matrix on the left in-place. More...
 
void multiplyOnRight (ndarray::Array< double, 1 > const &array) const
 Multiply the given array by the conversion matrix on the right in-place. More...
 
 ConversionMatrix (BasisTypeEnum input, BasisTypeEnum output, int order)
 Construct a conversion matrix that maps the input basis to the output basis. More...
 

Static Public Member 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. More...
 
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. More...
 

Detailed Description

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.

Definition at line 42 of file ConversionMatrix.h.

Constructor & Destructor Documentation

◆ ConversionMatrix()

lsst::shapelet::ConversionMatrix::ConversionMatrix ( BasisTypeEnum  input,
BasisTypeEnum  output,
int  order 
)
explicit

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

Member Function Documentation

◆ buildDenseMatrix()

Eigen::MatrixXd lsst::shapelet::ConversionMatrix::buildDenseMatrix ( ) const

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

◆ convertCoefficientVector()

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

Convert a coefficient vector between basis types in-place.

◆ convertOperationVector()

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

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

◆ getBlock()

Eigen::MatrixXd lsst::shapelet::ConversionMatrix::getBlock ( int  n) const

Return a block of the block-diagonal conversion matrix.

◆ multiplyOnLeft()

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

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

◆ multiplyOnRight()

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

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


The documentation for this class was generated from the following file: