LSSTApplications
10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0.rc2+4
src
math
Function.cc
Go to the documentation of this file.
1
/*
2
* LSST Data Management System
3
* Copyright 2008, 2009, 2010 LSST Corporation.
4
*
5
* This product includes software developed by the
6
* LSST Project (http://www.lsst.org/).
7
*
8
* This program is free software: you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation, either version 3 of the License, or
11
* (at your option) any later version.
12
*
13
* This program is distributed in the hope that it will be useful,
14
* but WITHOUT ANY WARRANTY; without even the implied warranty of
15
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
* GNU General Public License for more details.
17
*
18
* You should have received a copy of the LSST License Statement and
19
* the GNU General Public License along with this program. If not,
20
* see <http://www.lsstcorp.org/LegalNotices/>.
21
*/
22
27
#include "
lsst/afw/math/FunctionLibrary.h
"
28
29
namespace
afwMath = lsst::afw::math;
30
35
template
<
typename
ReturnT>
36
std::vector<double>
afwMath::PolynomialFunction2<ReturnT>::getDFuncDParameters
(
double
x
,
double
y
)
const
{
37
std::vector<double> coeffs(this->getNParameters());
38
39
//
40
// Go through params order by order, evaluating x^r y^s; we do this by first evaluating
41
// y^s for a complete order, then going through again multiplying by x^r
42
//
43
int
i0 = 0;
// starting index for this order's coefficients
44
for
(
int
order = 0; order <= this->_order; ++order) {
45
coeffs[i0] = 1;
46
double
zn =
y
;
// y^s
47
for
(
int
i = 1; i <= order; ++i) {
48
coeffs[i0 + i] = zn;
49
zn *=
y
;
50
}
51
52
zn =
x
;
// x^r
53
for
(
int
i = order - 1; i >= 0; --i) {
54
coeffs[i0 + i] *= zn;
55
zn *=
x
;
56
}
57
58
59
i0 += order + 1;
60
}
61
62
assert (i0 == static_cast<int>(coeffs.size()));
63
64
return
coeffs;
65
}
66
67
/************************************************************************************************************/
69
#define INSTANTIATE(TYPE) \
70
template std::vector<double> \
71
afwMath::PolynomialFunction2<TYPE>::getDFuncDParameters(double x, double y) const
72
73
INSTANTIATE
(
double
);
74
INSTANTIATE
(
float
);
y
int y
Definition:
GaussianCentroid.cc:36
FunctionLibrary.h
Define a collection of useful Functions.
lsst.afw.math::PolynomialFunction2::getDFuncDParameters
virtual std::vector< double > getDFuncDParameters(double x, double y) const
Definition:
Function.cc:36
x
int x
Definition:
GaussianCentroid.cc:36
INSTANTIATE
#define INSTANTIATE(T)
Definition:
ApertureFlux.cc:282
Generated on Wed Sep 16 2015 13:35:28 for LSSTApplications by
1.8.5