Bessel J FunctionMath Engineering Class

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

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

Examples:
```    BesselJ(.5, 0) = 0.938469807240813
BesselJ(.5, 1) = 0.242268457674874
BesselJ(.5, 1.5) = 9.17016996256513E-02
BesselJ(.5, 2) = 3.06040234586826E-02
BesselJ(.5, 0) = BesselJ0(.5)
BesselJ(.5, 1) = BesselJ1(.5)```
```    BesselJ0 Function
BesselJ1 Function
BesselY Function
BesselI Function
BesselK Function
DBESJ 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.

BesselJ computes a one member sequence of J Bessel functions J/sub(ALPHA)/(X), for non-negative 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 of (NU,X) not covered by one of these formulae, the order is incremented or decremented by integer values into a region where one of the formulae apply. Backward recursion is applied to reduce orders by integer values except where the entire sequence lies in the oscillatory region. In this case forward recursion is stable and values from the asymptotic expansion for X to infinity start the recursion when it is efficient to do so. Leading terms of the series and uniform expansion are tested for underflow. 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 members are set to zero. Overflow cannot occur.
The maximum number of significant digits obtainable is the smaller of 14 and the number of digits carried in double precision arithmetic.