oneapi::mkl::rng::device::uniform (Continuous)

Generates random numbers with uniform distribution.

Description

The oneapi::mkl::rng::device::uniform class object is used in the oneapi::mkl::rng::device::generate function to provide random numbers uniformly distributed over the interval [a, b), where a, b are the left and right bounds of the interval, respectively, and a, b∈R ; a < b.

The probability density function is given by:

F_{a, b}(x) =
\begin{cases}
   \frac{1}{b-a}, & x \in [a, b) \\
   1, & x \notin [a, b)
\end{cases},
- \infty < x < + \infty

The cumulative distribution function is as follows:

F_{a, b}(x) =
\begin{cases}
   0, & x < a \\
   \frac{x-a}{b-a}, & a \leq x < b \\
   1, & x \geq b
\end{cases},
-\infty < x < +\infty

API

Syntax

namespace oneapi::mkl::lapack {
  template<typename Type, typename Method>
  class uniform {public:
  using method_type = Method;
  using result_type = Type;
  uniform(): uniform((Type)0.0,
  (Type)1.0){};
  explicit uniform(Type a, Type b);
  explicit uniform(const param_type& pt);
  Type a() const;
  Type b() const;
  param_type param() const;
  void param(const param_type& pt);
  };
}

Include Files

  • oneapi/mkl/rng/device.hpp

Template Parameters

typename Type

Type of the produced values. The specific values are as follows: float double

typename Method

Generation method. The specific values are as follows: oneapi::mkl::rng::device::uniform_method::standard oneapi::mkl::rng::device::uniform_method::accurate

See brief descriptions of the methods in Distributions Template Parameter Method

Input Parameters

Name

Type

Description

a

Type (float, double)

Left bound a

b

Type (float, double)

Right bound b