﻿s18ac Method
s18ac returns the value of the modified Bessel Function K0x.

# Syntax

C#
```public static double s18ac(
double x,
out int ifail
)```
Visual Basic (Declaration)
```Public Shared Function s18ac ( _
x As Double, _
<OutAttribute> ByRef ifail As Integer _
) As Double```
Visual C++
```public:
static double s18ac(
double x,
[OutAttribute] int% ifail
)```
F#
```static member s18ac :
x:float *
ifail:int byref -> float
```

#### Parameters

x
Type: System..::.Double
On entry: the argument x of the function.
Constraint: x>0.0.
ifail
Type: System..::.Int32 %
On exit: ifail=0 unless the method detects an error (see [Error Indicators and Warnings]).

#### Return Value

s18ac returns the value of the modified Bessel Function K0x.

# Description

s18ac evaluates an approximation to the modified Bessel Function of the second kind K0x.
Note:  K0x is undefined for x0 and the method will fail for such arguments.
The method is based on five Chebyshev expansions:
For 0<x1,
 K0x=-ln⁡x∑'r=0arTrt+∑'r=0brTrt,   where ​t=2x2-1.
For 1<x2,
 K0x=e-x∑'r=0crTrt,   where ​t=2x-3.
For 2<x4,
 K0x=e-x∑'r=0drTrt,   where ​t=x-3.
For x>4,
 K0x=e-xx ∑'r=0erTrt,where ​ t=9-x 1+x .
For x near zero, K0x-γ-ln x2 , where γ denotes Euler's constant. This approximation is used when x is sufficiently small for the result to be correct to machine precision.
For large x, where there is a danger of underflow due to the smallness of K0, the result is set exactly to zero.

# Accuracy

Let δ and ε be the relative errors in the argument and result respectively.
However, if δ is of the same order as machine precision, then rounding errors could make ε slightly larger than the above relation predicts.
For small x, the amplification factor is approximately 1lnx , which implies strong attenuation of the error, but in general ε can never be less than the machine precision.
For large x, εxδ and we have strong amplification of the relative error. Eventually K0, which is asymptotically given by e-xx , becomes so small that it cannot be calculated without underflow and hence the method will return zero. Note that for large x the errors will be dominated by those of the exponential function.