lsst.shapelet
gc794cbe0cf+6dab958613
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
shapelet
MultiShapeletBasis.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008-2013 LSST Corporation.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
#ifndef LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
24
#define LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
25
26
#include "
lsst/shapelet/MultiShapeletFunction.h
"
27
28
namespace
lsst
{
namespace
shapelet
{
29
40
class
MultiShapeletBasisComponent
{
41
public
:
42
58
MultiShapeletBasisComponent
(
double
radius,
int
order, ndarray::Array<double const,2,2>
const
& matrix);
59
61
double
getRadius
()
const
{
return
_radius; }
62
64
int
getOrder
()
const
{
return
_order; }
65
67
ndarray::Array<double const,2,2>
getMatrix
()
const
{
return
_matrix; }
68
69
private
:
70
friend
class
MultiShapeletBasis
;
71
72
double
_radius;
73
int
_order;
74
ndarray::Array<double const,2,2> _matrix;
75
};
76
93
class
MultiShapeletBasis
{
94
public
:
95
typedef
MultiShapeletBasisComponent
Component
;
96
typedef
std::vector<Component>
ComponentVector
;
97
typedef
ComponentVector::const_iterator
Iterator
;
98
100
explicit
MultiShapeletBasis
(
int
size);
101
103
int
getSize
()
const
{
return
_size; }
104
106
int
getComponentCount
()
const
{
return
_components.size(); }
107
109
110
Iterator
begin
()
const
{
return
_components.begin(); }
111
Iterator
end
()
const
{
return
_components.end(); }
113
119
void
addComponent
(
double
radius,
int
order, ndarray::Array<double const,2,2>
const
& matrix);
120
122
void
scale
(
double
factor);
123
125
void
normalize
();
126
128
void
merge
(
MultiShapeletBasis
const
& other);
129
137
MultiShapeletFunction
makeFunction
(
138
afw::geom::ellipses::Ellipse
const
& ellipse,
139
ndarray::Array<double const,1,1>
const
& coefficients
140
)
const
;
141
142
private
:
143
int
_size;
144
ComponentVector
_components;
145
};
146
147
}}
// namespace lsst::shapelet
148
149
#endif
// !LSST_SHAPELET_MultiShapeletBasis_h_INCLUDED
MultiShapeletFunction.h
lsst::afw::geom::ellipses::Ellipse
lsst::shapelet::MultiShapeletBasisComponent
Simple struct that represents one shapelet expansion in a MultiShapeletBasis.
Definition
MultiShapeletBasis.h:40
lsst::shapelet::MultiShapeletBasisComponent::MultiShapeletBasisComponent
MultiShapeletBasisComponent(double radius, int order, ndarray::Array< double const, 2, 2 > const &matrix)
Main constructor for MultiShapeletBasisComponent.
lsst::shapelet::MultiShapeletBasisComponent::getOrder
int getOrder() const
Order of this shapelet expansion.
Definition
MultiShapeletBasis.h:64
lsst::shapelet::MultiShapeletBasisComponent::getRadius
double getRadius() const
Return the radius of this shapelet expansion.
Definition
MultiShapeletBasis.h:61
lsst::shapelet::MultiShapeletBasisComponent::MultiShapeletBasis
friend class MultiShapeletBasis
Definition
MultiShapeletBasis.h:70
lsst::shapelet::MultiShapeletBasisComponent::getMatrix
ndarray::Array< double const, 2, 2 > getMatrix() const
Matrix whose elements [i,j] map MultiShapeletBasis elements j to shapelet terms i.
Definition
MultiShapeletBasis.h:67
lsst::shapelet::MultiShapeletBasis::merge
void merge(MultiShapeletBasis const &other)
Combine the given basis with this (in place), by appending its elements.
lsst::shapelet::MultiShapeletBasis::MultiShapeletBasis
MultiShapeletBasis(int size)
Construct a MultiShapeletBasis with the given number of elements (i.e. free amplitudes).
lsst::shapelet::MultiShapeletBasis::normalize
void normalize()
Rescale all matrices so each element has unit flux.
lsst::shapelet::MultiShapeletBasis::begin
Iterator begin() const
Iterator over the components (distinct shapelet bases) of the MultiShapeletBasis.
Definition
MultiShapeletBasis.h:110
lsst::shapelet::MultiShapeletBasis::Iterator
ComponentVector::const_iterator Iterator
Definition
MultiShapeletBasis.h:97
lsst::shapelet::MultiShapeletBasis::getComponentCount
int getComponentCount() const
Return the number of components (distinct shapelet bases) in the MultiShapeletBasis.
Definition
MultiShapeletBasis.h:106
lsst::shapelet::MultiShapeletBasis::getSize
int getSize() const
Return the number of elements (i.e. free amplitudes) in the MultiShapeletBasis.
Definition
MultiShapeletBasis.h:103
lsst::shapelet::MultiShapeletBasis::Component
MultiShapeletBasisComponent Component
Definition
MultiShapeletBasis.h:95
lsst::shapelet::MultiShapeletBasis::scale
void scale(double factor)
Multiply the radius of all basis elements by the given factor.
lsst::shapelet::MultiShapeletBasis::end
Iterator end() const
Definition
MultiShapeletBasis.h:111
lsst::shapelet::MultiShapeletBasis::ComponentVector
std::vector< Component > ComponentVector
Definition
MultiShapeletBasis.h:96
lsst::shapelet::MultiShapeletBasis::makeFunction
MultiShapeletFunction makeFunction(afw::geom::ellipses::Ellipse const &ellipse, ndarray::Array< double const, 1, 1 > const &coefficients) const
Create a MultiShapeletFunction from the basis.
lsst::shapelet::MultiShapeletBasis::addComponent
void addComponent(double radius, int order, ndarray::Array< double const, 2, 2 > const &matrix)
Add a new component (shapelet basis) to the MultiShapeletBasis.
lsst::shapelet::MultiShapeletFunction
A multi-scale shapelet function.
Definition
MultiShapeletFunction.h:38
lsst::shapelet
Definition
BasisEvaluator.h:37
lsst
std::vector
Generated on
for lsst.shapelet by
1.17.0