TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
SFMT.h File Reference
#include <emmintrin.h>
#include "randomc.h"
#include <time.h>
#include <new>
+ Include dependency graph for SFMT.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

singleton  boost::thread_specific_ptr< T >
 
class  SFMTRand
 

Namespaces

 boost
 

Macros

#define MEXP   11213
 
#define SFMT_N   88
 
#define SFMT_M   68
 
#define SFMT_SL1   14
 
#define SFMT_SL2   3
 
#define SFMT_SR1   7
 
#define SFMT_SR2   3
 
#define SFMT_MASK   0xeffff7fb,0xffffffef,0xdfdfbfff,0x7fffdbfd
 
#define SFMT_PARITY   1,0,0xe8148000,0xd0c7afa3
 

Functions

static __m128i sfmt_recursion (__m128i const &a, __m128i const &b, __m128i const &c, __m128i const &d, __m128i const &mask)
 

Macro Definition Documentation

#define MEXP   11213
#define SFMT_M   68
#define SFMT_MASK   0xeffff7fb,0xffffffef,0xdfdfbfff,0x7fffdbfd
#define SFMT_N   88
#define SFMT_PARITY   1,0,0xe8148000,0xd0c7afa3
#define SFMT_SL1   14
#define SFMT_SL2   3
#define SFMT_SR1   7
#define SFMT_SR2   3

Function Documentation

static __m128i sfmt_recursion ( __m128i const a,
__m128i const b,
__m128i const c,
__m128i const d,
__m128i const mask 
)
inlinestatic
139  {
140  __m128i a1, b1, c1, d1, z1, z2;
141  b1 = _mm_srli_epi32(b, SFMT_SR1);
142  a1 = _mm_slli_si128(a, SFMT_SL2);
143  c1 = _mm_srli_si128(c, SFMT_SR2);
144  d1 = _mm_slli_epi32(d, SFMT_SL1);
145  b1 = _mm_and_si128(b1, mask);
146  z1 = _mm_xor_si128(a, a1);
147  z2 = _mm_xor_si128(b1, d1);
148  z1 = _mm_xor_si128(z1, c1);
149  z2 = _mm_xor_si128(z1, z2);
150  return z2;
151 }
#define SFMT_SR1
Definition: SFMT.h:80
#define SFMT_SR2
Definition: SFMT.h:81
#define SFMT_SL1
Definition: SFMT.h:78
#define SFMT_SL2
Definition: SFMT.h:79

+ Here is the caller graph for this function: