lsst.shapelet
gc794cbe0cf+cb1993dea9
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
shapelet
constants.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2008, 2009, 2010, 2011 LSST Corporation.
6
*
7
* This product includes software developed by the
8
* LSST Project (http://www.lsst.org/).
9
*
10
* This program is free software: you can redistribute it and/or modify
11
* it under the terms of the GNU General Public License as published by
12
* the Free Software Foundation, either version 3 of the License, or
13
* (at your option) any later version.
14
*
15
* This program is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the LSST License Statement and
21
* the GNU General Public License along with this program. If not,
22
* see <http://www.lsstcorp.org/LegalNotices/>.
23
*/
24
25
#ifndef LSST_AFW_MATH_SHAPELETS_CONSTANTS_H
26
#define LSST_AFW_MATH_SHAPELETS_CONSTANTS_H
27
35
36
#include "
lsst/afw/geom/ellipses.h
"
37
#include "ndarray.h"
38
#include "
lsst/pex/exceptions.h
"
39
40
namespace
lsst
{
namespace
shapelet
{
41
42
extern
double
const
BASIS_NORMALIZATION
;
43
44
typedef
afw::geom::ellipses::Quadrupole
EllipseCore
;
45
52
enum
BasisTypeEnum
{
53
HERMITE
,
70
71
LAGUERRE
,
91
};
92
94
inline
int
computeOffset
(
int
order) {
return
order * (order + 1) / 2; }
95
97
inline
int
computeSize
(
int
order) {
return
computeOffset
(order + 1); }
98
104
inline
int
computeOrder
(
int
size) {
105
int
order = (
std::sqrt
(8*size + 1) - 3)/2;
106
if
(
computeSize
(order) != size) {
107
throw
LSST_EXCEPT
(
108
pex::exceptions::InvalidParameterError
,
109
"Invalid size for shapelet coefficient matrix"
110
);
111
}
112
return
order;
113
}
114
121
typedef
ndarray::Array<double,1>
Array1d
;
122
124
inline
double
intSqrt
(
int
n) {
125
return
std::sqrt
(
double
(n));
126
}
127
129
inline
double
rationalSqrt
(
int
n,
int
d) {
130
return
std::sqrt
(
double
(n) /
double
(d));
131
}
132
133
}}
// namespace lsst::shapelet
134
135
#endif
// !defined(LSST_AFW_MATH_SHAPELETS_CONSTANTS_H)
LSST_EXCEPT
#define LSST_EXCEPT(type,...)
lsst::afw::geom::ellipses::Quadrupole
lsst::pex::exceptions::InvalidParameterError
lsst::shapelet.constants.constantsContinued.BasisTypeEnum
Definition
constantsContinued.py:9
ellipses.h
exceptions.h
lsst::shapelet
Definition
BasisEvaluator.h:37
lsst::shapelet::computeOrder
int computeOrder(int size)
Infer the order of a shapelet expansion from the number of coefficients.
Definition
constants.h:104
lsst::shapelet::computeOffset
int computeOffset(int order)
Return the offset of the given order in a coefficient vector.
Definition
constants.h:94
lsst::shapelet::intSqrt
double intSqrt(int n)
Compute the square root of an integer number.
Definition
constants.h:124
lsst::shapelet::computeSize
int computeSize(int order)
Return the size of the coefficient vector for the given order.
Definition
constants.h:97
lsst::shapelet::BASIS_NORMALIZATION
double const BASIS_NORMALIZATION
Normalization factor for 1-d orthonormal shapelets: pi^(-1/4).
lsst::shapelet::rationalSqrt
double rationalSqrt(int n, int d)
Compute the square root of a rational number i.e. sqrt(n/d).
Definition
constants.h:129
lsst::shapelet::Array1d
ndarray::Array< double, 1 > Array1d
Typedef for a commonly-used array type.
Definition
constants.h:121
lsst::shapelet::HERMITE
@ HERMITE
Cartesian shapelets or Gauss-Hermite functions, as defined in Refregier, 2003.
Definition
constants.h:53
lsst::shapelet::LAGUERRE
@ LAGUERRE
Polar shapelets or Gauss-Laguerre functions, as defined in Bernstein and Jarvis, 2002.
Definition
constants.h:71
lsst::shapelet::EllipseCore
afw::geom::ellipses::Quadrupole EllipseCore
Definition
constants.h:44
lsst
std::sqrt
T sqrt(T... args)
Generated on
for lsst.shapelet by
1.17.0