g05sr generates a vector of pseudorandom numbers from a von Mises distribution with concentration parameter κ.

Syntax

C#
public static void g05sr(
	int n,
	double vk,
	G05..::..G05State g05state,
	double[] x,
	out int ifail
)
Visual Basic
Public Shared Sub g05sr ( _
	n As Integer, _
	vk As Double, _
	g05state As G05..::..G05State, _
	x As Double(), _
	<OutAttribute> ByRef ifail As Integer _
)
Visual C++
public:
static void g05sr(
	int n, 
	double vk, 
	G05..::..G05State^ g05state, 
	array<double>^ x, 
	[OutAttribute] int% ifail
)
F#
static member g05sr : 
        n : int * 
        vk : 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.
vk
Type: System..::..Double
On entry: κ, the concentration parameter of the required von Mises distribution.
Constraint: 0.0<vkx02al/2.0.
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 von Mises 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 von Mises distribution is a symmetric distribution used in the analysis of circular data. The PDF (probability density function) of this distribution on the circle with mean direction μ0=0 and concentration parameter κ, can be written as:
fθ=eκcosθ2πI0κ,
where θ is reduced modulo 2π so that -πθ<π and κ0. For very small κ the distribution is almost the uniform distribution, whereas for κ all the probability is concentrated at one point.
The n variates, θ1,θ2,,θn, are generated using an envelope rejection method with a wrapped Cauchy target distribution as proposed by Best and Fisher (1979) and described by Dagpunar (1988).
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 g05sr.

References

Best D J and Fisher N I (1979) Efficient simulation of the von Mises distribution Appl. Statist. 28 152–157
Dagpunar J (1988) Principles of Random Variate Generation Oxford University Press
Mardia K V (1972) Statistics of Directional Data Academic Press

Error Indicators and Warnings

Errors or warnings detected by the method:
ifail=1
On entry, n<0.
ifail=2
On entry,vk0.0,
orvk>x02al/2.0.
ifail=3
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

For a given number of random variates the generation time increases slightly with increasing κ.

Example

See Also