LSSTApplications
10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
home
lsstsw
stack
Linux64
afw
11.0-2-g04d2804
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
INSTANTIATE
#define INSTANTIATE(MATCH)
Definition:
makeMatchStatistics.cc:100
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
double x
Definition:
ChebyshevBoundedField.cc:305
Generated on Thu Sep 24 2015 02:29:17 for LSSTApplications by
1.8.5