lsst.gauss2d.fit
g199a45376c+7362695278
Toggle main menu visibility
Loading...
Searching...
No Matches
sersicmix.h
1
#ifndef LSST_GAUSS2D_FIT_SERSICMIX_H
2
#define LSST_GAUSS2D_FIT_SERSICMIX_H
3
4
#include <array>
5
#include <memory>
6
#include <stdexcept>
7
#include <vector>
8
9
#include "interpolation.h"
10
#include "lsst/gauss2d/object.h"
11
12
namespace
lsst::gauss2d::fit {
13
14
static
const
unsigned
short
SERSICMIX_ORDER_DEFAULT = 4;
15
19
class
IntegralSize :
public
Object {
20
public
:
21
explicit
IntegralSize(
double
integral_,
double
sigma_);
22
23
const
double
integral;
24
const
double
sigma;
25
26
std::string repr(
bool
name_keywords =
false
,
27
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
28
std::string str()
const override
;
29
};
30
34
class
SersicMixInterpolator
:
public
Object {
35
public
:
42
virtual
std::vector<IntegralSize>
get_integralsizes
(
double
sersicindex)
const
= 0;
43
virtual
std::vector<IntegralSize> get_integralsizes_derivs(
double
sersicindex)
const
= 0;
44
45
virtual
InterpType get_interptype()
const
= 0;
46
virtual
unsigned
short
get_order()
const
= 0;
47
};
48
49
const
std::shared_ptr<const SersicMixInterpolator> get_sersic_mix_interpolator_default(
50
unsigned
short
order = SERSICMIX_ORDER_DEFAULT);
51
55
class
SersicMixValues
:
public
Object {
56
public
:
63
explicit
SersicMixValues
(
double
sersicindex, std::vector<IntegralSize> values);
64
65
const
double
sersicindex;
66
const
std::vector<IntegralSize> values;
67
68
std::string repr(
bool
name_keywords =
false
,
69
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR)
const override
;
70
std::string str()
const override
;
71
};
72
73
inline
bool
operator<(
const
SersicMixValues
&lhs,
const
SersicMixValues
&rhs) {
74
return
lhs.sersicindex < rhs.sersicindex;
75
}
76
inline
bool
operator<(
const
SersicMixValues &lhs,
double
x) {
return
lhs.sersicindex < x; }
77
inline
bool
operator<(
double
x,
const
SersicMixValues &rhs) {
return
x < rhs.sersicindex; }
78
79
std::vector<SersicMixValues> get_sersic_mix_knots_copy(
unsigned
short
order);
80
81
const
std::vector<SersicMixValues> &get_sersic_mix_knots(
unsigned
short
order);
82
83
const
std::vector<SersicMixValues> &get_sersic_mix_knots_order4();
84
const
std::vector<SersicMixValues> &get_sersic_mix_knots_order8();
85
86
}
// namespace lsst::gauss2d::fit
87
88
#endif
lsst::gauss2d::fit::SersicMixInterpolator
Definition
sersicmix.h:34
lsst::gauss2d::fit::SersicMixInterpolator::get_integralsizes
virtual std::vector< IntegralSize > get_integralsizes(double sersicindex) const =0
lsst::gauss2d::fit::SersicMixValues
Definition
sersicmix.h:55
lsst::gauss2d::fit::SersicMixValues::SersicMixValues
SersicMixValues(double sersicindex, std::vector< IntegralSize > values)
Definition
sersicmix.cc:47
include
lsst
gauss2d
fit
sersicmix.h
Generated by
1.17.0