Some of the classes in TRSL need random numbers. If a class needs only one random number (e.g. trsl::is_picked_systematic), it is generally possible to provide it directly. It's then up to the user to take care of the random generator. More...
Some of the classes in TRSL need random numbers. If a class needs only one random number (e.g. trsl::is_picked_systematic), it is generally possible to provide it directly. It's then up to the user to take care of the random generator.
Another possibility is to use TRSL-internal random capabilities, implemented using system random number generators. By default, the std::rand
function is used.
The std::rand
generator that comes with BSD systems (including MacOS X) has slight issues — e.g. some bits of the returned numbers are not usable. However, BSD systems provide a second, better random number generator through a function named ::random
. This function will be used instead of std::rand
if TRSL_USE_BSD_BETTER_RANDOM_GENERATOR is defined. In that case, seeding should be done through ::srandom
. Note that in GNU/Linux systems, both std::rand
and ::random
use the same generator.
When relying on TRSL-internal std::rand/::random
calls, the user is still responsible for seeding the random number generator.