Commit 280c07a9c182b791d23a44c7c82337e0b2efd775
1 parent
950dc556
Add opt() method.
Showing
3 changed files
with
14 additions
and
5 deletions
pyext/ctulimit.i
| @@ -48,6 +48,7 @@ public: | @@ -48,6 +48,7 @@ public: | ||
| 48 | void run(void); | 48 | void run(void); |
| 49 | void save(void); | 49 | void save(void); |
| 50 | const GObservations& obs(void) const; | 50 | const GObservations& obs(void) const; |
| 51 | + const GOptimizer* opt(void) const; | ||
| 51 | const double& diff_ulimit(void) const; | 52 | const double& diff_ulimit(void) const; |
| 52 | const double& flux_ulimit(void) const; | 53 | const double& flux_ulimit(void) const; |
| 53 | const double& eflux_ulimit(void) const; | 54 | const double& eflux_ulimit(void) const; |
src/ctulimit/ctulimit.cpp
| @@ -232,9 +232,6 @@ void ctulimit::run(void) | @@ -232,9 +232,6 @@ void ctulimit::run(void) | ||
| 232 | // Save original models | 232 | // Save original models |
| 233 | GModels models_orig = m_obs.models(); | 233 | GModels models_orig = m_obs.models(); |
| 234 | 234 | ||
| 235 | - // Allocate a new optimizer | ||
| 236 | - m_opt = new GOptimizerLM(); | ||
| 237 | - | ||
| 238 | // Initialise best fit optimizer | 235 | // Initialise best fit optimizer |
| 239 | GOptimizerLM best_opt; | 236 | GOptimizerLM best_opt; |
| 240 | 237 | ||
| @@ -418,7 +415,17 @@ void ctulimit::init_members(void) | @@ -418,7 +415,17 @@ void ctulimit::init_members(void) | ||
| 418 | m_flux_ulimit = 0.0; | 415 | m_flux_ulimit = 0.0; |
| 419 | m_diff_ulimit = 0.0; | 416 | m_diff_ulimit = 0.0; |
| 420 | m_eflux_ulimit = 0.0; | 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 | // Return | 430 | // Return |
| 424 | return; | 431 | return; |
| @@ -451,7 +458,7 @@ void ctulimit::copy_members(const ctulimit& app) | @@ -451,7 +458,7 @@ void ctulimit::copy_members(const ctulimit& app) | ||
| 451 | m_diff_ulimit = app.m_diff_ulimit; | 458 | m_diff_ulimit = app.m_diff_ulimit; |
| 452 | m_flux_ulimit = app.m_flux_ulimit; | 459 | m_flux_ulimit = app.m_flux_ulimit; |
| 453 | m_eflux_ulimit = app.m_eflux_ulimit; | 460 | m_eflux_ulimit = app.m_eflux_ulimit; |
| 454 | - m_opt = NULL; | 461 | + m_opt = app.m_opt->clone(); |
| 455 | 462 | ||
| 456 | // Extract model parameter | 463 | // Extract model parameter |
| 457 | get_model_parameter(); | 464 | get_model_parameter(); |
src/ctulimit/ctulimit.hpp
| @@ -68,6 +68,7 @@ public: | @@ -68,6 +68,7 @@ public: | ||
| 68 | void run(void); | 68 | void run(void); |
| 69 | void save(void); | 69 | void save(void); |
| 70 | const GObservations& obs(void) const; | 70 | const GObservations& obs(void) const; |
| 71 | + const GOptimizer* opt(void) const; | ||
| 71 | const double& diff_ulimit(void) const; | 72 | const double& diff_ulimit(void) const; |
| 72 | const double& flux_ulimit(void) const; | 73 | const double& flux_ulimit(void) const; |
| 73 | const double& eflux_ulimit(void) const; | 74 | const double& eflux_ulimit(void) const; |