g01bk returns the lower tail, upper tail and point probabilities associated with a Poisson distribution.

# Syntax

C#
```public static void g01bk(
double rlamda,
int k,
out double plek,
out double pgtk,
out double peqk,
out int ifail
)```
Visual Basic
```Public Shared Sub g01bk ( _
rlamda As Double, _
k As Integer, _
<OutAttribute> ByRef plek As Double, _
<OutAttribute> ByRef pgtk As Double, _
<OutAttribute> ByRef peqk As Double, _
<OutAttribute> ByRef ifail As Integer _
)```
Visual C++
```public:
static void g01bk(
double rlamda,
int k,
[OutAttribute] double% plek,
[OutAttribute] double% pgtk,
[OutAttribute] double% peqk,
[OutAttribute] int% ifail
)```
F#
```static member g01bk :
rlamda : float *
k : int *
plek : float byref *
pgtk : float byref *
peqk : float byref *
ifail : int byref -> unit
```

#### Parameters

rlamda
Type: System..::..Double
On entry: the parameter $\lambda$ of the Poisson distribution.
Constraint: $0.0<{\mathbf{rlamda}}\le {10}^{6}$.
k
Type: System..::..Int32
On entry: the integer $k$ which defines the required probabilities.
Constraint: ${\mathbf{k}}\ge 0$.
plek
Type: System..::..Double%
On exit: the lower tail probability, $\mathrm{Prob}\left\{X\le k\right\}$.
pgtk
Type: System..::..Double%
On exit: the upper tail probability, $\mathrm{Prob}\left\{X>k\right\}$.
peqk
Type: System..::..Double%
On exit: the point probability, $\mathrm{Prob}\left\{X=k\right\}$.
ifail
Type: System..::..Int32%
On exit: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

# Description

Let $X$ denote a random variable having a Poisson distribution with parameter $\lambda$ $\left(>0\right)$. Then
 $ProbX=k=e-λλkk!, k=0,1,2,…$
The mean and variance of the distribution are both equal to $\lambda$.
g01bk computes for given $\lambda$ and $k$ the probabilities:
 $plek=ProbX≤kpgtk=ProbX>kpeqk=ProbX=k.$
The method is described in Knüsel (1986).

# References

Knüsel L (1986) Computation of the chi-square and Poisson distribution SIAM J. Sci. Statist. Comput. 7 1022–1036

# Error Indicators and Warnings

Errors or warnings detected by the method:
${\mathbf{ifail}}=1$
 On entry, ${\mathbf{rlamda}}\le 0.0$.
${\mathbf{ifail}}=2$
 On entry, ${\mathbf{k}}<0$.
${\mathbf{ifail}}=3$
 On entry, ${\mathbf{rlamda}}>{10}^{6}$.
${\mathbf{ifail}}=-9000$
An error occured, see message report.

# Accuracy

Results are correct to a relative accuracy of at least ${10}^{-6}$ on machines with a precision of $9$ or more decimal digits, and to a relative accuracy of at least ${10}^{-3}$ on machines of lower precision (provided that the results do not underflow to zero).

# Parallelism and Performance

None.

The time taken by g01bk depends on $\lambda$ and $k$. For given $\lambda$, the time is greatest when $k\approx \lambda$, and is then approximately proportional to $\sqrt{\lambda }$.

# Example

This example reads values of $\lambda$ and $k$ from a data file until end-of-file is reached, and prints the corresponding probabilities.

Example program (C#): g01bke.cs

Example program data: g01bke.d

Example program results: g01bke.r