diff -urN tinymt.orig/tinymt32.c tinymt/tinymt32.c --- tinymt.orig/tinymt32.c 2014-10-07 00:55:24.212007613 +0200 +++ tinymt/tinymt32.c 2014-10-07 00:55:24.212007613 +0200 @@ -60,17 +60,18 @@ * @param seed a 32-bit unsigned integer used as a seed. */ void tinymt32_init(tinymt32_t * random, uint32_t seed) { + int i; random->status[0] = seed; random->status[1] = random->mat1; random->status[2] = random->mat2; random->status[3] = random->tmat; - for (int i = 1; i < MIN_LOOP; i++) { + for (i = 1; i < MIN_LOOP; i++) { random->status[i & 3] ^= i + UINT32_C(1812433253) * (random->status[(i - 1) & 3] ^ (random->status[(i - 1) & 3] >> 30)); } period_certification(random); - for (int i = 0; i < PRE_LOOP; i++) { + for (i = 0; i < PRE_LOOP; i++) { tinymt32_next_state(random); } } diff -urN tinymt.orig/tinymt32.h tinymt/tinymt32.h --- tinymt.orig/tinymt32.h 2014-10-07 00:55:24.212007613 +0200 +++ tinymt/tinymt32.h 2014-10-07 00:55:24.212007613 +0200 @@ -16,8 +16,17 @@ * LICENSE.txt */ -#include -#include +#include "hbapi.h" + +#if defined( __BORLANDC__ ) +# pragma warn -inl +#endif + +#if ! defined( UINT32_C ) +# define UINT32_C( val ) ( val##U ) +#endif +#define uint32_t HB_U32 +#define int32_t HB_I32 #define TINYMT32_MEXP 127 #define TINYMT32_SH0 1 @@ -52,12 +61,13 @@ * @param random not used * @return always 127 */ -inline static int tinymt32_get_mexp( +_HB_INLINE_ static int tinymt32_get_mexp( tinymt32_t * random __attribute__((unused))) { return TINYMT32_MEXP; } #else -inline static int tinymt32_get_mexp(tinymt32_t * random) { +_HB_INLINE_ static int tinymt32_get_mexp(tinymt32_t * random) { + HB_SYMBOL_UNUSED( random ); return TINYMT32_MEXP; } #endif @@ -67,7 +77,7 @@ * Users should not call this function directly. * @param random tinymt internal status */ -inline static void tinymt32_next_state(tinymt32_t * random) { +_HB_INLINE_ static void tinymt32_next_state(tinymt32_t * random) { uint32_t x; uint32_t y; @@ -91,7 +101,7 @@ * @param random tinymt internal status * @return 32-bit unsigned pseudorandom number */ -inline static uint32_t tinymt32_temper(tinymt32_t * random) { +_HB_INLINE_ static uint32_t tinymt32_temper(tinymt32_t * random) { uint32_t t0, t1; t0 = random->status[3]; #if defined(LINEARITY_CHECK) @@ -112,7 +122,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 <= r < 2.0) */ -inline static float tinymt32_temper_conv(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_temper_conv(tinymt32_t * random) { uint32_t t0, t1; union { uint32_t u; @@ -139,7 +149,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 < r < 2.0) */ -inline static float tinymt32_temper_conv_open(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_temper_conv_open(tinymt32_t * random) { uint32_t t0, t1; union { uint32_t u; @@ -165,7 +175,7 @@ * @param random tinymt internal status * @return 32-bit unsigned integer r (0 <= r < 2^32) */ -inline static uint32_t tinymt32_generate_uint32(tinymt32_t * random) { +_HB_INLINE_ static uint32_t tinymt32_generate_uint32(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper(random); } @@ -178,7 +188,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 <= r < 1.0) */ -inline static float tinymt32_generate_float(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_generate_float(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper(random) * TINYMT32_MUL; } @@ -189,7 +199,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 <= r < 2.0) */ -inline static float tinymt32_generate_float12(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_generate_float12(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper_conv(random); } @@ -200,7 +210,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 <= r < 1.0) */ -inline static float tinymt32_generate_float01(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_generate_float01(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper_conv(random) - 1.0f; } @@ -211,7 +221,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 < r <= 1.0) */ -inline static float tinymt32_generate_floatOC(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_generate_floatOC(tinymt32_t * random) { tinymt32_next_state(random); return 1.0f - tinymt32_generate_float(random); } @@ -222,7 +232,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 < r < 1.0) */ -inline static float tinymt32_generate_floatOO(tinymt32_t * random) { +_HB_INLINE_ static float tinymt32_generate_floatOO(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper_conv_open(random) - 1.0f; } @@ -235,7 +245,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 < r <= 1.0) */ -inline static double tinymt32_generate_32double(tinymt32_t * random) { +_HB_INLINE_ static double tinymt32_generate_32double(tinymt32_t * random) { tinymt32_next_state(random); return tinymt32_temper(random) * (1.0 / 4294967296.0); } diff -urN tinymt.orig/tinymt64.c tinymt/tinymt64.c --- tinymt.orig/tinymt64.c 2014-10-07 00:55:24.212007613 +0200 +++ tinymt/tinymt64.c 2014-10-07 00:55:24.212007613 +0200 @@ -56,9 +56,10 @@ * @param seed a 64-bit unsigned integer used as a seed. */ void tinymt64_init(tinymt64_t * random, uint64_t seed) { + int i; random->status[0] = seed ^ ((uint64_t)random->mat1 << 32); random->status[1] = random->mat2 ^ random->tmat; - for (int i = 1; i < MIN_LOOP; i++) { + for (i = 1; i < MIN_LOOP; i++) { random->status[i & 1] ^= i + UINT64_C(6364136223846793005) * (random->status[(i - 1) & 1] ^ (random->status[(i - 1) & 1] >> 62)); diff -urN tinymt.orig/tinymt64.h tinymt/tinymt64.h --- tinymt.orig/tinymt64.h 2014-10-07 00:55:24.216007613 +0200 +++ tinymt/tinymt64.h 2014-10-07 00:55:24.216007613 +0200 @@ -16,8 +16,23 @@ * LICENSE.txt */ -#include -#include +#include "hbapi.h" + +#if defined( __BORLANDC__ ) +# pragma warn -inl +#endif + +#if ! defined( UINT32_C ) +# define UINT32_C( val ) ( val##U ) +#endif +#define uint32_t HB_U32 +#define int32_t HB_I32 + +#if ! defined( UINT64_C ) +# define UINT64_C( val ) HB_ULL( val ) +#endif +#define uint64_t HB_U64 +#define int64_t HB_I64 #define TINYMT64_MEXP 127 #define TINYMT64_SH0 12 @@ -52,12 +67,13 @@ * @param random not used * @return always 127 */ -inline static int tinymt64_get_mexp( +_HB_INLINE_ static int tinymt64_get_mexp( tinymt64_t * random __attribute__((unused))) { return TINYMT64_MEXP; } #else -inline static int tinymt64_get_mexp(tinymt64_t * random) { +_HB_INLINE_ static int tinymt64_get_mexp(tinymt64_t * random) { + ( void ) random; return TINYMT64_MEXP; } #endif @@ -67,7 +83,7 @@ * Users should not call this function directly. * @param random tinymt internal status */ -inline static void tinymt64_next_state(tinymt64_t * random) { +_HB_INLINE_ static void tinymt64_next_state(tinymt64_t * random) { uint64_t x; random->status[0] &= TINYMT64_MASK; @@ -88,7 +104,7 @@ * @param random tinymt internal status * @return 64-bit unsigned pseudorandom number */ -inline static uint64_t tinymt64_temper(tinymt64_t * random) { +_HB_INLINE_ static uint64_t tinymt64_temper(tinymt64_t * random) { uint64_t x; #if defined(LINEARITY_CHECK) x = random->status[0] ^ random->status[1]; @@ -106,7 +122,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 <= r < 2.0) */ -inline static double tinymt64_temper_conv(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_temper_conv(tinymt64_t * random) { uint64_t x; union { uint64_t u; @@ -129,7 +145,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 < r < 2.0) */ -inline static double tinymt64_temper_conv_open(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_temper_conv_open(tinymt64_t * random) { uint64_t x; union { uint64_t u; @@ -151,7 +167,7 @@ * @param random tinymt internal status * @return 64-bit unsigned integer r (0 <= r < 2^64) */ -inline static uint64_t tinymt64_generate_uint64(tinymt64_t * random) { +_HB_INLINE_ static uint64_t tinymt64_generate_uint64(tinymt64_t * random) { tinymt64_next_state(random); return tinymt64_temper(random); } @@ -162,7 +178,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 <= r < 1.0) */ -inline static double tinymt64_generate_double(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_generate_double(tinymt64_t * random) { tinymt64_next_state(random); return tinymt64_temper(random) * TINYMT64_MUL; } @@ -173,7 +189,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 <= r < 1.0) */ -inline static double tinymt64_generate_double01(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_generate_double01(tinymt64_t * random) { tinymt64_next_state(random); return tinymt64_temper_conv(random) - 1.0; } @@ -184,7 +200,7 @@ * @param random tinymt internal status * @return floating point number r (1.0 <= r < 2.0) */ -inline static double tinymt64_generate_double12(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_generate_double12(tinymt64_t * random) { tinymt64_next_state(random); return tinymt64_temper_conv(random); } @@ -195,7 +211,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 < r <= 1.0) */ -inline static double tinymt64_generate_doubleOC(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_generate_doubleOC(tinymt64_t * random) { tinymt64_next_state(random); return 2.0 - tinymt64_temper_conv(random); } @@ -206,7 +222,7 @@ * @param random tinymt internal status * @return floating point number r (0.0 < r < 1.0) */ -inline static double tinymt64_generate_doubleOO(tinymt64_t * random) { +_HB_INLINE_ static double tinymt64_generate_doubleOO(tinymt64_t * random) { tinymt64_next_state(random); return tinymt64_temper_conv_open(random) - 1.0; }