[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] Seed for RNG

From: Daniel Neilson
Subject: Re: [Help-gsl] Seed for RNG
Date: Thu, 28 Feb 2008 13:07:42 -0600
User-agent: Thunderbird (X11/20071115)

You can just set up your program to check if the environment variable GSL_RNG_SEED has been set, and if not, change the value of gsl_rng_default_seed based on the output of the time() function.

ex (put this after the call to gsl_rng_env_setup()):
if (!getenv("GSL_RNG_SEED")) gsl_rng_default_seed = time(0);

You'll also need to #include <stdlib.h>, if you haven't already, for the getenv() function.

Alternatively, you can just call gsl_rng_set(r, time(0)) after you allocate your generator. Checking the environment variable's probably the better route, though -- it will allow your user to override using time() to seed the generator.

You can also do the same trick to change the default generator you're using.
if (!getenv("GSL_RNG_TYPE")) gsl_rng_default = gsl_rng_taus;


Johan van der Walt wrote:
I got my little code going for generating random numbers using the GSL routines. Works fine. I now want to use a different seed every time I run the code. But I don't want to enter a new seed on the command line like this
     $ GSL_RNG_TYPE="taus" GSL_RNG_SEED=123 ./a.out
every time I run the code.

How can I set the seed in the code?


Help-gsl mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]