lsst.meas.astrom
g91f025aaea+311602a9c2
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
meas
astrom
detail
polynomialUtils.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
3
/*
4
* LSST Data Management System
5
* Copyright 2016 LSST/AURA
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_MEAS_ASTROM_DETAIL_polynomialUtils_h_INCLUDED
26
#define LSST_MEAS_ASTROM_DETAIL_polynomialUtils_h_INCLUDED
27
28
#include "Eigen/Core"
29
30
namespace
lsst
{
31
namespace
meas
{
32
namespace
astrom
{
33
namespace
detail
{
34
45
inline
int
computePackedOffset
(
int
order) {
return
(order * (order + 1)) / 2; }
46
50
inline
int
computePackedSize
(
int
order) {
return
computePackedOffset
(order + 1); }
51
58
void
computePowers
(Eigen::VectorXd& r,
double
x);
59
66
Eigen::VectorXd
computePowers
(
double
x,
int
n);
67
84
class
BinomialMatrix
{
85
public
:
90
explicit
BinomialMatrix
(
int
const
nMax) { extend(nMax); }
91
101
double
operator()
(
int
n,
int
k)
const
{
return
getMatrix()(n, k); }
102
103
private
:
104
static
void
extend(
int
const
n);
105
106
static
Eigen::MatrixXd& getMatrix();
107
};
108
109
}
// namespace detail
110
}
// namespace astrom
111
}
// namespace meas
112
}
// namespace lsst
113
114
#endif
// !LSST_MEAS_ASTROM_DETAIL_polynomialUtils_h_INCLUDED
lsst::meas::astrom::detail::BinomialMatrix::BinomialMatrix
BinomialMatrix(int const nMax)
Construct an object that can compute binomial coefficients with up to and including the given value.
Definition
polynomialUtils.h:90
lsst::meas::astrom::detail::BinomialMatrix::operator()
double operator()(int n, int k) const
Return the binomial coefficient.
Definition
polynomialUtils.h:101
lsst::meas::astrom::detail
Definition
polynomialUtils.h:33
lsst::meas::astrom::detail::computePackedOffset
int computePackedOffset(int order)
Compute the index of the first coefficient with the given order in a packed 2-d polynomial coefficien...
Definition
polynomialUtils.h:45
lsst::meas::astrom::detail::computePackedSize
int computePackedSize(int order)
Compute this size of a packed 2-d polynomial coefficient array.
Definition
polynomialUtils.h:50
lsst::meas::astrom::detail::computePowers
void computePowers(Eigen::VectorXd &r, double x)
Fill an array with integer powers of x, so .
Definition
polynomialUtils.cc:33
lsst::meas::astrom
Definition
polynomialUtils.h:32
lsst::meas
Definition
polynomialUtils.h:31
lsst
Generated on
for lsst.meas.astrom by
1.17.0