Commit 9fef967fb9fa4eb2de94258328e74545012b1621

Authored by Jürgen Knödlseder
1 parent 444d0496

Correct random number generator seed value initialization.

The seed value initialization of the random number generator was not correct, leading always to seeds of 0, irrespectively of the specified seed value. This has been fixed.
Showing 1 changed file with 12 additions and 1 deletions
src/ctobssim/ctobssim.cpp
... ... @@ -238,6 +238,16 @@ void ctobssim::run(void)
238 238 log << std::endl;
239 239 }
240 240  
  241 + // Write seed values into logger
  242 + if (logTerse()) {
  243 + log << std::endl;
  244 + log.header1("Seed values");
  245 + for (int i = 0; i < m_rans.size(); ++i) {
  246 + log << parformat("Seed "+str(i));
  247 + log << str(m_rans[i].seed()) << std::endl;
  248 + }
  249 + }
  250 +
241 251 // Write observation(s) into logger
242 252 if (logTerse()) {
243 253 log << std::endl;
... ... @@ -469,7 +479,8 @@ void ctobssim::get_parameters(void)
469 479 // value has not been used already for another observation.
470 480 bool repeat = false;
471 481 do {
472   - new_seed = (unsigned long long int)(master.int64() * 1.0e2);
  482 + new_seed = (unsigned long long int)(master.uniform() * 1.0e10) +
  483 + m_seed;
473 484 repeat = false;
474 485 for (int j = 0; j < seeds.size(); ++j) {
475 486 if (new_seed == seeds[j]) {
... ...