SpherBessels Module Source file:hyperspherical_bessels


Accurate calculation of ultraspherical Bessel functions for non-flat universe
(and imports from FlatBessels for standard approximate spherical Bessel bjl).


Hyperspherical bessel routines assume arguments have been pre-validated to be valid.

Dependencies

Functions
  • real(dl)
    cot_curvature(K, chi)
    • integer intent(in) :: K
    • real(dl) intent(in) :: chi
  • real(dl)
    hyperspherical_turning_point(l, K, nu)
    • integer intent(in) :: l
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
  • real(dl)
    phi_derivative(l, K, nu, chi)
    Derivative d phi_l^nu(K, chi) / d chi from the adjacent-l recurrence.
    • integer intent(in) :: l
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
    • real(dl) intent(in) :: chi
  • real(dl)
    phi_derivative_l0(K, nu, chi)
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
    • real(dl) intent(in) :: chi
  • real(dl)
    phi_derivative_root(obj, chi)
    • class(*)  :: obj
    • real(dl) intent(in) :: chi
  • real(dl)
    phi_first_peak_amplitude(l, K, nu, peak_chi, no_peak_found)
    Absolute amplitude at the first maximum at or after the turning point. If optional no_peak_found is true, the returned amplitude is evaluated at peak_chi/search-boundary rather than at a stationary point.
    • integer intent(in) :: l
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
    • real(dl) intent(out), optional :: peak_chi
    • logical intent(out), optional :: no_peak_found
  • real(dl)
    phi_first_peak_chi(l, K, nu, no_peak_found)
    First maximum at or after the classical turning point, matching the normalization convention used by the Python mathutils tests. If the derivative is still positive when the finite search boundary is reached, no stationary peak has been found. In that case chi_peak is the search boundary and optional no_peak_found is returned true.
    • integer intent(in) :: l
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
    • logical intent(out), optional :: no_peak_found
  • real(dl)
    phi_recurs(l, K, nu, chi)
    Recursive evaluation of the regular hyperspherical Bessel function phi_l^nu(K,chi). Precondition: chi >= 0. For closed K = +1, non-negative chi is folded into [0,pi/2] using the closed-space parity relations. The recurrence and exact l = 0,1 seeds follow Abbott & Schaefer (1986, ApJ 308, 546). As in Tram (2017, arXiv:1311.0839) and Lesgourgues & Tram (2014, arXiv:1312.2697), upward recurrence is used only in the safe oscillatory region; elsewhere Miller backward recurrence is started from a stable top boundary condition. For K = +1 Miller starts use the finite endpoint where b_j = sqrt(nu^2-j^2) vanishes at j = nu when nu-l > 64; closer to the endpoint they use the closed-space Gegenbauer representation, which is the CLASS stable-recursion cure for the finite closed-spectrum tail.
    • integer intent(in) :: l
    • integer intent(in) :: K
    • real(dl) intent(in) :: nu
    • real(dl) intent(in) :: chi