G115: Approximate Vavilov Distribution and its Inverse

Author(s): A. Rotondi, P. Montagna, K.S. Kölbig Library: MATHLIB
Submitter: K.S. Kölbig Submitted: 10.12.1993
Language: Fortran Revised:

The VAVLOV package contains subprograms for fast approximate calculation of functions related to the Vavilov distribution.

For tex2html_wrap_inline134 and tex2html_wrap_inline136 , the Vavilov density function is mathematically defined by

displaymath138

where c is an arbitrary real constant and

displaymath142

tex2html_wrap_inline144 is the exponential integral, tex2html_wrap_inline146 , and tex2html_wrap_inline148 is Euler's constant.

The Vavilov distribution function is defined by

displaymath150

and its inverse by tex2html_wrap_inline152 .

The function tex2html_wrap_inline154 can be used to generate Vavilov random numbers (see Usage).

Structure:

SUBROUTINE and FUNCTION subprograms
User Entry Names: VAVSET, VAVDEN, VAVDIS, VAVRND, VAVRAN
External References: LOCATR, DENLAN, DISLAN
COMMON Block Names and Lenghts: /G115C1/ 226

Usage:

    CALL VAVSET(RKAPPA,BETA2,MODE)
sets auxiliary quantities used in VAVDEN, VAVDIS and VAVRND; this call has to precede a reference to any of these entries.
RKAPPA
The variable tex2html_wrap_inline156 (the straggling parameter); ( tex2html_wrap_inline158 ).
BETA2
The variable tex2html_wrap_inline160 (the square of velocity in unit c); ( tex2html_wrap_inline164 ).
MODE
tex2html_wrap_inline166
tex2html_wrap_inline168 in the particular case that VAVDEN only is referenced after the call to VAVSET.
In any arithmetic expression,

VAVDEN(X) has an approximate value of tex2html_wrap_inline170 ,
VAVDIS(X) has an approximate value of tex2html_wrap_inline172 ,
VAVRND(X) has an approximate value of tex2html_wrap_inline174 ,

RKAPPA and BETA2 are defined by the last call to VAVSET prior to a reference to VAVDEN, VAVDIS, or VAVRND.

To generate a set of Vavilov random numbers with identical tex2html_wrap_inline176 and tex2html_wrap_inline178 , VAVSET should be called once and then VAVRND be referenced repeatedly, using as argument X a random number from a uniform distribution over the interval (0,1).

In any arithmetic expression,

VAVRAN(RKAPPA,BETA2,X) has an approximate value of tex2html_wrap_inline180 .

To generate one Vavilov random number for given values of tex2html_wrap_inline182 and tex2html_wrap_inline184 , VAVRAN should be used, using as argument X a random number from a uniform distribution over the interval (0,1).

VAVDEN, VAVDIS, VAVRND, VAVRAN and X, RKAPPA, BETA2 are of type REAL, and MODE is of type INTEGER.

Method:

The method is discribed in Ref. 1.

Accuracy:

The accuracy depends on the parameters. Although often rather poor from a mathematical point of view, it is usually sufficient for the intended application in physics (see Notes).

Restrictions:

No test is made whether the parameters tex2html_wrap_inline186 and tex2html_wrap_inline188 are in the specified ranges.

Notes:

  1. Representing the Vavilov functions by approximations which are both fast and accurate is a difficult task. In view of the requirements in physics, speed is much more important than accuracy. This is taken into account for the present routines.
  2. For a more accurate, but much slower, calculation of the Vavilov density and distribution functions, use VVILOV (G116).
  3. For tex2html_wrap_inline190 , the Vavilov distribution can be replaced by the Landau distribution (LANDAU (G110)), taking into account that tex2html_wrap_inline192 .
  4. For tex2html_wrap_inline194 , the Vavilov distribution can be replaced by the Gaussian distribution with mean
    tex2html_wrap_inline196 and variance tex2html_wrap_inline198 .

References:

  1. A. Rotondi and P. Montagna, Fast calculation of Vavilov distribution, Nucl. Instr. and Meth. B47 (1990) 215-224.
tex2html_wrap_inline200

Michel Goossens Wed Jun 5 06:19:45 METDST 1996