wcosmo.analytic.indefinite_integral_hypergeometric#
- wcosmo.analytic.indefinite_integral_hypergeometric(z: Array, Om0, w0=-1, zpower=0)[source]#
- wcosmo.analytic.indefinite_integral_hypergeometric(z: float | int | numpy.ndarray, Om0, w0=-1, zpower=0)[source]
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
JAXorcupyso this will not be fully compatible. For demonstration, we can use thescipyimplementation withJAXbut this will not allow differentiation or GPU acceleration.This has been discussed in
cupyand may be implemented in the future (cupy/cupy#8274).