LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Friends | List of all members
lsst::shapelet::MatrixBuilder< T > Class Template Reference

Class that evaluates a (multi-)shapelet basis at predefined points. More...

#include <MatrixBuilder.h>

Public Types

typedef MatrixBuilderFactory< T > Factory
 Factory type associated with this builder. More...
 
typedef MatrixBuilderWorkspace< T > Workspace
 Workspace type associated with this builder. More...
 

Public Member Functions

 MatrixBuilder (ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order)
 Create a MatrixBuilder that evaluates a simple non-compound shapelet basis. More...
 
 MatrixBuilder (ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, int order, ShapeletFunction const &psf)
 Create a MatrixBuilder that evaluates a simple non-compound shapelet basis after convolving it with a ShapeletFunction. More...
 
 MatrixBuilder (ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis)
 Create a MatrixBuilder that evaluates a MultiShapeletBasis object. More...
 
 MatrixBuilder (ndarray::Array< T const, 1, 1 > const &x, ndarray::Array< T const, 1, 1 > const &y, MultiShapeletBasis const &basis, MultiShapeletFunction const &psf)
 Create a MatrixBuilder that evaluates a MultiShapeletBasis object after convolving it with a MultiShapeletFunction. More...
 
int getDataSize () const
 Return the number of data points. More...
 
int getBasisSize () const
 Return the number of basis elements. More...
 
ndarray::Array< T, 2,-2 > allocateOutput () const
 Return a matrix appropriate for use as an output for operator(). More...
 
void operator() (ndarray::Array< T, 2,-1 > const &output, afw::geom::ellipses::Ellipse const &ellipse) const
 Fill an array with the model matrix. More...
 
ndarray::Array< T, 2,-2 > operator() (afw::geom::ellipses::Ellipse const &ellipse) const
 Return a newly-allocated model matrix. More...
 

Friends

template<typename U >
class MatrixBuilderFactory
 

Detailed Description

template<typename T>
class lsst::shapelet::MatrixBuilder< T >

Class that evaluates a (multi-)shapelet basis at predefined points.

The output "matrix" has pixels along the rows, and basis elements along columns; this is the design matrix involved in a linear least squares fit for the basis coefficients.

A MatrixBuilder can be constructed in two ways: via one of its own constructors, or via a MatrixBuilderFactory. Using the latter allows the workspace arrays used by the MatrixBuilder to be shared between instances. See MatrixBuilderFactory and MatrixBuilderWorkspace for more information.

Definition at line 55 of file MatrixBuilder.h.

Member Typedef Documentation

◆ Factory

template<typename T >
typedef MatrixBuilderFactory<T> lsst::shapelet::MatrixBuilder< T >::Factory

Factory type associated with this builder.

Definition at line 58 of file MatrixBuilder.h.

◆ Workspace

template<typename T >
typedef MatrixBuilderWorkspace<T> lsst::shapelet::MatrixBuilder< T >::Workspace

Workspace type associated with this builder.

Definition at line 59 of file MatrixBuilder.h.

Constructor & Destructor Documentation

◆ MatrixBuilder() [1/4]

template<typename T >
lsst::shapelet::MatrixBuilder< T >::MatrixBuilder ( ndarray::Array< T const, 1, 1 > const &  x,
ndarray::Array< T const, 1, 1 > const &  y,
int  order 
)

Create a MatrixBuilder that evaluates a simple non-compound shapelet basis.

Parameters
[in]xcolumn positions at which the basis should be evaluated.
[in]yrow positions at which the basis should be evaluated (same size as x).
[in]orderorder of the shapelet basis

◆ MatrixBuilder() [2/4]

template<typename T >
lsst::shapelet::MatrixBuilder< T >::MatrixBuilder ( ndarray::Array< T const, 1, 1 > const &  x,
ndarray::Array< T const, 1, 1 > const &  y,
int  order,
ShapeletFunction const &  psf 
)

Create a MatrixBuilder that evaluates a simple non-compound shapelet basis after convolving it with a ShapeletFunction.

Parameters
[in]xcolumn positions at which the basis should be evaluated.
[in]yrow positions at which the basis should be evaluated (same size as x).
[in]orderorder of the shapelet basis
[in]psffunction to convolve the basis with

◆ MatrixBuilder() [3/4]

template<typename T >
lsst::shapelet::MatrixBuilder< T >::MatrixBuilder ( ndarray::Array< T const, 1, 1 > const &  x,
ndarray::Array< T const, 1, 1 > const &  y,
MultiShapeletBasis const &  basis 
)

Create a MatrixBuilder that evaluates a MultiShapeletBasis object.

Parameters
[in]xcolumn positions at which the basis should be evaluated.
[in]yrow positions at which the basis should be evaluated (same size as x).
[in]basisbasis object defining the functions the matrix evaluates

◆ MatrixBuilder() [4/4]

template<typename T >
lsst::shapelet::MatrixBuilder< T >::MatrixBuilder ( ndarray::Array< T const, 1, 1 > const &  x,
ndarray::Array< T const, 1, 1 > const &  y,
MultiShapeletBasis const &  basis,
MultiShapeletFunction const &  psf 
)

Create a MatrixBuilder that evaluates a MultiShapeletBasis object after convolving it with a MultiShapeletFunction.

Parameters
[in]xcolumn positions at which the basis should be evaluated.
[in]yrow positions at which the basis should be evaluated (same size as x).
[in]basisbasis object defining the functions the matrix evaluates
[in]psffunction to convolve the basis with

Member Function Documentation

◆ allocateOutput()

template<typename T >
ndarray::Array<T,2,-2> lsst::shapelet::MatrixBuilder< T >::allocateOutput ( ) const

Return a matrix appropriate for use as an output for operator().

◆ getBasisSize()

template<typename T >
int lsst::shapelet::MatrixBuilder< T >::getBasisSize ( ) const

Return the number of basis elements.

◆ getDataSize()

template<typename T >
int lsst::shapelet::MatrixBuilder< T >::getDataSize ( ) const

Return the number of data points.

◆ operator()() [1/2]

template<typename T >
ndarray::Array<T,2,-2> lsst::shapelet::MatrixBuilder< T >::operator() ( afw::geom::ellipses::Ellipse const &  ellipse) const
inline

Return a newly-allocated model matrix.

Parameters
[in]ellipseEllipse parameters of the model, with center relative to the x and y arrays passed at construction.

Definition at line 149 of file MatrixBuilder.h.

149  {
150  ndarray::Array<T,2,-2> output = allocateOutput();
151  (*this)(output, ellipse);
152  return output;
153  }
ndarray::Array< T, 2,-2 > allocateOutput() const
Return a matrix appropriate for use as an output for operator().

◆ operator()() [2/2]

template<typename T >
void lsst::shapelet::MatrixBuilder< T >::operator() ( ndarray::Array< T, 2,-1 > const &  output,
afw::geom::ellipses::Ellipse const &  ellipse 
) const

Fill an array with the model matrix.

Parameters
[out]outputMatrix to fill, with dimensions (getDataSize(), getBasisSize()). Will be zeroed before filling.
[in]ellipseEllipse parameters of the model, with center relative to the x and y arrays passed at construction.

Friends And Related Function Documentation

◆ MatrixBuilderFactory

template<typename T >
template<typename U >
friend class MatrixBuilderFactory
friend

Definition at line 157 of file MatrixBuilder.h.


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