aboutsummaryrefslogtreecommitdiff
path: root/dep
diff options
context:
space:
mode:
Diffstat (limited to 'dep')
-rw-r--r--dep/SFMT/SFMT.h87
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