g05sg generates a vector of pseudorandom numbers from an exponential mix distribution composed of m exponential distributions each having a mean ai and weight wi.

Syntax

C#
public static void g05sg(
	int n,
	int nmix,
	double[] a,
	double[] wgt,
	G05..::..G05State g05state,
	double[] x,
	out int ifail
)
Visual Basic
Public Shared Sub g05sg ( _
	n As Integer, _
	nmix As Integer, _
	a As Double(), _
	wgt As Double(), _
	g05state As G05..::..G05State, _
	x As Double(), _
	<OutAttribute> ByRef ifail As Integer _
)
Visual C++
public:
static void g05sg(
	int n, 
	int nmix, 
	array<double>^ a, 
	array<double>^ wgt, 
	G05..::..G05State^ g05state, 
	array<double>^ x, 
	[OutAttribute] int% ifail
)
F#
static member g05sg : 
        n : int * 
        nmix : int * 
        a : float[] * 
        wgt : float[] * 
        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: n0.
nmix
Type: System..::..Int32
On entry: m, the number of exponential distributions in the mix.
Constraint: nmix1.
a
Type: array<System..::..Double>[]()[][]
An array of size [nmix]
On entry: the m parameters ai for the m exponential distributions in the mix.
Constraint: a[i-1]>0.0, for i=1,2,,nmix.
wgt
Type: array<System..::..Double>[]()[][]
An array of size [nmix]
On entry: the m weights wi for the m exponential distributions in the mix.
Constraints:
  • i=1mwgt[i-1]=1.0;
  • wgt[i-1]0.0, for i=1,2,,m.
g05state
Type: NagLibrary..::..G05..::..G05State
An Object of type G05.G05State.
x
Type: array<System..::..Double>[]()[][]
An array of size [n]
On exit: the n pseudorandom numbers from the specified exponential mix distribution.
ifail
Type: System..::..Int32%
On exit: ifail=0 unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

Description

The distribution has PDF (probability density function)
fx=i=1m1aiwie-x/aiif ​x0,fx=0otherwise,
where i=1mwi=1 and ai>0, wi0.
g05sg returns the values xi by selecting, with probability wj, random variates from an exponential distribution with parameter aj.
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 g05sg.

References

Kendall M G and Stuart A (1969) The Advanced Theory of Statistics (Volume 1) (3rd Edition) Griffin
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:
ifail=1
On entry, n<0.
ifail=2
On entry, nmix0.
ifail=3
On entry, a[i-1]0.0 for at least one a[i-1].
ifail=4
On entry, wgt[i-1]<0.0 for at least one wgt[i-1].
On entry, i=1nmixwgt[i-1]1.0.
ifail=5
On entry,state vector was not initialized or has been corrupted.
ifail=-9000
An error occured, see message report.
ifail=-8000
Negative dimension for array value
ifail=-6000
Invalid Parameters value

Accuracy

Not applicable.

Parallelism and Performance

None.

Further Comments

None.

Example

See Also