Skip to main content

hankel_jy_nu

Function hankel_jy_nu 

Source
pub fn hankel_jy_nu<P, E, V, const N: usize>(nu: V, x: V, x_lo: V) -> (V, V)
Expand description

$J_\nu(x)$ by the Hankel expansion, at arbitrary real order, for x past hankel_usable_from.

N is the term count. See the module documentation for the measured table. The caller is responsible for the gate. This does not check it, and below the gate the answer is simply the best a divergent series can do, which is not enough.

§The phase is never formed directly

$\omega = x - (\nu/2 + 1/4)\pi$ cannot be computed that way: subtracting an irrational from a large $x$ destroys exactly the low-order bits that set the phase. The addition formulae are used instead, with $\sin$ and $\cos$ of the $\nu$-dependent part taken once through sincos_pi so $\pi$ never multiplies anything large. Boost’s own comment says the same thing about the same expansion.

§x_lo: a second word of the argument, for the phase alone

Past the gate the error of this arm is the phase: sin x and cos x are as accurate as x itself, and a caller whose x was computed (Airy’s zeta = (2/3)|z|^{3/2}) has already lost x eps / 2 of it to rounding. x_lo is that rounding, when the caller has it, and enters here through the addition formulae to first order: sin(x + lo) = sin x + lo cos x, cos(x + lo) = cos x - lo sin x. Two FMAs. The amplitude series does not need it: its sensitivity to x is O(1/x). Callers without a second word pass zero, which is exact.

Last built: 2026-09-08 21:35:55 UTC