lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
math
Interpolate.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
#if !defined(LSST_AFW_MATH_INTERPOLATE_H)
3
#define LSST_AFW_MATH_INTERPOLATE_H
4
5
/*
6
* LSST Data Management System
7
* Copyright 2008, 2009, 2010 LSST Corporation.
8
*
9
* This product includes software developed by the
10
* LSST Project (http://www.lsst.org/).
11
*
12
* This program is free software: you can redistribute it and/or modify
13
* it under the terms of the GNU General Public License as published by
14
* the Free Software Foundation, either version 3 of the License, or
15
* (at your option) any later version.
16
*
17
* This program is distributed in the hope that it will be useful,
18
* but WITHOUT ANY WARRANTY; without even the implied warranty of
19
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
* GNU General Public License for more details.
21
*
22
* You should have received a copy of the LSST License Statement and
23
* the GNU General Public License along with this program. If not,
24
* see <http://www.lsstcorp.org/LegalNotices/>.
25
*/
26
#include "
lsst/base.h
"
27
#include "ndarray_fwd.h"
28
29
namespace
lsst
{
30
namespace
afw
{
31
namespace
math
{
32
33
/*
34
* Interpolate values for a set of x,y vector<>s
35
*/
36
class
Interpolate
{
37
public
:
38
enum
Style
{
39
UNKNOWN
= -1,
40
CONSTANT
= 0,
41
LINEAR
= 1,
42
NATURAL_SPLINE
= 2,
43
CUBIC_SPLINE
= 3,
44
CUBIC_SPLINE_PERIODIC
= 4,
45
AKIMA_SPLINE
= 5,
46
AKIMA_SPLINE_PERIODIC
= 6,
47
NUM_STYLES
48
};
49
50
friend
std::shared_ptr<Interpolate>
makeInterpolate
(
std::vector<double>
const
&x,
51
std::vector<double>
const
&y,
52
Interpolate::Style
const
style);
53
54
Interpolate
(
Interpolate
const
&) =
delete
;
55
Interpolate
(
Interpolate
&&) =
delete
;
56
Interpolate
&
operator=
(
Interpolate
const
&) =
delete
;
57
Interpolate
&
operator=
(
Interpolate
&&) =
delete
;
58
virtual
~Interpolate
() =
default
;
59
virtual
double
interpolate
(
double
const
x)
const
= 0;
60
std::vector<double>
interpolate
(
std::vector<double>
const
&x)
const
;
61
ndarray::Array<double, 1>
interpolate
(ndarray::Array<double const, 1>
const
&x)
const
;
62
63
protected
:
67
Interpolate
(
std::vector<double>
const
&x,
68
std::vector<double>
const
&y,
69
Interpolate::Style
const
style =
UNKNOWN
70
)
71
:
_x
(x),
_y
(y),
_style
(style) {}
72
80
Interpolate
(
std::pair
<
std::vector<double>
,
std::vector<double>
>
const
xy,
81
Interpolate::Style
const
style =
UNKNOWN
);
82
83
std::vector<double>
const
_x
;
84
std::vector<double>
const
_y
;
85
Interpolate::Style
const
_style
;
86
};
87
95
std::shared_ptr<Interpolate>
makeInterpolate
(
std::vector<double>
const
&x,
std::vector<double>
const
&y,
96
Interpolate::Style
const
style =
Interpolate::AKIMA_SPLINE
);
97
std::shared_ptr<Interpolate>
makeInterpolate
(ndarray::Array<double const, 1>
const
&x,
98
ndarray::Array<double const, 1>
const
&y,
99
Interpolate::Style
const
style =
Interpolate::AKIMA_SPLINE
);
105
Interpolate::Style
stringToInterpStyle
(
std::string
const
&style);
111
Interpolate::Style
lookupMaxInterpStyle
(
int
const
n);
117
int
lookupMinInterpPoints
(
Interpolate::Style
const
style);
118
}
// namespace math
119
}
// namespace afw
120
}
// namespace lsst
121
122
#endif
// LSST_AFW_MATH_INTERPOLATE_H
base.h
std::string
lsst::afw::math::Interpolate::interpolate
virtual double interpolate(double const x) const =0
lsst::afw::math::Interpolate::_x
std::vector< double > const _x
Definition
Interpolate.h:83
lsst::afw::math::Interpolate::_y
std::vector< double > const _y
Definition
Interpolate.h:84
lsst::afw::math::Interpolate::~Interpolate
virtual ~Interpolate()=default
lsst::afw::math::Interpolate::operator=
Interpolate & operator=(Interpolate &&)=delete
lsst::afw::math::Interpolate::_style
Interpolate::Style const _style
Definition
Interpolate.h:85
lsst::afw::math::Interpolate::makeInterpolate
friend std::shared_ptr< Interpolate > makeInterpolate(std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style)
A factory function to make Interpolate objects.
Definition
Interpolate.cc:347
lsst::afw::math::Interpolate::Interpolate
Interpolate(Interpolate const &)=delete
lsst::afw::math::Interpolate::Interpolate
Interpolate(Interpolate &&)=delete
lsst::afw::math::Interpolate::operator=
Interpolate & operator=(Interpolate const &)=delete
lsst::afw::math::Interpolate::Style
Style
Definition
Interpolate.h:38
lsst::afw::math::Interpolate::CUBIC_SPLINE_PERIODIC
@ CUBIC_SPLINE_PERIODIC
Definition
Interpolate.h:44
lsst::afw::math::Interpolate::LINEAR
@ LINEAR
Definition
Interpolate.h:41
lsst::afw::math::Interpolate::CONSTANT
@ CONSTANT
Definition
Interpolate.h:40
lsst::afw::math::Interpolate::NATURAL_SPLINE
@ NATURAL_SPLINE
Definition
Interpolate.h:42
lsst::afw::math::Interpolate::NUM_STYLES
@ NUM_STYLES
Definition
Interpolate.h:47
lsst::afw::math::Interpolate::CUBIC_SPLINE
@ CUBIC_SPLINE
Definition
Interpolate.h:43
lsst::afw::math::Interpolate::AKIMA_SPLINE_PERIODIC
@ AKIMA_SPLINE_PERIODIC
Definition
Interpolate.h:46
lsst::afw::math::Interpolate::UNKNOWN
@ UNKNOWN
Definition
Interpolate.h:39
lsst::afw::math::Interpolate::AKIMA_SPLINE
@ AKIMA_SPLINE
Definition
Interpolate.h:45
lsst::afw::math::Interpolate::Interpolate
Interpolate(std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style=UNKNOWN)
Base class ctor.
Definition
Interpolate.h:67
lsst::afw::math
Definition
statistics.dox:6
lsst::afw::math::lookupMaxInterpStyle
Interpolate::Style lookupMaxInterpStyle(int const n)
Get the highest order Interpolation::Style available for 'n' points.
Definition
Interpolate.cc:279
lsst::afw::math::lookupMinInterpPoints
int lookupMinInterpPoints(Interpolate::Style const style)
Get the minimum number of points needed to use the requested interpolation style.
Definition
Interpolate.cc:318
lsst::afw::math::stringToInterpStyle
Interpolate::Style stringToInterpStyle(std::string const &style)
Conversion function to switch a string to an Interpolate::Style.
Definition
Interpolate.cc:261
lsst::afw::math::makeInterpolate
std::shared_ptr< Interpolate > makeInterpolate(std::vector< double > const &x, std::vector< double > const &y, Interpolate::Style const style=Interpolate::AKIMA_SPLINE)
A factory function to make Interpolate objects.
Definition
Interpolate.cc:347
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std::pair
std::shared_ptr
std::vector
Generated on
for lsst.afw by
1.17.0