|
FreeTensor
|
#include <random.h>
Public Types | |
| typedef RNG::result_type | result_type |
| sub-engines for each thread | |
Public Member Functions | |
| OpenMPRandomEngine (RNG::result_type seed) | |
| OpenMPRandomEngine (OpenMPRandomEngine &&)=default | |
| OpenMPRandomEngine & | operator= (OpenMPRandomEngine &&)=default |
| RNG::result_type | operator() () |
| OpenMPRandomEngine (const OpenMPRandomEngine &)=delete | |
| OpenMPRandomEngine & | operator= (const OpenMPRandomEngine &)=delete |
Static Public Member Functions | |
| static constexpr RNG::result_type | min () |
| static constexpr RNG::result_type | max () |
Thread-safe random engine for OpenMP threads
Each thread owns its private sub- random engine, and calls to OpenMPRandomEngine is lock-free
For debugging with deterministic psudo random numbers, just ensure two things:
parallel for schedule(static)) | typedef RNG::result_type freetensor::OpenMPRandomEngine::result_type |
sub-engines for each thread
| freetensor::OpenMPRandomEngine::OpenMPRandomEngine | ( | RNG::result_type | seed | ) |
Requried by STL, but not enforced in std::uniform_random_bit_generator
|
delete |
Disable copy so we won't accidentally repeat some sequences
|
default |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |
| OpenMPRandomEngine::RNG::result_type freetensor::OpenMPRandomEngine::operator() | ( | ) |
|
delete |
|
default |