Commit 280c07a9c182b791d23a44c7c82337e0b2efd775

Authored by Jürgen Knödlseder
1 parent 950dc556

Add opt() method.

pyext/ctulimit.i
... ... @@ -48,6 +48,7 @@ public:
48 48 void run(void);
49 49 void save(void);
50 50 const GObservations& obs(void) const;
  51 + const GOptimizer* opt(void) const;
51 52 const double& diff_ulimit(void) const;
52 53 const double& flux_ulimit(void) const;
53 54 const double& eflux_ulimit(void) const;
... ...
src/ctulimit/ctulimit.cpp
... ... @@ -232,9 +232,6 @@ void ctulimit::run(void)
232 232 // Save original models
233 233 GModels models_orig = m_obs.models();
234 234  
235   - // Allocate a new optimizer
236   - m_opt = new GOptimizerLM();
237   -
238 235 // Initialise best fit optimizer
239 236 GOptimizerLM best_opt;
240 237  
... ... @@ -418,7 +415,17 @@ void ctulimit::init_members(void)
418 415 m_flux_ulimit = 0.0;
419 416 m_diff_ulimit = 0.0;
420 417 m_eflux_ulimit = 0.0;
421   - m_opt = NULL;
  418 + m_opt = NULL;
  419 +
  420 + // Allocate LM optimizer
  421 + GOptimizerLM* opt = new GOptimizerLM();
  422 +
  423 + // Set optimizer parameters
  424 + opt->max_iter(m_max_iter);
  425 + opt->max_stalls(10);
  426 +
  427 + // Set optimizer pointer
  428 + m_opt = opt;
422 429  
423 430 // Return
424 431 return;
... ... @@ -451,7 +458,7 @@ void ctulimit::copy_members(const ctulimit& app)
451 458 m_diff_ulimit = app.m_diff_ulimit;
452 459 m_flux_ulimit = app.m_flux_ulimit;
453 460 m_eflux_ulimit = app.m_eflux_ulimit;
454   - m_opt = NULL;
  461 + m_opt = app.m_opt->clone();
455 462  
456 463 // Extract model parameter
457 464 get_model_parameter();
... ...
src/ctulimit/ctulimit.hpp
... ... @@ -68,6 +68,7 @@ public:
68 68 void run(void);
69 69 void save(void);
70 70 const GObservations& obs(void) const;
  71 + const GOptimizer* opt(void) const;
71 72 const double& diff_ulimit(void) const;
72 73 const double& flux_ulimit(void) const;
73 74 const double& eflux_ulimit(void) const;
... ...