1#ifndef LSST_GAUSS2D_FIT_PARAMETRICMODEL_H
2#define LSST_GAUSS2D_FIT_PARAMETRICMODEL_H
4#include "lsst/gauss2d/evaluate.h"
5#include "lsst/gauss2d/gaussian.h"
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;
17typedef std::map<ParamBaseCRef, size_t> ParameterMap;
36 const GradParamMap& map_grad, ParameterMap& offsets)
const
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