g05sa generates a vector of pseudorandom numbers taken from a uniform distribution between $0$ and $1$.

# Syntax

C# |
---|

public static void g05sa( int n, G05..::..G05State g05state, double[] x, out int ifail ) |

Visual Basic |
---|

Public Shared Sub g05sa ( _ n As Integer, _ g05state As G05..::..G05State, _ x As Double(), _ <OutAttribute> ByRef ifail As Integer _ ) |

Visual C++ |
---|

public: static void g05sa( int n, G05..::..G05State^ g05state, array<double>^ x, [OutAttribute] int% ifail ) |

F# |
---|

static member g05sa : n : int * g05state : G05..::..G05State * x : float[] * ifail : int byref -> unit |

#### Parameters

- n
- Type: System..::..Int32
*On entry*: $n$, the number of pseudorandom numbers to be generated.*Constraint*: ${\mathbf{n}}\ge 0$.

- g05state
- Type: NagLibrary..::..G05..::..G05StateAn Object of type G05.G05State.

- x
- Type: array<System..::..Double>[]()[][]An array of size [n]
*On exit*: the $n$ pseudorandom numbers from a uniform distribution over the half closed interval $\left(0,1\right]$.

- ifail
- Type: System..::..Int32%
*On exit*: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

# Description

g05sa generates $n$ values from a uniform distribution over the half closed interval $\left(0,1\right]$.

One of the initialization methods (G05KFF not in this release) (for a repeatable sequence if computed sequentially) or (G05KGF not in this release) (for a non-repeatable sequence) must be called prior to the first call to g05sa.

# References

Knuth D E (1981)

*The Art of Computer Programming (Volume 2)*(2nd Edition) Addison–Wesley# Error Indicators and Warnings

Errors or warnings detected by the method:

- ${\mathbf{ifail}}=1$
- On entry, ${\mathbf{n}}<0$.

- ${\mathbf{ifail}}=2$
On entry, state vector was not initialized or has been corrupted.

# Accuracy

Not applicable.

# Parallelism and Performance

None.

# Further Comments

None.