pcg-cpp
pcg-cpp copied to clipboard
Results from separate seed() and set_stream() differ from two-argument seed()
When I seed and set the stream separately I get a different result than if I do that with a single call. Is that expected?
Example code:
#include <iostream>
#include "pcg_random.hpp"
int main(void) {
pcg64 rng;
rng.seed(20240409);
std::cout << rng << std::endl;
rng.set_stream(90404202);
std::cout << rng << std::endl;
rng.seed(20240409, 90404202);
std::cout << rng << std::endl;
return 0;
}
Output:
47026247687942121848144207491837523525 117397592171526113268558934119004209487 232695090976826000214660542883178056279
47026247687942121848144207491837523525 180808405 232695090976826000214660542883178056279
47026247687942121848144207491837523525 180808405 324486960932314774260885781527366674683
I would have expected the second and third line to be identical. While that is true for the stream indicator (second number), this is not the case for the RNG state (third number).