diff options
Diffstat (limited to 'dep/SFMT/SFMT.h')
| -rw-r--r-- | dep/SFMT/SFMT.h | 87 | 
1 files changed, 46 insertions, 41 deletions
diff --git a/dep/SFMT/SFMT.h b/dep/SFMT/SFMT.h index 4004ae1db6e..3d15d651e5b 100644 --- a/dep/SFMT/SFMT.h +++ b/dep/SFMT/SFMT.h @@ -150,9 +150,13 @@ __m128i const &c, __m128i const &d, __m128i const &mask) {      return z2;  } +namespace boost { +    template <typename T> class thread_specific_ptr; +} +  // Class for SFMT generator  class SFMTRand {                              // Encapsulate random number generator -    friend class ACE_TSS<SFMTRand>; +    friend class boost::thread_specific_ptr<SFMTRand>;  public:      SFMTRand() @@ -243,6 +247,47 @@ public:          y = ((uint32_t*)state)[ix++];          return y;      } + +    void* operator new(size_t size, std::nothrow_t const&) +    { +        return _mm_malloc(size, 16); +    } + +        void operator delete(void* ptr, std::nothrow_t const&) +    { +        _mm_free(ptr); +    } + +    void* operator new(size_t size) +    { +        return _mm_malloc(size, 16); +    } + +        void operator delete(void* ptr) +    { +        _mm_free(ptr); +    } + +    void* operator new[](size_t size, std::nothrow_t const&) +    { +        return _mm_malloc(size, 16); +    } + +        void operator delete[](void* ptr, std::nothrow_t const&) +    { +        _mm_free(ptr); +    } + +        void* operator new[](size_t size) +    { +        return _mm_malloc(size, 16); +    } + +        void operator delete[](void* ptr) +    { +        _mm_free(ptr); +    } +  private:      void Init2()                                   // Various initializations and period certification      { @@ -307,46 +352,6 @@ private:          ix = 0;      } -    void* operator new(size_t size, std::nothrow_t const&) -    { -        return _mm_malloc(size, 16); -    } - -    void operator delete(void* ptr, std::nothrow_t const&) -    { -        _mm_free(ptr); -    } - -    void* operator new(size_t size) -    { -        return _mm_malloc(size, 16); -    } - -    void operator delete(void* ptr) -    { -        _mm_free(ptr); -    } - -    void* operator new[](size_t size, std::nothrow_t const&) -    { -        return _mm_malloc(size, 16); -    } - -    void operator delete[](void* ptr, std::nothrow_t const&) -    { -        _mm_free(ptr); -    } - -    void* operator new[](size_t size) -    { -        return _mm_malloc(size, 16); -    } - -    void operator delete[](void* ptr) -    { -        _mm_free(ptr); -    } -      __m128i  mask;                                // AND mask      __m128i  state[SFMT_N];                       // State vector for SFMT generator      uint32_t ix;                                  // Index into state array  | 
