# Weibull

Generates Weibull distributed random numbers.

## Syntax

Fortran:

status = vsrngweibull( method, stream, n, r, alpha, a, beta )

status = vdrngweibull( method, stream, n, r, alpha, a, beta )

C:

status = vsRngWeibull( method, stream, n, r, alpha, a, beta );

status = vdRngWeibull( method, stream, n, r, alpha, a, beta );

## Description

This function generates Weibull distributed random numbers with displacement a, scalefactor β, and shape α, where `α, β, a∈R ; α > 0 , β > 0`.

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_SWEIBULL_ICDF` `VSL_METHOD_DWEIBULL_ICDF` `VSL_METHOD_SWEIBULL_ICDF_ACCURATE` `VSL_METHOD_DWEIBULL_ICDF_ACCURATE` Inverse cumulative distribution function 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
alpha | FORTRAN: REAL, INTENT(IN) for vsrngweibull DOUBLE PRECISION, INTENT(IN) for vdrngweibull C: float for vsRngWeibull double for vdRngWeibull | Shape α.
a | FORTRAN: REAL, INTENT(IN) for vsrngweibull DOUBLE PRECISION, INTENT(IN) for vdrngweibull C: float for vsRngWeibull double for vdRngWeibull | Displacement a
beta | FORTRAN: REAL, INTENT(IN) for vsrngweibull DOUBLE PRECISION, INTENT(IN) for vdrngweibull C: float for vsRngWeibull double for vdRngWeibull | Scalefactor β.

## Output Parameters

Name | Type | Description
--- | --- | ---
r | FORTRAN: REAL, INTENT(OUT) for vsrngweibull DOUBLE PRECISION, INTENT(OUT) for vdrngweibull C: float* for vsRngWeibull double* for vdRngWeibull | Vector of n Weibull distributed random numbers

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