# Beta

Generates beta distributed random values.

## Syntax

Fortran:

status = vsrngbeta( method, stream, n, r, p, q, a, beta )

status = vdrngbeta( method, stream, n, r, p, q, a, beta )

C:

status = vsRngBeta( method, stream, n, r, p, q, a, beta );

status = vdRngBeta( method, stream, n, r, p, q, a, beta );

## Description

This function generates random numbers with beta distribution that has shape parameters p and q, displacement a, and scale parameter β, where p, q, a, and `β∈R ; p > 0, q > 0, β > 0`.

The probability density function is given by:

where B(p, q) is the complete beta function.

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_SBETA_CJA` `VSL_METHOD_DBETA_CJA` `VSL_METHOD_SBETA_CJA_ACCURATE` `VSL_METHOD_DBETA_CJA_ACCURATE` See brief description of the method CJA in Table“Values of `<method>` in method parameter”
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
p | FORTRAN: REAL, INTENT(IN) for vsrngbeta DOUBLE PRECISION, INTENT(IN) for vdrngbeta C: float for vsRngBeta double for vdRngBeta | Shape p
q | FORTRAN: REAL, INTENT(IN) for vsrngbeta DOUBLE PRECISION, INTENT(IN) for vdrngbeta C: float for vsRngBeta double for vdRngBeta | Shape q
a | FORTRAN: REAL, INTENT(IN) for vsrngbeta DOUBLE PRECISION, INTENT(IN) for vdrngbeta C: float for vsRngBeta double for vdRngBeta | Displacement a.
beta | FORTRAN: REAL, INTENT(IN) for vsrngbeta DOUBLE PRECISION, INTENT(IN) for vdrngbeta C: float for vsRngBeta double for vdRngBeta | Scalefactor β.

## Output Parameters

Name | Type | Description
--- | --- | ---
r | FORTRAN: REAL, INTENT(OUT) for vsrngbeta DOUBLE PRECISION, INTENT(OUT) for vdrngbeta C: float* for vsRngBeta double* for vdRngBeta | Vector of n random numbers with beta distribution

## 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