FirstIndexNext

[bug-gsl] initialisation of random number generator on 64bit machine (2008-09-03)

From: Vito Trianni <vtrianni@.........>
Subject: initialisation of random number generator on 64bit machine
Date: Wed, 03 Sep 2008 15:43:33 +0200
To: bug-gsl@gnu.org

Hello,
I noticed the following behaviour when initialising the random number generator on a 64bit machine. Basically, on a 64 bit machine, the unsigned long int probably provokes an overflow in the gsl_rng_set() function, so that the initialisation of the seed in some way fails, and I got always identical numbers despite different seeds. Here is part of the code that made the overflow:

unsigned long int un_seed = GetSomeSeed(); // this function returns a random number in [0,ULONG_MAX]

gsl_rng_env_setup();
T = gsl_rng_default;
gsl_rng* r = gsl_rng_alloc ( T );
gsl_rng_set ( r, un_seed ); // here probably the overflow

int value = gsl_rng_uniform_int(r, 1000); // retruns always the same number, despite different seeds


For the time being, I bypassed the problem by limiting the seed to UINT_MAX, which does not produces overflows on the 64bit machines.
I hope this report is useful....


regards,
Vito



--
==========================================================================
Vito Trianni, Ph.D. vito.trianni@(no_spam)istc.cnr.it
CNR-ISTC http://iridia.ulb.ac.be/~vtrianni
via San Martino della Battaglia, 44
00185 Roma Tel: +39 06 44595 215
Italy Fax: +39 06 44595 243
==========================================================================