lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
gslsersicmixinterpolator.h
1
#ifndef LSST_GAUSS2D_FIT_GSLSERSICMIXINTERPOLATOR_H
2
#define LSST_GAUSS2D_FIT_GSLSERSICMIXINTERPOLATOR_H
3
4
#ifdef LSST_GAUSS2D_FIT_HAS_GSL
5
6
#include <memory>
7
8
#include "gsl.h"
9
#include "gslinterpolator.h"
10
#include "sersicmix.h"
11
12
#include <gsl/gsl_errno.h>
13
#include <gsl/gsl_spline.h>
14
15
namespace
lsst::gauss2d::fit {
16
20
class
GSLSersicMixInterpolator :
public
SersicMixInterpolator
{
21
public
:
22
explicit
GSLSersicMixInterpolator(
unsigned
short
order = SERSICMIX_ORDER_DEFAULT,
23
InterpType interp_type = INTERPTYPE_DEFAULT);
24
~GSLSersicMixInterpolator();
25
26
bool
correct_final_integral =
true
;
27
static
constexpr
InterpType INTERPTYPE_DEFAULT = InterpType::cspline;
29
const
std::vector<SersicMixValues>& get_knots()
const
;
30
33
double
get_final_correction()
const
;
34
35
std::vector<IntegralSize> get_integralsizes(
double
sersicindex)
const override
;
36
std::vector<IntegralSize> get_integralsizes_derivs(
double
sersicindex)
const override
;
37
38
InterpType get_interptype()
const override
;
39
unsigned
short
get_order()
const override
;
40
41
double
get_sersicindex_min()
const
;
42
double
get_sersicindex_max()
const
;
43
44
std::string repr(
bool
name_keywords =
false
,
45
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
46
std::string str()
const override
;
47
48
private
:
49
// This is allows caching of the final_correction value between calls to
50
// get_integralsizes(_derivs); so get_final_correction can return it
51
mutable
double
_final_correction = 1.;
52
const
InterpType _interp_type;
53
const
unsigned
short
_order;
54
std::vector<std::pair<std::unique_ptr<GSLInterpolator>, std::unique_ptr<GSLInterpolator>>> _interps;
55
const
std::vector<SersicMixValues>& _knots;
56
const
double
_sersicindex_min;
57
const
double
_sersicindex_max;
58
};
59
60
}
// namespace lsst::gauss2d::fit
61
62
#endif
// LSST_GAUSS2D_FIT_HAS_GSL
63
#endif
// LSST_GAUSS2D_FIT_GSLSERSICMIXINTERPOLATOR_H
lsst::gauss2d::fit::SersicMixInterpolator
Definition
sersicmix.h:34
include
lsst
gauss2d
fit
gslsersicmixinterpolator.h
Generated by
1.17.0