pulsatrix
Loading...
Searching...
No Matches
determinism.hpp File Reference

One global seed for everything that isn't given its own, and a deterministic mode that forbids nondeterministic computation (roadmap FND-7). More...

#include <cstdint>
Include dependency graph for determinism.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  pulsatrix
 

Functions

void pulsatrix::set_seed (uint64_t seed)
 Sets the global seed and restarts the seed stream next_seed() draws from.
 
uint64_t pulsatrix::global_seed ()
 The seed most recently passed to set_seed() (0 by default).
 
uint64_t pulsatrix::next_seed ()
 The next seed in the global stream: a distinct, well-mixed 64-bit value per call, reproducible for a given global seed. Components built without an explicit seed take theirs from here, so two of them never share a random stream by accident.
 
void pulsatrix::set_deterministic (bool enabled)
 Turns deterministic mode on (the default) or off.
 
bool pulsatrix::deterministic ()
 Whether deterministic mode is on.
 
void pulsatrix::check_deterministic_allowed (const char *operation)
 Guard for a nondeterministic code path: call it before running one.
 

Detailed Description

One global seed for everything that isn't given its own, and a deterministic mode that forbids nondeterministic computation (roadmap FND-7).