lsst.gauss2d.fit g199a45376c+3b7b3fd841
 
Loading...
Searching...
No Matches
parametricmodel.h
1#ifndef LSST_GAUSS2D_FIT_PARAMETRICMODEL_H
2#define LSST_GAUSS2D_FIT_PARAMETRICMODEL_H
3
4#include "lsst/gauss2d/evaluate.h"
5#include "lsst/gauss2d/gaussian.h"
6
7#include "channel.h"
8#include "parametric.h"
9
10namespace lsst::gauss2d::fit {
11typedef std::vector<std::array<size_t, lsst::gauss2d::N_EXTRA_MAP>> ExtraParamMap;
12typedef std::array<double, lsst::gauss2d::N_EXTRA_FACTOR> ExtraParamFactorValues;
13typedef std::vector<ExtraParamFactorValues> ExtraParamFactors;
14typedef std::vector<std::array<size_t, lsst::gauss2d::N_PARAMS_GAUSS2D>> GradParamMap;
15typedef std::vector<std::array<double, lsst::gauss2d::N_PARAMS_GAUSS2D>> GradParamFactors;
16
17typedef std::map<ParamBaseCRef, size_t> ParameterMap;
18
19// TODO: Expand on the method docs; add reasoning on the design
26public:
35 virtual void add_extra_param_map(const Channel& channel, ExtraParamMap& map_extra,
36 const GradParamMap& map_grad, ParameterMap& offsets) const
37 = 0;
44 virtual void add_extra_param_factors(const Channel& channel, ExtraParamFactors& factors) const = 0;
52 virtual void add_grad_param_map(const Channel& channel, GradParamMap& map, ParameterMap& offsets) const
53 = 0;
60 virtual void add_grad_param_factors(const Channel& channel, GradParamFactors& factors) const = 0;
68 virtual void set_extra_param_factors(const Channel& channel, ExtraParamFactors& factors,
69 size_t index) const
70 = 0;
78 virtual void set_grad_param_factors(const Channel& channel, GradParamFactors& factors, size_t index) const
79 = 0;
80
87 virtual std::unique_ptr<const lsst::gauss2d::Gaussians> get_gaussians(const Channel& channel) const = 0;
89 virtual size_t get_n_gaussians(const Channel& channel) const = 0;
90};
91
92} // namespace lsst::gauss2d::fit
93
94#endif
An observational channel, usually representing some range of wavelengths of light.
Definition channel.h:29
Definition parametricmodel.h:25
virtual void add_grad_param_factors(const Channel &channel, GradParamFactors &factors) const =0
virtual void add_extra_param_factors(const Channel &channel, ExtraParamFactors &factors) const =0
virtual void set_extra_param_factors(const Channel &channel, ExtraParamFactors &factors, size_t index) const =0
virtual std::unique_ptr< const lsst::gauss2d::Gaussians > get_gaussians(const Channel &channel) const =0
virtual void set_grad_param_factors(const Channel &channel, GradParamFactors &factors, size_t index) const =0
virtual size_t get_n_gaussians(const Channel &channel) const =0
Return the number of Gaussian sub-components controlled by this model.
virtual void add_grad_param_map(const Channel &channel, GradParamMap &map, ParameterMap &offsets) const =0
virtual void add_extra_param_map(const Channel &channel, ExtraParamMap &map_extra, const GradParamMap &map_grad, ParameterMap &offsets) const =0
Definition parametric.h:13