## Bessel I FunctionMath Engineering Class

```Public Function BesselI( _
ByVal vX As Variant _
, ByVal vAlpha As Variant _
) As Variant```

### Compute the hyperbolic Bessel function of the first kind of order vAlpha.

Examples:
```    BesselI(.5, 0) = 1.06348337074132
BesselI(.5, 1) = 0.257894305390896
BesselI(.5, 1.5) = 9.64034738340167E-02
BesselI(.5, 2) = 3.19061491777382E-02
BesselI(.5, 0) = BesselI0(.5)
BesselI(.5, 1) = BesselI1(.5)```
```    BesselI0 Function
BesselI0E Function
BesselI1 Function
BesselI1E Function
BesselIE Function
BesselK Function
BesselJ Function
BesselY Function
DBESI Subroutine```
vX: Function returns Null if vX is Null or cannot be fixed up to a Double precision floating point number.
vAlpha: Function returns Null if vAlpha is Null or cannot be fixed up to a Double precision floating point number.

BesselI computes a one member sequence of I Bessel functions I/sub(ALPHA)/(X) for nonnegative ALPHA and X. A combination of the power series, the asymptotic expansion for X to infinity, and the uniform asymptotic expansion for NU to infinity are applied over subdivisions of the (NU,X) plane. For values not covered by one of these formulae, the order is incremented by an integer so that one of these formulae apply. Backward recursion is used to reduce orders by integer values. The asymptotic expansion for X to infinity is used only when the entire sequence (specifically the last member) lies within the region covered by the expansion. Leading terms of these expansions are used to test for over or underflow where appropriate. If a sequence is requested and the last member would underflow, the result is set to zero and the next lower order tried, etc., until a member comes on scale or all are set to zero. An overflow cannot occur with scaling.
The maximum number of significant digits obtainable is the smaller of 14 and the number of digits carried in double precision arithmetic.