wcosmo.analytic.indefinite_integral_hypergeometric#
- wcosmo.analytic.indefinite_integral_hypergeometric(z: Array, Om0, w0=-1, zpower=0)[source]#
- indefinite_integral_hypergeometric(
z: Union[float, int, numpy.ndarray], Om0, w0=-1, zpower=0
Compute the integral of \((1+z)^k / E(z)\) as described in https://doi.org/10.4236/jhepgc.2021.73057. We extend it to include other integrands via powers of \(1 + z\).
\[I(z; \Omega_{m, 0}, w_0) = \frac{(1 + z)^{k - \frac{1}{2}}} {\Omega_{m, 0}^{\frac{1}{2}} 3 w_0} B(\frac{-1 + 2k}{6 w_0}, 1) _{2}F_{1}( \frac{1}{2}, \frac{-1 + 2k}{6 w_0}, \frac{-1 + 2k + 6 w_0}{6 w_0}, x).\]Here the argument for the hypergeometric function is
\[x = \left(\frac{\Omega_{m, 0} - 1}{\Omega_{m, 0}}\right) (1 + z)^{3 w_0}.\]There is a special case when \(w_0 = 0\) where the hypergeometric function is not defined. In this case, we return the integral
\[I(z; \Omega_{m, 0}, w_0) = \frac{(1 + z)^{k - \frac{1}{2}}} {k - \frac{1}{2}}.\]- Parameters:
- z: array_like
Redshift
- Om0: array_like
The matter density fraction
- w0: array_like
The (constant) equation of state parameter for dark energy
- Returns:
- I: array_like
The indefinite integral of \((1+z)^k / E(z)\)
Notes
The underlying hypergeometric function is not natively implemented in
JAX
orcupy
so this will not be fully compatible. For demonstration, we can use thescipy
implementation withJAX
but this will not allow differentiation or GPU acceleration.This has been discussed in
cupy
and may be implemented in the future (cupy/cupy#8274).