From 4b5bd4dedf87eb7a2b164bd2dda66b52723c8db4 Mon Sep 17 00:00:00 2001 From: Tycho Date: Sat, 1 Feb 2014 05:14:31 -0800 Subject: Removed register keyword from Messinne Twister Removed register as it is meaningless in c++ and causes a depreciated warning in clang 3.4 in c++ mode for va_copy --- src/MersenneTwister.h | 52 +++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'src/MersenneTwister.h') diff --git a/src/MersenneTwister.h b/src/MersenneTwister.h index dc7134a93..784ac605d 100644 --- a/src/MersenneTwister.h +++ b/src/MersenneTwister.h @@ -162,9 +162,9 @@ inline void MTRand::initialize( const uint32 seed ) // See Knuth TAOCP Vol 2, 3rd Ed, p.106 for multiplier. // In previous versions, most significant bits (MSBs) of the seed affect // only MSBs of the state array. Modified 9 Jan 2002 by Makoto Matsumoto. - register uint32 *s = state; - register uint32 *r = state; - register int i = 1; + uint32 *s = state; + uint32 *r = state; + int i = 1; *s++ = seed & 0xffffffffUL; for( ; i < N; ++i ) { @@ -178,8 +178,8 @@ inline void MTRand::reload() // Generate N new values in state // Made clearer and faster by Matthew Bellew (matthew.bellew@home.com) static const int MmN = int(M) - int(N); // in case enums are unsigned - register uint32 *p = state; - register int i; + uint32 *p = state; + int i; for( i = N - M; i--; ++p ) *p = twist( p[M], p[0], p[1] ); for( i = M; --i; ++p ) @@ -205,9 +205,9 @@ inline void MTRand::seed( uint32 *const bigSeed, const uint32 seedLength ) // in each element are discarded. // Just call seed() if you want to get array from /dev/urandom initialize(19650218UL); - register int i = 1; - register uint32 j = 0; - register int k = ( N > seedLength ? N : seedLength ); + int i = 1; + uint32 j = 0; + int k = ( N > seedLength ? N : seedLength ); for( ; k; --k ) { state[i] = @@ -238,7 +238,7 @@ inline void MTRand::seed() // First try getting an array from /dev/urandom - /* // Commented out by FakeTruth because doing this 200 times a tick is SUUUUPEERRR SLOW!!~~!ÕNe + /* // Commented out by FakeTruth because doing this 200 times a tick is SUUUUPEERRR SLOW!!~~!\D5Ne FILE* urandom = fopen( "/dev/urandom", "rb" ); if( urandom ) { @@ -268,9 +268,9 @@ inline MTRand::MTRand() inline MTRand::MTRand( const MTRand& o ) { - register const uint32 *t = o.state; - register uint32 *s = state; - register int i = N; + const uint32 *t = o.state; + uint32 *s = state; + int i = N; for( ; i--; *s++ = *t++ ) {} left = o.left; pNext = &state[N-left]; @@ -284,7 +284,7 @@ inline MTRand::uint32 MTRand::randInt() if( left == 0 ) reload(); --left; - register uint32 s1; + uint32 s1; s1 = *pNext++; s1 ^= (s1 >> 11); s1 ^= (s1 << 7) & 0x9d2c5680UL; @@ -358,18 +358,18 @@ inline double MTRand::operator()() inline void MTRand::save( uint32* saveArray ) const { - register const uint32 *s = state; - register uint32 *sa = saveArray; - register int i = N; + const uint32 *s = state; + uint32 *sa = saveArray; + int i = N; for( ; i--; *sa++ = *s++ ) {} *sa = left; } inline void MTRand::load( uint32 *const loadArray ) { - register uint32 *s = state; - register uint32 *la = loadArray; - register int i = N; + uint32 *s = state; + uint32 *la = loadArray; + int i = N; for( ; i--; *s++ = *la++ ) {} left = *la; pNext = &state[N-left]; @@ -377,16 +377,16 @@ inline void MTRand::load( uint32 *const loadArray ) inline std::ostream& operator<<( std::ostream& os, const MTRand& mtrand ) { - register const MTRand::uint32 *s = mtrand.state; - register int i = mtrand.N; + const MTRand::uint32 *s = mtrand.state; + int i = mtrand.N; for( ; i--; os << *s++ << "\t" ) {} return os << mtrand.left; } inline std::istream& operator>>( std::istream& is, MTRand& mtrand ) { - register MTRand::uint32 *s = mtrand.state; - register int i = mtrand.N; + MTRand::uint32 *s = mtrand.state; + int i = mtrand.N; for( ; i--; is >> *s++ ) {} is >> mtrand.left; mtrand.pNext = &mtrand.state[mtrand.N-mtrand.left]; @@ -396,9 +396,9 @@ inline std::istream& operator>>( std::istream& is, MTRand& mtrand ) inline MTRand& MTRand::operator=( const MTRand& o ) { if( this == &o ) return (*this); - register const uint32 *t = o.state; - register uint32 *s = state; - register int i = N; + const uint32 *t = o.state; + uint32 *s = state; + int i = N; for( ; i--; *s++ = *t++ ) {} left = o.left; pNext = &state[N-left]; -- cgit v1.2.3 From aaddc98b46c2b918e908287f53a137d2fb5cf697 Mon Sep 17 00:00:00 2001 From: madmaxoft Date: Wed, 26 Feb 2014 21:37:38 +0100 Subject: Attempted fix for several GCC warnings. --- src/MersenneTwister.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/MersenneTwister.h') diff --git a/src/MersenneTwister.h b/src/MersenneTwister.h index 784ac605d..f4c7b0699 100644 --- a/src/MersenneTwister.h +++ b/src/MersenneTwister.h @@ -207,7 +207,7 @@ inline void MTRand::seed( uint32 *const bigSeed, const uint32 seedLength ) initialize(19650218UL); int i = 1; uint32 j = 0; - int k = ( N > seedLength ? N : seedLength ); + int k = ( (uint32)N > seedLength ? (uint32)N : seedLength ); for( ; k; --k ) { state[i] = -- cgit v1.2.3 From 9825dbfd34c65580d795065d1a82e7697b9c5cbd Mon Sep 17 00:00:00 2001 From: Tycho Date: Sun, 9 Mar 2014 11:21:42 -0700 Subject: Fixed Mesannine twister to use UInt32 --- src/MersenneTwister.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/MersenneTwister.h') diff --git a/src/MersenneTwister.h b/src/MersenneTwister.h index f4c7b0699..07b6b1e5c 100644 --- a/src/MersenneTwister.h +++ b/src/MersenneTwister.h @@ -59,10 +59,12 @@ #include #include +#include "Globals.h" + class MTRand { // Data public: - typedef long uint32; // unsigned integer type, at least 32 bits + typedef UInt32 uint32; // unsigned integer type, at least 32 bits enum { N = 624 }; // length of state vector enum { SAVE = N + 1 }; // length of array for save() -- cgit v1.2.3 From 1bf99b5fd26d142106d7a097900ebfe8a6279ad4 Mon Sep 17 00:00:00 2001 From: Tycho Date: Sun, 9 Mar 2014 11:47:22 -0700 Subject: Be more parinoid about int sizes --- src/MersenneTwister.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/MersenneTwister.h') diff --git a/src/MersenneTwister.h b/src/MersenneTwister.h index 07b6b1e5c..2c5440f17 100644 --- a/src/MersenneTwister.h +++ b/src/MersenneTwister.h @@ -59,8 +59,6 @@ #include #include -#include "Globals.h" - class MTRand { // Data public: -- cgit v1.2.3 From 30353cd2285d8d2e9ec38c1015c7d45dbdb82b39 Mon Sep 17 00:00:00 2001 From: Tycho Date: Mon, 10 Mar 2014 10:24:44 -0700 Subject: Fixed MTRand warnings --- src/MersenneTwister.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/MersenneTwister.h') diff --git a/src/MersenneTwister.h b/src/MersenneTwister.h index 2c5440f17..759b8a1ae 100644 --- a/src/MersenneTwister.h +++ b/src/MersenneTwister.h @@ -72,7 +72,7 @@ protected: uint32 state[N]; // internal state uint32 *pNext; // next value to get from state - int left; // number of values left before reload needed + uint32 left; // number of values left before reload needed // Methods public: @@ -164,7 +164,7 @@ inline void MTRand::initialize( const uint32 seed ) // only MSBs of the state array. Modified 9 Jan 2002 by Makoto Matsumoto. uint32 *s = state; uint32 *r = state; - int i = 1; + uint32 i = 1; *s++ = seed & 0xffffffffUL; for( ; i < N; ++i ) { @@ -205,9 +205,9 @@ inline void MTRand::seed( uint32 *const bigSeed, const uint32 seedLength ) // in each element are discarded. // Just call seed() if you want to get array from /dev/urandom initialize(19650218UL); - int i = 1; + uint32 i = 1; uint32 j = 0; - int k = ( (uint32)N > seedLength ? (uint32)N : seedLength ); + uint32 k = ( (uint32)N > seedLength ? (uint32)N : seedLength ); for( ; k; --k ) { state[i] = -- cgit v1.2.3