Commit 96602a11dc5a53703bbdb2a49c5bfc88311d5c35
1 parent
d774f1a0
Add warning to ctlike if all parameters are fixed.
Showing
1 changed file
with
25 additions
and
2 deletions
src/ctlike/ctlike.cpp
| @@ -259,8 +259,8 @@ void ctlike::run(void) | @@ -259,8 +259,8 @@ void ctlike::run(void) | ||
| 259 | if (ts_srcs.size() > 0) { | 259 | if (ts_srcs.size() > 0) { |
| 260 | 260 | ||
| 261 | // Store original maximum likelihood and models | 261 | // Store original maximum likelihood and models |
| 262 | - double logL_src = m_logL; | ||
| 263 | - GModels models = m_obs.models(); | 262 | + double logL_src = m_logL; |
| 263 | + GModels models = m_obs.models(); | ||
| 264 | 264 | ||
| 265 | // Loop over stored models, remove source and refit | 265 | // Loop over stored models, remove source and refit |
| 266 | for (int i = 0; i < ts_srcs.size(); ++i) { | 266 | for (int i = 0; i < ts_srcs.size(); ++i) { |
| @@ -426,6 +426,29 @@ void ctlike::optimize_lm(void) | @@ -426,6 +426,29 @@ void ctlike::optimize_lm(void) | ||
| 426 | log.indent(1); | 426 | log.indent(1); |
| 427 | } | 427 | } |
| 428 | 428 | ||
| 429 | + // Compute number of fitted parameters | ||
| 430 | + int nfit = 0; | ||
| 431 | + for (int i = 0; i < m_obs.models().size(); ++i) { | ||
| 432 | + const GModel* model = m_obs.models()[i]; | ||
| 433 | + for (int k = 0; k < model->size(); ++k) { | ||
| 434 | + if ((*model)[k].is_free()) { | ||
| 435 | + nfit++; | ||
| 436 | + } | ||
| 437 | + } | ||
| 438 | + } | ||
| 439 | + | ||
| 440 | + // Notify if all parameters are fixed | ||
| 441 | + if (nfit == 0) { | ||
| 442 | + if (logTerse()) { | ||
| 443 | + log << "WARNING: All model parameters are fixed!"; | ||
| 444 | + log << std::endl; | ||
| 445 | + log << " ctlike will proceed without fitting parameters."; | ||
| 446 | + log << std::endl; | ||
| 447 | + log << " All curvature matrix elements will be zero."; | ||
| 448 | + log << std::endl; | ||
| 449 | + } | ||
| 450 | + } | ||
| 451 | + | ||
| 429 | // Perform LM optimization | 452 | // Perform LM optimization |
| 430 | m_obs.optimize(*m_opt); | 453 | m_obs.optimize(*m_opt); |
| 431 | 454 |