TrinityCore
Loading...
Searching...
No Matches
SFMTRand Class Reference

#include <SFMTRand.h>

Public Member Functions

 SFMTRand ()
 
uint32 RandomUInt32 ()
 
void * operator new (size_t size, std::nothrow_t const &)
 
void operator delete (void *ptr, std::nothrow_t const &)
 
void * operator new (size_t size)
 
void operator delete (void *ptr)
 
void * operator new[] (size_t size, std::nothrow_t const &)
 
void operator delete[] (void *ptr, std::nothrow_t const &)
 
void * operator new[] (size_t size)
 
void operator delete[] (void *ptr)
 

Private Attributes

sfmt_t _state
 

Detailed Description

Definition at line 28 of file SFMTRand.h.

Constructor & Destructor Documentation

◆ SFMTRand()

SFMTRand::SFMTRand ( )

Definition at line 60 of file SFMTRand.cpp.

61{
62 std::random_device dev;
63 if (dev.entropy() > 0)
64 {
65 std::array<uint32, SFMT_N32> seed;
66 std::generate(seed.begin(), seed.end(), std::ref(dev));
67
68 sfmt_init_by_array(&_state, seed.data(), seed.size());
69 }
70 else
71 sfmt_init_gen_rand(&_state, uint32(time(nullptr)));
72}
uint32_t uint32
Definition: Define.h:143
sfmt_t _state
Definition: SFMTRand.h:41

Member Function Documentation

◆ operator delete() [1/2]

void SFMTRand::operator delete ( void *  ptr)

Definition at line 94 of file SFMTRand.cpp.

95{
96 _mm_free(ptr);
97}

◆ operator delete() [2/2]

void SFMTRand::operator delete ( void *  ptr,
std::nothrow_t const &   
)

Definition at line 84 of file SFMTRand.cpp.

85{
86 _mm_free(ptr);
87}

◆ operator delete[]() [1/2]

void SFMTRand::operator delete[] ( void *  ptr)

Definition at line 114 of file SFMTRand.cpp.

115{
116 _mm_free(ptr);
117}

◆ operator delete[]() [2/2]

void SFMTRand::operator delete[] ( void *  ptr,
std::nothrow_t const &   
)

Definition at line 104 of file SFMTRand.cpp.

105{
106 _mm_free(ptr);
107}

◆ operator new() [1/2]

void * SFMTRand::operator new ( size_t  size)

Definition at line 89 of file SFMTRand.cpp.

90{
91 return _mm_malloc(size, 16);
92}

◆ operator new() [2/2]

void * SFMTRand::operator new ( size_t  size,
std::nothrow_t const &   
)

Definition at line 79 of file SFMTRand.cpp.

80{
81 return _mm_malloc(size, 16);
82}

◆ operator new[]() [1/2]

void * SFMTRand::operator new[] ( size_t  size)

Definition at line 109 of file SFMTRand.cpp.

110{
111 return _mm_malloc(size, 16);
112}

◆ operator new[]() [2/2]

void * SFMTRand::operator new[] ( size_t  size,
std::nothrow_t const &   
)

Definition at line 99 of file SFMTRand.cpp.

100{
101 return _mm_malloc(size, 16);
102}

◆ RandomUInt32()

uint32 SFMTRand::RandomUInt32 ( )

Definition at line 74 of file SFMTRand.cpp.

75{
76 return sfmt_genrand_uint32(&_state);
77}
+ Here is the caller graph for this function:

Member Data Documentation

◆ _state

sfmt_t SFMTRand::_state
private

Definition at line 41 of file SFMTRand.h.


The documentation for this class was generated from the following files: