23 #ifndef LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
24 #define LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
28 namespace lsst {
namespace shapelet {
67 ndarray::Array<double const,2,2>
getMatrix()
const {
return _matrix; }
74 ndarray::Array<double const,2,2> _matrix;
97 typedef ComponentVector::const_iterator
Iterator;
119 void addComponent(
double radius,
int order, ndarray::Array<double const,2,2>
const & matrix);
122 void scale(
double factor);
138 afw::geom::ellipses::Ellipse
const & ellipse,
139 ndarray::Array<double const,1,1>
const & coefficients
149 #endif // !LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
Iterator end() const
Iterator over the components (distinct shapelet bases) of the MultiShapeletBasis. ...
void scale(double factor)
Multiply the radius of all basis elements by the given factor.
ndarray::Array< double const, 2, 2 > getMatrix() const
Matrix whose elements [i,j] map MultiShapeletBasis elements j to shapelet terms i.
void merge(MultiShapeletBasis const &other)
Combine the given basis with this (in place), by appending its elements.
Simple struct that represents one shapelet expansion in a MultiShapeletBasis.
void normalize()
Rescale all matrices so each element has unit flux.
A basis formed from a linear combination of shapelet bases that differ only in radius.
MultiShapeletBasisComponent(double radius, int order, ndarray::Array< double const, 2, 2 > const &matrix)
Main constructor for MultiShapeletBasisComponent.
MultiShapeletBasisComponent Component
Iterator begin() const
Iterator over the components (distinct shapelet bases) of the MultiShapeletBasis. ...
A multi-scale shapelet function.
int getSize() const
Return the number of elements (i.e. free amplitudes) in the MultiShapeletBasis.
int getComponentCount() const
Return the number of components (distinct shapelet bases) in the MultiShapeletBasis.
void addComponent(double radius, int order, ndarray::Array< double const, 2, 2 > const &matrix)
Add a new component (shapelet basis) to the MultiShapeletBasis.
MultiShapeletFunction makeFunction(afw::geom::ellipses::Ellipse const &ellipse, ndarray::Array< double const, 1, 1 > const &coefficients) const
Create a MultiShapeletFunction from the basis.
std::vector< Component > ComponentVector
double getRadius() const
Return the radius of this shapelet expansion.
int getOrder() const
Order of this shapelet expansion.
MultiShapeletBasis(int size)
Construct a MultiShapeletBasis with the given number of elements (i.e. free amplitudes).
ComponentVector::const_iterator Iterator