Commit 9fef967fb9fa4eb2de94258328e74545012b1621
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]) { | ... | ... |