Commit cfa7a20be541996d8f79e19f1b1e8da7e1d0c294
1 parent
0e4568e6
ctlike::reoptimize_lm() now works on a clone of the optimizer
Showing
1 changed file
with
7 additions
and
4 deletions
src/ctlike/ctlike.cpp
| ... | ... | @@ -530,23 +530,26 @@ double ctlike::reoptimize_lm(void) |
| 530 | 530 | log.indent(1); |
| 531 | 531 | } |
| 532 | 532 | |
| 533 | + // Create a clone of the optimizer for the re-optimisation | |
| 534 | + GOptimizer* opt = m_opt->clone(); | |
| 535 | + | |
| 533 | 536 | // Perform LM optimization |
| 534 | - m_obs.optimize(*m_opt); | |
| 537 | + m_obs.optimize(*opt); | |
| 535 | 538 | |
| 536 | 539 | // Optionally refit |
| 537 | 540 | if (m_refit) { |
| 538 | - m_obs.optimize(*m_opt); | |
| 541 | + m_obs.optimize(*opt); | |
| 539 | 542 | } |
| 540 | 543 | |
| 541 | 544 | // Store maximum log likelihood value |
| 542 | - double logL = -(m_opt->value()); | |
| 545 | + double logL = -(opt->value()); | |
| 543 | 546 | |
| 544 | 547 | // Write optimization results |
| 545 | 548 | log.indent(0); |
| 546 | 549 | if (logTerse()) { |
| 547 | 550 | log << std::endl; |
| 548 | 551 | log.header1("Maximum likelihood re-optimisation results"); |
| 549 | - log << *m_opt << std::endl; | |
| 552 | + log << *opt << std::endl; | |
| 550 | 553 | } |
| 551 | 554 | |
| 552 | 555 | // Return | ... | ... |