Skip to content

Possible remaining w0wz de_density_scale problems #15025

Description

@nstarman

Description

I don't have time this week or next to push a fix, so this is just to record that #14991 might not be fully fixed.
At a glance, the pyx files might contain the same exponent sign error.

######## w0wzCDM
# No relativistic species
def w0wzcdm_inv_efunc_norel(double z, double Om0, double Ode0, double Ok0,
double w0, double wz):
cdef double opz = 1.0 + z
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow(opz**2 * (opz * Om0 + Ok0) + Ode0 * Odescl, -0.5)
# Massless neutrinos
def w0wzcdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
double Or0, double w0, double wz):
cdef double opz = 1.0 + z
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
Ode0 * Odescl, -0.5)
# With massive neutrinos
def w0wzcdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0,
double wz):
cdef double opz = 1.0 + z
cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0 * Odescl, -0.5)
######## Flatw0wzCDM
# No relativistic species
def fw0wzcdm_inv_efunc_norel(double z, double Om0, double Ode0,
double w0, double wz):
cdef double opz = 1.0 + z
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow(opz**3 * Om0 + Ode0 * Odescl, -0.5)
# Massless neutrinos
def fw0wzcdm_inv_efunc_nomnu(double z, double Om0, double Ode0,
double Or0, double w0, double wz):
cdef double opz = 1.0 + z
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow((opz * Or0 + Om0) * opz**3 + Ode0 * Odescl, -0.5)
# With massive neutrinos
def fw0wzcdm_inv_efunc(double z, double Om0, double Ode0,
double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0,
double wz):
cdef double opz = 1.0 + z
cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
return pow((opz * Or0 + Om0) * opz**3 + Ode0 * Odescl, -0.5)

Expected behavior

Matches fix #14991

How to Reproduce

N/A

Versions

N/A

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions