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