Routine ID: G116 | |
---|---|
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 $\kappa >0$ and $0\; \le \beta 2\le 1$ , the Vavilov density function is mathematically defined by
$\phi $_{V}(λ;κ,β^{2}) = {1
where c is an arbitrary real constant and
$f(s;\kappa ,\beta 2)\; =\; C(\kappa ,\beta 2)\hspace{0.17em}exps\; ln\kappa +\; (s+\kappa \beta 2)\hspace{0.17em}[\; ln(\{s\kappa \})+E$_{1}({s
$E$_{1}(x)=∫_{0}^{x}t^{-1} (1-e^{-t}) dt is the exponential integral, $C(\kappa ,\beta 2)=exp\kappa (1+\beta 2\gamma )$ , and $\gamma =0.57721...\hspace{0.17em}$ is Euler's constant.
The Vavilov distribution function is defined by
$\Phi $_{V}(λ;κ,β^{2}) = ∫_{-&inf;}^{λ}φ_{V}(λ;κ,β^{2}) dλ.
Structure:
SUBROUTINE and FUNCTION subprograms
User Entry Names: VVISET, VVIDEN, VVIDIS
Internal Entry Names: G116F1, G116F2
External References: RZERO (C205),
RSININ, RCOSIN (C336),
REXPIN (C337)
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.
VVIDEN(X) | $\phi $_{V}( |
VVIDIS(X) | $\Phi $_{V}( |
By definition
$VVIDEN(X)=0$ | $X<XL$ ; | $VVIDIS(X)=0$ | $X<XL$ ; |
$VVIDEN(X)=0$ | $X>XU$ ; | $VVIDIS(X)=1$ | $X>XU$ . |
RKAPPA, BETA2, XL and XU are defined by the last call to VVISET (with $MODE=0$ ) prior to a reference to VVIDEN, or (with $MODE=1$ ) 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: $\kappa <0.01$
or $\kappa >10$
.
Error G116.2: $\beta 2>1$
.
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:
References: