Random Number Generator

Random Number Generator

Hello,

 

I am trying to generate a vector of random numbers using the following code. However, every time I execute the code, the output vector is the same as previous run! Can you please help? Thank you in advance. - Afshin

 

    int N = 30;
    double r[N];
    VSLStreamStatePtr stream;
    int errcode;
    double a=0,sigma=0.5;
   
    /***** Initialize *****/
    errcode = vslNewStream( &stream, VSL_BRNG_MT2203, 10000 );
    printf("err = %i\n",errcode);
    /***** Call RNG *****/
    errcode = vdRngGaussian( VSL_RNG_METHOD_GAUSSIAN_BOXMULLER, stream, N, r, a, sigma );
    printf("err = %i\n",errcode);
    vslDeleteStream(&stream);
 
    for (i=0; i<N; i++){
        printf("r = %f\n",r[i]);
    }

 

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Best Reply

Hi Afshin,

This result is expected to be the same from run to run.

If you want the result to be different every time, you will need to change the seed value for each run.  You can use the time function to do that.

Hope this helps!

Best Regards,

Khang

Thank you, Khang! You always provide best answers.

Hi Afshin,

We are here to help users make the best out of Intel(r) MKL.

Please do not hesitate to contact us should you have any questions about Intel(R) MKL.

 

Best Regards,

Khang

Leave a Comment

Please sign in to add a comment. Not a member? Join today