lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
gslinterpolator.h
1
#ifndef LSST_GAUSS2D_FIT_GSLINTERPOLATOR_H
2
#define LSST_GAUSS2D_FIT_GSLINTERPOLATOR_H
3
4
#ifdef LSST_GAUSS2D_FIT_HAS_GSL
5
6
#include "gsl.h"
7
#include "interpolation.h"
8
9
#include "lsst/gauss2d/object.h"
10
11
#include <gsl/gsl_errno.h>
12
#include <gsl/gsl_spline.h>
13
14
namespace
lsst::gauss2d::fit {
15
19
class
GSLInterpolator :
public
Object {
20
public
:
21
explicit
GSLInterpolator(std::vector<double> x, std::vector<double> y,
22
InterpType interp_type = INTERPTYPE_DEFAULT);
23
~GSLInterpolator();
24
25
const
InterpType get_interp_type()
const
;
26
static
constexpr
InterpType INTERPTYPE_DEFAULT = InterpType::cspline;
27
29
double
get_knot_x(
size_t
idx)
const
;
31
double
get_knot_y(
size_t
idx)
const
;
32
34
double
eval(
double
x)
const
;
36
double
eval_deriv(
double
x)
const
;
38
size_t
size()
const
;
39
40
std::string repr(
bool
name_keywords =
false
,
41
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
42
std::string str()
const override
;
43
44
private
:
45
gsl_interp_accel* _acc;
46
gsl_spline* _spline;
47
48
const
InterpType _interp_type;
49
size_t
_n_knots;
50
std::vector<double> _x;
51
std::vector<double> _y;
52
};
53
54
}
// namespace lsst::gauss2d::fit
55
56
#endif
// LSST_GAUSS2D_FIT_HAS_GSL
57
#endif
// LSST_GAUSS2D_FIT_GSLINTERPOLATOR_H
include
lsst
gauss2d
fit
gslinterpolator.h
Generated by
1.17.0