1.1 --- a/lemon/bits/mingw32_rand.cc Mon Oct 02 14:41:53 2006 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,83 +0,0 @@
1.4 -#ifdef WIN32
1.5 -
1.6 -#include <lemon/bits/mingw32_rand.h>
1.7 -
1.8 -
1.9 -static unsigned short _mingw_rand_state[10];
1.10 -
1.11 -void _mingw_rand_next_state(unsigned short xsubi[3]) {
1.12 - _mingw_rand_state[8] = _mingw_rand_state[9] = 0;
1.13 - _mingw_rand_state[7] = _mingw_rand_state[6];
1.14 - for (int i = 0; i < 3; ++i) {
1.15 - unsigned long val = 0;
1.16 - for (int j = 0; i + j < 3; ++j) {
1.17 - val += (unsigned long)_mingw_rand_state[7 + i + j]
1.18 - + (unsigned long)xsubi[i] * (unsigned long)_mingw_rand_state[3 + j];
1.19 - _mingw_rand_state[7 + i + j] = val;
1.20 - val >>= 16;
1.21 - }
1.22 - }
1.23 - xsubi[0] = _mingw_rand_state[6];
1.24 - xsubi[1] = _mingw_rand_state[7];
1.25 - xsubi[2] = _mingw_rand_state[8];
1.26 -}
1.27 -
1.28 -long int lrand48(void) {
1.29 - return nrand48(_mingw_rand_state);
1.30 -}
1.31 -
1.32 -long int nrand48(unsigned short xsubi[3]) {
1.33 - _mingw_rand_next_state(xsubi);
1.34 - return ((long)(xsubi[2] & ( (1 << 15) - 1) ) << 16) | (long)xsubi[1];
1.35 -}
1.36 -
1.37 -double drand48(void) {
1.38 - return erand48(_mingw_rand_state);
1.39 -}
1.40 -
1.41 -double erand48(unsigned short xsubi[3]) {
1.42 - return (double)nrand48(xsubi) / (1 << 31);
1.43 -}
1.44 -
1.45 -
1.46 -long int mrand48(void) {
1.47 - return jrand48(_mingw_rand_state);
1.48 -}
1.49 -
1.50 -long int jrand48(unsigned short xsubi[3]) {
1.51 - _mingw_rand_next_state(xsubi);
1.52 - return ((long)xsubi[2] << 16) | (long)xsubi[1];
1.53 -}
1.54 -
1.55 -void srand48(long int seedval) {
1.56 - _mingw_rand_state[0] = 0x330E;
1.57 - _mingw_rand_state[1] = seedval & ( (1 << 16) - 1);
1.58 - _mingw_rand_state[2] = seedval >> 16;
1.59 - _mingw_rand_state[3] = 0xE66D;
1.60 - _mingw_rand_state[4] = 0xDEEC;
1.61 - _mingw_rand_state[5] = 0x0005;
1.62 - _mingw_rand_state[6] = 0x000B;
1.63 -}
1.64 -
1.65 -unsigned short *seed48(unsigned short seed16v[3]) {
1.66 - _mingw_rand_state[7] = _mingw_rand_state[0];
1.67 - _mingw_rand_state[8] = _mingw_rand_state[1];
1.68 - _mingw_rand_state[9] = _mingw_rand_state[2];
1.69 - _mingw_rand_state[0] = seed16v[0];
1.70 - _mingw_rand_state[1] = seed16v[1];
1.71 - _mingw_rand_state[2] = seed16v[2];
1.72 - return _mingw_rand_state + 7;
1.73 -}
1.74 -
1.75 -void lcong48(unsigned short param[7]) {
1.76 - _mingw_rand_state[0] = param[0];
1.77 - _mingw_rand_state[1] = param[1];
1.78 - _mingw_rand_state[2] = param[2];
1.79 - _mingw_rand_state[3] = param[3];
1.80 - _mingw_rand_state[4] = param[4];
1.81 - _mingw_rand_state[5] = param[5];
1.82 - _mingw_rand_state[6] = param[6];
1.83 -}
1.84 -
1.85 -
1.86 -#endif