G116: Vavilov Density and Distribution Functions

Author(s): B. Schorr, K.S. Kölbig Library: MATHLIB
Submitter: K.S. Kölbig Submitted: 10.12.1993
Language: Fortran Revised:

The VVILOV package contains subprograms for the calculation of the Vavilov density and distribution functions. Though generally more accurate, these routines are considerably slower than those in VAVLOV (G115).

For tex2html_wrap_inline151 and tex2html_wrap_inline153 , the Vavilov density function is mathematically defined by

displaymath155

where c is an arbitrary real constant and

displaymath159

tex2html_wrap_inline161 is the exponential integral, tex2html_wrap_inline163 , and tex2html_wrap_inline165 is Euler's constant.

The Vavilov distribution function is defined by

displaymath167

Structure:

SUBROUTINE and FUNCTION subprograms
User Entry Names: VVISET, VVIDEN, VVIDIS
Internal Entry Names: G116F1, G116F2
External References: RZERO, RSININ, RCOSIN, REXPIN
COMMON Block Names and Lenghts: /G116C1/ 322

Usage:

    CALL VVISET(RKAPPA,BETA2,MODE,XL,XU)
sets auxiliary quantities used in VVIDEN and VVIDIS; this call has to precede a reference to either of these entries.
RKAPPA
The variable tex2html_wrap_inline169 (the straggling parameter); ( tex2html_wrap_inline171 ).
BETA2
The variable tex2html_wrap_inline173 (the square of velocity in unit c); ( tex2html_wrap_inline177 ).
MODE
tex2html_wrap_inline179 if VVIDEN is referenced after the call to VVISET;
tex2html_wrap_inline181 if VVIDIS is referenced after the call to VVISET.
XL,XU
On exit, XL and XU contain a lower and upper limit as defined below.
In any arithmetic expression,

VVIDEN(X) has the value tex2html_wrap_inline183 ,
VVIDIS(X) has the value tex2html_wrap_inline185 ,

By definition

tex2html_wrap_inline187 if tex2html_wrap_inline189 ; tex2html_wrap_inline191 if tex2html_wrap_inline193 ;
tex2html_wrap_inline195 if tex2html_wrap_inline197 ; tex2html_wrap_inline199 if tex2html_wrap_inline201 .

RKAPPA, BETA2, XL and XU are defined by the last call to VVISET (with tex2html_wrap_inline203 ) prior to a reference to VVIDEN, or (with tex2html_wrap_inline205 ) prior to a reference to VVIDIS.

VVIDEN, VVIDIS and X, RKAPPA, BETA2, XL, XU are of type REAL, and MODE is of type INTEGER.

Method:

The method, based on Fourier expansions, is described in Ref. 1.

Accuracy:

About five significant digits are usually accurate.

Error handling:

Error G116.1: tex2html_wrap_inline207 or tex2html_wrap_inline209 .
Error G116.2: tex2html_wrap_inline211 .
These errors can occur when calling VVISET. In both cases, a message is written on Unit 6, unless subroutine MTLSET (N002) has been called.

Notes:

  1. Representing the Vavilov functions by approximations which are both fast and accurate is a difficult task. These routines, though rather accurate, are slow. If speed is of higher importance than accuracy, and for calculating Vavilov random numbers, use VAVLOV (G115).
  2. For tex2html_wrap_inline213 , the Vavilov distribution can be replaced by the Landau distribution (LANDAU (G110)), taking into account that tex2html_wrap_inline215 .
  3. For tex2html_wrap_inline217 , the Vavilov distribution can be replaced by the Gaussian distribution with mean
    tex2html_wrap_inline219 and variance tex2html_wrap_inline221 .

References:

  1. B. Schorr, Programs for the Landau and the Vavilov distributions and the corresponding random numbers, Computer Phys. Comm. 7 (1974) 215-224.
tex2html_wrap_inline223

Michel Goossens Wed Jun 5 06:27:09 METDST 1996