25#include <boost/timer/timer.hpp>
27#include "ElementsKernel/ProgramHeaders.h"
57template <
typename ImageType>
83template <
typename ImageType>
90 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height, x, y)
95 double getValue(
double x,
double y)
const override {
return 0.0; }
99 ImageType image = Traits::factory(size_x, size_y);
104template <
typename ImageType>
111 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height, x, y)
116 double getValue(
double x,
double y)
const override {
return 0.0; }
120 ImageType image = Traits::factory(size_x, size_y);
124 Traits::at(image, x, y) = x+y;
133template <
typename ImageType>
140 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height, x, y)
145 double getValue(
double x,
double y)
const override {
return 0.0; }
149 ImageType image = Traits::factory(size_x, size_y);
153 Traits::at(image, x, y) =
std::exp(
float(x+y));
161template <
typename ImageType>
168 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height, x, y)
173 double getValue(
double x,
double y)
const override {
return 0.0; }
177 ImageType image = Traits::factory(size_x, size_y);
181 Traits::at(image, x, y) = 2.0f *
std::exp(-1.5f *
std::pow(
float(x*x+y*y), 1.f / 4.0f));;
215 int image_size = 256;
248 component_list.
clear();
251 std::move(component_list), xs, ys, rot, 256, 256, x_param, y_param));
255 int image_size = 256;
289 xs, ys, rot, 256, 256, x_param, y_param, flux,
std::make_tuple(1, 0, 0, 1)));
292 int image_size = 256;
324 xs, ys, rot, 256, 256, x_param, y_param));
327 int image_size = 256;
345 for (
int i=0; i<iterations; i++) {
346 frame_model.rasterToImage(image);
355 int iterations = 300;
365 logger.info() <<
"Testing with empty frame";
367 boost::timer::auto_cpu_timer t;
370 logger.info() <<
"Testing with dummy (nop) model";
372 boost::timer::auto_cpu_timer t;
375 logger.info() <<
"Testing with dummy (fill) model";
377 boost::timer::auto_cpu_timer t;
380 logger.info() <<
"Testing with dummy (fill exp) model";
382 boost::timer::auto_cpu_timer t;
385 logger.info() <<
"Testing with dummy (sersic) model";
387 boost::timer::auto_cpu_timer t;
390 logger.info() <<
"Testing with old style Sersic model";
392 boost::timer::auto_cpu_timer t;
395 logger.info() <<
"Testing with compact Sersic model";
397 boost::timer::auto_cpu_timer t;
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeSersicFrameModel()
Elements::ExitCode mainMethod(std::map< std::string, po::variable_value > &args) override
std::shared_ptr< VectorImage< SeFloat > > measureRasterToImage(int iterations, T &frame_model)
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeCompactSersicFrameModel()
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeDummyFrameModel()
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeEmptyFrameModel()
virtual ~DummyExpModel()=default
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
double getValue(double x, double y) const override
DummyExpModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
virtual ~DummyFillModel()=default
DummyFillModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
double getValue(double x, double y) const override
DummyModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
virtual ~DummyModel()=default
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
double getValue(double x, double y) const override
double getPixelScale() const
void convolve(ImageType &) const
std::size_t getSize() const
std::shared_ptr< VectorImage< SourceXtractor::SeFloat > > m_kernel
std::shared_ptr< VectorImage< SourceXtractor::SeFloat > > getScaledKernel(double) const
double getValue(double x, double y) const override
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
virtual ~DummySersicModel()=default
DummySersicModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
static Logging getLogger(const std::string &name="")
ExtendedModel(std::vector< std::unique_ptr< ModelComponent > > &&component_list, std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation_angle, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
T emplace_back(T... args)
#define MAIN_FOR(ELEMENTS_PROGRAM_NAME)
static Elements::Logging logger
std::unique_ptr< T > make_unique(Args &&... args)
std::shared_ptr< ImageInterfaceType > ImageInterfaceTypePtr