14GX_CORE_NAMESPACE_BEGIN()
44 GX_FORCE_INLINE f32
getRandomF32(
void){
return static_cast<f32
>(getRandomU32()) /
static_cast<f32
>(UINT_MAX); }
48 GX_FORCE_INLINE f64
getRandomF64(
void){
return static_cast<f64
>((
static_cast<u64
>(getRandomU32()) << 32) |
static_cast<u64
>(getRandomU32())) /
static_cast<f64
>(ULLONG_MAX); }
100 void updateTable(
void);
114GX_CORE_NAMESPACE_END()
116#define GX_DRAND() GxThread::getCurrentThread()->getRandomGenerator()->getRandomF64()
117#define GX_FRAND() GxThread::getCurrentThread()->getRandomGenerator()->getRandomF32()
118#define GX_FRAND_MIN_MAX( min, max ) GxThread::getCurrentThread()->getRandomGenerator()->getRandomF32( min, max )
119#define GX_RAND() GxThread::getCurrentThread()->getRandomGenerator()->getRandomU32()
120#define GX_SET_RANDOM_SEED(seed) GxThread::getCurrentThread()->getRandomGenerator()->initialize(seed)
#define GX_PROHIBIT_COPY(__CLASS__)
コピー禁止
Definition GxBase.h:233
乱数クラス
Definition GxRandom.h:20
GX_FORCE_INLINE f32 getRandomF32(void)
乱数生成(32bit浮動少数)
Definition GxRandom.h:44
virtual void initialize(u32 seed)=0
初期化
GX_FORCE_INLINE f32 getRandomF32(f32 min, f32 max)
乱数生成(32bit浮動少数,範囲指定)
Definition GxRandom.h:46
GX_FORCE_INLINE f64 getRandomF64(void)
乱数生成(64bit浮動少数)
Definition GxRandom.h:48
virtual ~GxRandom(void)
デストラクタ
Definition GxRandom.h:29
virtual u32 getRandomU32(void)=0
乱数生成(整数)
GxRandom(void)
デフォルトコンストラクタ
Definition GxRandom.h:27
メルセンヌツイスター乱数クラス
Definition GxRandom.h:57
static constexpr u32 MAX_TABLE
テーブル数
Definition GxRandom.h:64
~GxRandomMersenneTwister(void) override
デストラクタ
Definition GxRandom.h:77
u32 getRandomU32(void) override
乱数生成(整数)
Definition GxRandom.cpp:51
GxRandomMersenneTwister(void)
デフォルトコンストラクタ
Definition GxRandom.cpp:17
void initialize(u32 seed) override
コピー禁止宣言
Definition GxRandom.cpp:36