# Uniform

Generates random numbers with uniform distribution.

## Syntax

Fortran:

status = vsrnguniform( method, stream, n, r, a, b )

status = vdrnguniform( method, stream, n, r, a, b )

C:

status = vsRngUniform( method, stream, n, r, a, b );

status = vdRngUniform( method, stream, n, r, a, b );

## Description

This function generates 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:

The cumulative distribution function is as follows:

## Input Parameters

Name | Type | Description
--- | --- | ---
method | FORTRAN: INTEGER, INTENT(IN) C: int | Generation method; the specific values are as follows: VSL_METHOD_SUNIFORM_STD VSL_METHOD_DUNIFORM_STD VSL_METHOD_SUNIFORM_STD_ACCURATE VSL_METHOD_DUNIFORM_STD_ACCURATE Standard method.
stream | FORTRAN: TYPE (VSL_STREAM_STATE), INTENT(IN) C: VSLStreamStatePtr | FORTRAN: Descriptor of the stream state structure. C: Pointer to the stream state structure
n | FORTRAN: INTEGER, INTENT(IN) C: int | Number of random values to be generated
a | FORTRAN: REAL, INTENT(IN) for vsrnguniform DOUBLE PRECISION, INTENT(IN) for vdrnguniform C: float for vsRngUniform double for vdRngUniform | Left bound a
b | FORTRAN: REAL, INTENT(IN) for vsrnguniform DOUBLE PRECISION, INTENT(IN) for vdrnguniform C: float for vsRngUniform double for vdRngUniform | Right bound b

## Output Parameters

Name | Type | Description
--- | --- | ---
r | FORTRAN: REAL, INTENT(OUT) for vsrnguniform DOUBLE PRECISION, INTENT(OUT) for vdrnguniform C: float* for vsRngUniform double* for vdRngUniform | Vector of n random numbers uniformly distributed over the interval `[a,b]`

## Return Values

VSL_ERROR_OK, VSL_STATUS_OK
  Indicates no error, execution is successful.
VSL_ERROR_NULL_PTR
  stream is a NULL pointer.
VSL_ERROR_BAD_STREAM

  stream is not a valid random stream.

VSL_ERROR_BAD_UPDATE

  Callback function for an abstract BRNG returns an invalid number of updated entries in a buffer, that is, `< 0` or `> nmax`.

VSL_ERROR_NO_NUMBERS

  Callback function for an abstract BRNG returns 0 as the number of updated entries in a buffer.

Parent topic: Continuous Distributions