24#ifndef TVM_S_TIR_RANDOM_ENGINE_H_
25#define TVM_S_TIR_RANDOM_ENGINE_H_
27#include <tvm/ffi/error.h>
68 std::random_device
rd;
84 return *rand_state_ptr_;
92 if (rand_state == -1) {
97 if (rand_state == 0) {
100 if (rand_state < 0) {
121 return ((*
this)() * 32767) % 1999999973;
RAII wrapper function to enter and exit a context object similar to python's with syntax.
Definition with_context.h:59
This linear congruential engine is a drop-in replacement for std::minstd_rand. It strictly correspond...
Definition random_engine.h:47
static constexpr TRandState multiplier
The multiplier.
Definition random_engine.h:53
void Seed(TRandState rand_state)
Change the start random state of RNG with the seed of a new random state value.
Definition random_engine.h:109
LinearCongruentialEngine(TRandState *rand_state_ptr)
Construct a random number generator with a random state pointer.
Definition random_engine.h:131
TRandState ForkSeed()
Fork a new seed for another RNG from current random state.
Definition random_engine.h:118
static constexpr TRandState modulus
The modulus.
Definition random_engine.h:57
static TRandState DeviceRandom()
Get a device random state.
Definition random_engine.h:67
result_type operator()()
Operator to move the random state to the next and return the new random state. According to definitio...
Definition random_engine.h:82
static TRandState NormalizeSeed(TRandState rand_state)
Normalize the random seed to the range of [1, modulus - 1].
Definition random_engine.h:91
static constexpr result_type max()
The maximum possible value of random state here.
Definition random_engine.h:61
int64_t TRandState
Definition random_engine.h:49
static constexpr result_type min()
The minimum possible value of random state here.
Definition random_engine.h:59
static constexpr TRandState increment
The increment.
Definition random_engine.h:55
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition analyzer.h:40