For $x > 0, \alpha > 0 \in \mathbb{R}$, as $x \to \infty$:
$$J_\alpha(x)\sim \sqrt{\frac{2}{\pi x}}\left(\cos \left(x-\frac{\alpha\pi}{2} - \frac{\pi}{4}\right) + \mathcal{O}\left(|x|^{-1}\right)\right)$$
Now, while this is decent, cosine is already transcendental, meaning that this isn't necessarily quickly computable.
It is also known that, for $n \in \mathbb{Z}^+$, the positive zeros of $J_\alpha$, $j_{\alpha, n} \sim \left(n+\frac{\alpha}{2}-\frac{1}{4}\right)\pi$. With our limitations on $\alpha$, $J_\alpha(0) = 0$, so let us say $j_{\alpha, 0} = 0$
So, suppose for any $x$, I define the integers $m_0(x) = \lfloor \frac{x}{\pi}+\frac{1}{4}-\frac{\alpha}{2}\rfloor$ and $m_1(x) = \lceil \frac{x}{\pi}+\frac{1}{4}-\frac{\alpha}{2}\rceil$.
If I make the following approximation:
$$J_\alpha(x) \approx (-1)^{m_1(x)}\frac{4}{\pi^2}\sqrt{\frac{2}{\pi x}}\left(x-\pi\left(m_0(x)+\frac{\alpha}{2}-\frac{1}{4}\right)\right)\left(x-\pi\left(m_1(x)+\frac{\alpha}{2}-\frac{1}{4}\right)\right)$$
I. E., basically drawing parabola-ish things over the approximate zeros manually in a piece-wise way such that I'm roughly matching the amplitude of the Bessel function, and patching them:
- Does it in fact better approximate $J_\alpha(x)$ as $x$ increases?
- Does it maintain the error bound of $\mathcal{O}\left(\frac{1}{x}\right)$ that the cosine approximation does?
- If this does work as an approximation, how big does $x$ need to be for the approximation to be within an ULP of an IEEE 32 bit float? What about an IEEE 64 bit float?