[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-gsl] about the function " gsl_ran_gaussian ( ) "

**From**: |
John D Lamb |

**Subject**: |
Re: [Help-gsl] about the function " gsl_ran_gaussian ( ) " |

**Date**: |
Mon, 11 Apr 2011 08:07:34 +0100 |

On Fri, 2011-04-08 at 19:49 -0400, Yi Cao wrote:
>* Hello everyone,*
>* *
>* I am now trying to generate some gauss random numbers (about size of*
>* 30,000).*
>* I found the following function in GSL, but I am not clear how to use*
>* this function.*
>* 0. can I just call this function in my C++ code?*
No. You need a random number generator first. You can create one using
gsl_rng_alloc but you have to free it with gsl_rng_free. If you want a C
++ that will do this then the following should work and you don’t have
to remember to free the random number generator.
#include<gsl/gsl_rng.h>
class RNG {
public:
RNG() : rng( gsl_rng_alloc( gsl_rng_mt19937 ) ){};
~RNG(){ gsl_rng_free( rng ); }
gsl_rng* get(){ return rng; }
private:
gsl_rng* rng;
};
RNG rng;
…
random_variate = mean + gsl_ran_gaussian( rng.get(),
standard_deviation );
>* 1. If I use cygwin to compile the C++ code containing the function, can I*
>* just #include"gsl/gsl_randist.h" and then compile it?*
You’ll have to link with gsl, gslcblas (or some other cblas) at some.
point. Otherwise, yes.
>* 2. If I use linux (SUSE), do I have to install the GSL first and then*
>* compile the C++ code*
>* ?*
Yes. You can’t use GSL without first installing it. On SuSE, link with g
++ … -lgsl -lgslcblas -lm
>* 3.what is the first argument of the function----const gsl_rng *r ? what*
>* value should I assign to it?*
That’s the gsl_rng* which you allocate and free with gsl_rng_alloc and
gsl_rng_free as in the C++ class above.
--
JDL