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 | 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; | ... | ... |