Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6981 Discussions

how to generate random numbers over [0.0, 1.0) with MKL VSL

woshiwuxin
Novice
465 Views

Hi, everyone!

The basic random number generators in MKL VSL can distribute the numbers within [0.0, 1.0], but how to generate random numbers over [0.0, 1.0)?

Thanks in advance!

0 Kudos
3 Replies
Andrey_N_Intel
Employee
465 Views

Hi,

Basic RNGs in Intel(R) MKL VSL return numbers uniformly distributed on the interval [0,1), that is "1" is not included in the interval. Please, let me know if this answers your question.

Andrey

 

0 Kudos
woshiwuxin
Novice
465 Views

Hi, Andrey

Andrey Nikolaev (Intel) wrote:

Hi,

Basic RNGs in Intel(R) MKL VSL return numbers uniformly distributed on the interval [0,1), that is "1" is not included in the interval. Please, let me know if this answers your question.

Andrey

 

According to Intel Math Kernel Library Reference Manual (Document Number: 630813-055US), 'vsrnguniform' and 'vdrnguniform' can produce "random numbers uniformly distributed over the intervel [a, b]" (Page 2664). So, I don't think I can get random numbers within [0, 1) by using these functions. However, I just found 'virnguniform' can generate integer "random numbers uniformly distributed over the interval [a, b)" (Page 2698). I could use 'virnguniform' to find an integer first, and then divide it by 'b' for a random floating point number in [0, 1).

0 Kudos
Andrey_N_Intel
Employee
465 Views

Hi, this is inaccuracy in the documentation. It should be fixed in one of future MKL releases. So, it makes sense to use v[s|d]rnguniform function. Thanks, Andrey

0 Kudos
Reply