uniform (Discrete)

Contents

uniform (Discrete)#

Generates random numbers uniformly distributed over the interval [a, b).

Description

The uniform class object is used in generate and 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 \in Z ; a < b\).

The probability distribution is given by:

\[P(X = k) = \frac{1}{b-a}, k \in \{a, a + 1, \ldots, b-1\}\]

The cumulative distribution function is as follows:

\[\begin{split}F_{a, b}(x) = \begin{cases} 0, & x < a \\ \frac{x-a + 1}{b-a}, & a \leq x < b \\ 1, & x \geq b \end{cases}, x \in R\end{split}\]

class uniform#

Syntax

namespace oneapi::math::rng::device {
  template<typename Type, typename Method>
  class uniform<Type, Method> {
  public:
    using method_type = Method;
    using result_type = Type;

    uniform();
    explicit uniform(Type a, Type b);

    Type a() const;
    Type b() const;
  };
}

Template parameters

typename Type

Type of the produced values. Supported types:

  • std::int32_t

  • std::uint32_t

  • std::int64_t

  • std::uint64_t

typename Method = oneapi::math::rng::uniform_method::by_default

Transformation method, which will be used for generation. Supported types:

  • oneapi::math::rng::device::uniform_method::by_default

  • oneapi::math::rng::device::uniform_method::standard

  • oneapi::math::rng::device::uniform_method::accurate

See description of the methods in Distributions methods template parameter.

Class Members

Routine

Description

uniform()

Default constructor

explicit uniform(Type a, Type b)

Constructor with parameters

Type a() const

Method to obtain left bound a

Type b() const

Method to obtain right bound b

Constructors

uniform::uniform()

Description

Default constructor for distribution, parameters set as a = 0, b = (1 << 23) with uniform_method::standard or std::numeric_limits<Type>::max() with uniform_method::accurate.

explicit uniform::uniform(Type a, Type b)

Description

Constructor with parameters. a is a left bound, b is a right bound, assume \(a < b\).

Throws

oneapi::math::invalid_argument

Exception is thrown when \(a \ge b\)

Characteristics

uniform::a() const

Return Value

Returns the distribution parameter a - left bound.

uniform::b() const

Return Value

Returns the distribution parameter b - right bound.

Parent topic: Device Distributions