Function trv::maths::sj_transform#

Function Documentation#

void trv::maths::sj_transform(int ell, int m, int N, double *r, double *a, double *k, double *b)#

Perform the (forward) spherical Fourier—Bessel transform.

The transform is defined here as

\[ b_\ell(k) = (2\pi k)^{-3/2} \int_0^\infty k \mathrm{d}r \, r^{m - 1/2} J_\ell(k r) a_\ell(r) \,. \]

Note

When m = 2, this is the Hankel transform definition used in cosmological correlators,

\[ \xi_\ell(r) = 4\pi \mathrm{i}^\ell \int_0^\infty \frac{\mathrm{d}k \, k^2}{(2\pi)^3} j_\ell(kr) P_\ell(k) \,, \]
i.e. \( a(r) \) corresponds to \( P_\ell(k) \) and \( b(k) \) corresponds to \( \mathrm{i}^{-\ell} \xi_\ell(r)\).

Parameters
  • ell[in] Order of the transform.

  • m[in] Dimensional power-law index.

  • N[in] Sample number.

  • r[in] Pre-transform sample points.

  • a[in] Pre-transform sample values.

  • k[out] Post-transform sample points.

  • b[out] Post-transform sample values.