-
real(dl)
fallback_reduced(l, K, nu, achi, sin_k, symm)
The Olver gates above are unchanged; within their recursive fallback
region, use validated faster approximations where available before
falling back to phi_recurs.
-
integer intent(in) :: l
-
integer intent(in) :: K
-
real(dl) intent(in) :: nu
-
real(dl) intent(in) :: achi
-
real(dl) intent(in) :: sin_k
-
real(dl) intent(in) :: symm
real(dl)
olver_reduced(l, K, nu, achi, sin_k, symm)
Reduced u for K = +-1 and l >= 3: pick the near-flat small-chi map, the
recurrence-class fallback, or the leading Olver map, then map the flat
solution z j_l(nu z) back with the Liouville-Green amplitude.
integer intent(in) :: l
integer intent(in) :: K
real(dl) intent(in) :: nu
real(dl) intent(in) :: achi
real(dl) intent(in) :: sin_k
real(dl) intent(in) :: symm
real(dl)
olver_value(l, K, nu, chi, reduced)
Shared driver for phi_olver/u_olver: fold chi into the fundamental domain,
dispatch the special cases, and convert between phi and u using the single
S_K(achi) evaluation that the Olver map needs anyway.
integer intent(in) :: l
integer intent(in) :: K
real(dl) intent(in) :: nu
real(dl) intent(in) :: chi
logical intent(in) :: reduced
real(dl)
phi_olver(l, K, nu, chi)
phi_l^nu(chi). Assumes l >= 0, chi >= 0, and for K = 1 an integer nu > l
(so nu > sqrt(l(l+1)) and the turning point asin(sqrt(l(l+1))/nu) exists);
the Python wrapper validates both.
integer intent(in) :: l
integer intent(in) :: K
real(dl) intent(in) :: nu
real(dl) intent(in) :: chi
real(dl)
u_olver(l, K, nu, chi)
Reduced function u = S_K(chi) phi_l^nu(chi). Same input assumptions as phi_olver.
integer intent(in) :: l
integer intent(in) :: K
real(dl) intent(in) :: nu
real(dl) intent(in) :: chi
logical
use_airy_fallback(l, K, nu, achi)
Second-order Olver/Airy patch: validated only well away from low l.
integer intent(in) :: l
integer intent(in) :: K
real(dl) intent(in) :: nu
real(dl) intent(in) :: achi