Generated by Cython 0.29.30
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: cosmo.c
001: #cython: language_level=3, boundscheck=False
002: """ Cython inverse efuncs for cosmology integrals"""
003:
004: cimport cython
005: from libc.math cimport exp, pow
006:
007: ## Inverse efunc methods for various dark energy subclasses
008: ## These take only scalar arguments since that is what the integral
009: ## routines give them.
010:
011: ## Implementation notes:
012: ## * Using a python list for nu_y seems to be faster than a ndarray,
013: ## given that nu_y generally has a small number of elements,
014: ## even when you turn off bounds checking, etc.
015: ## * Using pow(x, -0.5) is slightly faster than x**(-0.5) and
016: ## even more so than 1.0 / sqrt(x)
017: ## * Hardwiring in the p, 1/p, k, prefac values in nufunc is
018: ## nontrivially faster than declaring them with cdef
019:
020: ######### LambdaCDM
021: # No relativistic species
+022: def lcdm_inv_efunc_norel(double z, double Om0, double Ode0, double Ok0):
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_1lcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_1lcdm_inv_efunc_norel = {"lcdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_1lcdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_1lcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_norel", 1, 4, 4, 1); __PYX_ERR(0, 22, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_norel", 1, 4, 4, 2); __PYX_ERR(0, 22, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_norel", 1, 4, 4, 3); __PYX_ERR(0, 22, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lcdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 22, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 22, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_norel", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 22, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.lcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_lcdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_lcdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.lcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple_ = PyTuple_Pack(5, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_1lcdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_lcdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 22, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple_, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_lcdm_inv_efunc_norel, 22, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 22, __pyx_L1_error)
+023: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+024: return pow(opz**2 * (opz * Om0 + Ok0) + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 2.0) * ((__pyx_v_opz * __pyx_v_Om0) + __pyx_v_Ok0)) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 24, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
025:
026: # Massless neutrinos
+027: def lcdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_3lcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_3lcdm_inv_efunc_nomnu = {"lcdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_3lcdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_3lcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Or0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Or0,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_nomnu", 1, 5, 5, 1); __PYX_ERR(0, 27, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_nomnu", 1, 5, 5, 2); __PYX_ERR(0, 27, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_nomnu", 1, 5, 5, 3); __PYX_ERR(0, 27, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_nomnu", 1, 5, 5, 4); __PYX_ERR(0, 27, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lcdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 27, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 27, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 28, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc_nomnu", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 27, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.lcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_2lcdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Or0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_2lcdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Or0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.lcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__3 = PyTuple_Pack(6, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Or0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_3lcdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_lcdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 27, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__3, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_lcdm_inv_efunc_nomnu, 27, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 27, __pyx_L1_error)
028: double Or0):
+029: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+030: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(pow(((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0)) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 30, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
031:
032: # With massive neutrinos
+033: def lcdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_5lcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_5lcdm_inv_efunc = {"lcdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_5lcdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_5lcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 1); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 2); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 3); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 4); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 5); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 6); __PYX_ERR(0, 33, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, 7); __PYX_ERR(0, 33, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "lcdm_inv_efunc") < 0)) __PYX_ERR(0, 33, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 33, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 33, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 33, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 33, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 34, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[7]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("lcdm_inv_efunc", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 33, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.lcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 34, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_4lcdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_4lcdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("lcdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.lcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__5 = PyTuple_Pack(10, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_opz, __pyx_n_s_Or0); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_5lcdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_lcdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 33, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(8, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__5, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_lcdm_inv_efunc, 33, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 33, __pyx_L1_error)
034: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y):
035:
+036: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+037: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 37, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+038: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(pow(((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0)) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 38, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
039:
040: ######## FlatLambdaCDM
041: # No relativistic species
+042: def flcdm_inv_efunc_norel(double z, double Om0, double Ode0):
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_7flcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_7flcdm_inv_efunc_norel = {"flcdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_7flcdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_7flcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_norel", 1, 3, 3, 1); __PYX_ERR(0, 42, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_norel", 1, 3, 3, 2); __PYX_ERR(0, 42, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "flcdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 42, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 42, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 42, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 42, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_norel", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 42, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.flcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_6flcdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_6flcdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.flcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__7 = PyTuple_Pack(3, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_7flcdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_flcdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 42, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__8 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__7, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_flcdm_inv_efunc_norel, 42, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__8)) __PYX_ERR(0, 42, __pyx_L1_error)
+043: return pow((1. + z)**3 * Om0 + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(pow(((pow((1. + __pyx_v_z), 3.0) * __pyx_v_Om0) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 43, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
044:
045: # Massless neutrinos
+046: def flcdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Or0):
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_9flcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_9flcdm_inv_efunc_nomnu = {"flcdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_9flcdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_9flcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Or0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Or0,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_nomnu", 1, 4, 4, 1); __PYX_ERR(0, 46, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_nomnu", 1, 4, 4, 2); __PYX_ERR(0, 46, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_nomnu", 1, 4, 4, 3); __PYX_ERR(0, 46, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "flcdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 46, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 46, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc_nomnu", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 46, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.flcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_8flcdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Or0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_8flcdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Or0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.flcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__9 = PyTuple_Pack(5, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Or0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_9flcdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_flcdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 46, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__9, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_flcdm_inv_efunc_nomnu, 46, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 46, __pyx_L1_error)
+047: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+048: return pow(opz**3 * (opz * Or0 + Om0) + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 3.0) * ((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0)) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
049:
050: # With massive neutrinos
+051: def flcdm_inv_efunc(double z, double Om0, double Ode0, double Ogamma0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_11flcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_11flcdm_inv_efunc = {"flcdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_11flcdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_11flcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 1); __PYX_ERR(0, 51, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 2); __PYX_ERR(0, 51, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 3); __PYX_ERR(0, 51, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 4); __PYX_ERR(0, 51, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 5); __PYX_ERR(0, 51, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, 6); __PYX_ERR(0, 51, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "flcdm_inv_efunc") < 0)) __PYX_ERR(0, 51, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 51, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 52, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[6]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("flcdm_inv_efunc", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 51, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.flcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 52, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_10flcdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_10flcdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("flcdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.flcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__11 = PyTuple_Pack(9, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_opz, __pyx_n_s_Or0); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_11flcdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_flcdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 51, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__12 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__11, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_flcdm_inv_efunc, 51, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__12)) __PYX_ERR(0, 51, __pyx_L1_error)
052: double NeffPerNu, int nmasslessnu, list nu_y):
053:
+054: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+055: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 55, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+056: return pow(opz**3 * (opz * Or0 + Om0) + Ode0, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 3.0) * ((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0)) + __pyx_v_Ode0), -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 56, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
057:
058: ######## wCDM
059: # No relativistic species
+060: def wcdm_inv_efunc_norel(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_13wcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_13wcdm_inv_efunc_norel = {"wcdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_13wcdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_13wcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_w0,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_norel", 1, 5, 5, 1); __PYX_ERR(0, 60, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_norel", 1, 5, 5, 2); __PYX_ERR(0, 60, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_norel", 1, 5, 5, 3); __PYX_ERR(0, 60, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_norel", 1, 5, 5, 4); __PYX_ERR(0, 60, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wcdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 60, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 60, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 60, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 60, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 61, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_norel", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 60, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_12wcdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_12wcdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_w0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.wcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__13 = PyTuple_Pack(6, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_w0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_13wcdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wcdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wcdm_inv_efunc_norel, 60, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 60, __pyx_L1_error)
061: double Ok0, double w0):
+062: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+063: return pow(opz**2 * (opz * Om0 + Ok0) +
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_1 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 2.0) * ((__pyx_v_opz * __pyx_v_Om0) + __pyx_v_Ok0)) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
064: Ode0 * opz**(3. * (1.0 + w0)), -0.5)
065:
066: # Massless neutrinos
+067: def wcdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_15wcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_15wcdm_inv_efunc_nomnu = {"wcdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_15wcdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_15wcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Or0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Or0,&__pyx_n_s_w0,0}; PyObject* values[6] = {0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, 1); __PYX_ERR(0, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, 2); __PYX_ERR(0, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, 3); __PYX_ERR(0, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, 4); __PYX_ERR(0, 67, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, 5); __PYX_ERR(0, 67, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wcdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 67, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 67, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 68, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc_nomnu", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 67, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_14wcdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Or0, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_14wcdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Or0, double __pyx_v_w0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.wcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__15 = PyTuple_Pack(7, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Or0, __pyx_n_s_w0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_15wcdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wcdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(6, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wcdm_inv_efunc_nomnu, 67, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 67, __pyx_L1_error)
068: double Or0, double w0):
+069: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+070: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_1 = PyFloat_FromDouble(pow(((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0)) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
071: Ode0 * opz**(3. * (1.0 + w0)), -0.5)
072:
073: # With massive neutrinos
+074: def wcdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_17wcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_17wcdm_inv_efunc = {"wcdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_17wcdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_17wcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_w0,0}; PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); CYTHON_FALLTHROUGH; case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 1); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 2); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 3); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 4); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 5); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 6); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 7); __PYX_ERR(0, 74, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, 8); __PYX_ERR(0, 74, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wcdm_inv_efunc") < 0)) __PYX_ERR(0, 74, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 74, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[7]); __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 75, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wcdm_inv_efunc", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 74, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 75, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_16wcdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_16wcdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_w0) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wcdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.wcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__17 = PyTuple_Pack(11, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_w0, __pyx_n_s_opz, __pyx_n_s_Or0); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_17wcdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wcdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 74, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__18 = (PyObject*)__Pyx_PyCode_New(9, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__17, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wcdm_inv_efunc, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__18)) __PYX_ERR(0, 74, __pyx_L1_error)
075: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0):
076:
+077: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+078: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 78, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+079: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_2 = PyFloat_FromDouble(pow(((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0)) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
080: Ode0 * opz**(3. * (1.0 + w0)), -0.5)
081:
082: ######## Flat wCDM
083: # No relativistic species
+084: def fwcdm_inv_efunc_norel(double z, double Om0, double Ode0, double w0):
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_19fwcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_19fwcdm_inv_efunc_norel = {"fwcdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_19fwcdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_19fwcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_w0,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_norel", 1, 4, 4, 1); __PYX_ERR(0, 84, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_norel", 1, 4, 4, 2); __PYX_ERR(0, 84, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_norel", 1, 4, 4, 3); __PYX_ERR(0, 84, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fwcdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 84, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 84, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_norel", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 84, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_18fwcdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_18fwcdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_w0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__19 = PyTuple_Pack(5, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_w0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_19fwcdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fwcdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 84, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__20 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__19, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fwcdm_inv_efunc_norel, 84, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__20)) __PYX_ERR(0, 84, __pyx_L1_error)
+085: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+086: return pow(opz**3 * Om0 + Ode0 * opz**(3. * (1.0 + w0)), -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 3.0) * __pyx_v_Om0) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
087:
088: # Massless neutrinos
+089: def fwcdm_inv_efunc_nomnu(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_21fwcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_21fwcdm_inv_efunc_nomnu = {"fwcdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_21fwcdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_21fwcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Or0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Or0,&__pyx_n_s_w0,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_nomnu", 1, 5, 5, 1); __PYX_ERR(0, 89, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_nomnu", 1, 5, 5, 2); __PYX_ERR(0, 89, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_nomnu", 1, 5, 5, 3); __PYX_ERR(0, 89, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_nomnu", 1, 5, 5, 4); __PYX_ERR(0, 89, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fwcdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 89, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 89, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 90, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 90, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc_nomnu", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 89, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_20fwcdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Or0, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_20fwcdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Or0, double __pyx_v_w0) { double __pyx_v_opz; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__21 = PyTuple_Pack(6, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Or0, __pyx_n_s_w0, __pyx_n_s_opz); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_21fwcdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fwcdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 89, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(5, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fwcdm_inv_efunc_nomnu, 89, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 89, __pyx_L1_error)
090: double Or0, double w0):
+091: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+092: return pow(opz**3 * (opz * Or0 + Om0) +
__Pyx_XDECREF(__pyx_r); /* … */ __pyx_t_1 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 3.0) * ((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0)) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0;
093: Ode0 * opz**(3. * (1.0 + w0)), -0.5)
094:
095: # With massive neutrinos
+096: def fwcdm_inv_efunc(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_23fwcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_23fwcdm_inv_efunc = {"fwcdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_23fwcdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_23fwcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_w0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_w0,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 1); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 2); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 3); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 4); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 5); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 6); __PYX_ERR(0, 96, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, 7); __PYX_ERR(0, 96, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fwcdm_inv_efunc") < 0)) __PYX_ERR(0, 96, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 96, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 97, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 97, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 97, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[6]); __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 97, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fwcdm_inv_efunc", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 96, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 97, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_22fwcdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_w0); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_22fwcdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_w0) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fwcdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.fwcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__23 = PyTuple_Pack(10, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_w0, __pyx_n_s_opz, __pyx_n_s_Or0); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_23fwcdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fwcdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(8, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fwcdm_inv_efunc, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 96, __pyx_L1_error)
097: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0):
098:
+099: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+100: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+101: return pow(opz**3 * (opz * Or0 + Om0) + Ode0 * opz**(3. * (1.0 + w0)), -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble(pow(((pow(__pyx_v_opz, 3.0) * ((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0)) + (__pyx_v_Ode0 * pow(__pyx_v_opz, (3. * (1.0 + __pyx_v_w0))))), -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
102:
103: ######## w0waCDM
104: # No relativistic species
+105: def w0wacdm_inv_efunc_norel(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_25w0wacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_25w0wacdm_inv_efunc_norel = {"w0wacdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_25w0wacdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_25w0wacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[6] = {0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, 1); __PYX_ERR(0, 105, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, 2); __PYX_ERR(0, 105, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, 3); __PYX_ERR(0, 105, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, 4); __PYX_ERR(0, 105, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, 5); __PYX_ERR(0, 105, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wacdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 105, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 105, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 106, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_norel", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 105, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_24w0wacdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_24w0wacdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__25 = PyTuple_Pack(8, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_25w0wacdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wacdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(6, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_w0wacdm_inv_efunc_norel, 105, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 105, __pyx_L1_error)
106: double w0, double wa):
+107: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+108: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_1 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 108, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+109: return pow(opz**2 * (opz * Om0 + Ok0) + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, 2.0) * ((__pyx_v_opz * __pyx_v_Om0) + __pyx_v_Ok0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
110:
111: # Massless neutrinos
+112: def w0wacdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_27w0wacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_27w0wacdm_inv_efunc_nomnu = {"w0wacdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_27w0wacdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_27w0wacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Or0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Or0,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 1); __PYX_ERR(0, 112, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 2); __PYX_ERR(0, 112, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 3); __PYX_ERR(0, 112, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 4); __PYX_ERR(0, 112, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 5); __PYX_ERR(0, 112, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, 6); __PYX_ERR(0, 112, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wacdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 112, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 112, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 113, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc_nomnu", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 112, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_26w0wacdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Or0, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_26w0wacdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Or0, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__27 = PyTuple_Pack(9, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Or0, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_27w0wacdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wacdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 112, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_w0wacdm_inv_efunc_nomnu, 112, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 112, __pyx_L1_error)
113: double Or0, double w0, double wa):
+114: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+115: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_1 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 115, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+116: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+117: Ode0 * Odescl, -0.5)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
118:
+119: def w0wacdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_29w0wacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_29w0wacdm_inv_efunc = {"w0wacdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_29w0wacdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_29w0wacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); CYTHON_FALLTHROUGH; case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); CYTHON_FALLTHROUGH; case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 1); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 2); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 3); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 4); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 5); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 6); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 7); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 8); __PYX_ERR(0, 119, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 9: if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, 9); __PYX_ERR(0, 119, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wacdm_inv_efunc") < 0)) __PYX_ERR(0, 119, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 10) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); values[9] = PyTuple_GET_ITEM(__pyx_args, 9); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 119, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[7]); __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 120, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 121, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wacdm_inv_efunc", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 119, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 120, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_28w0wacdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_28w0wacdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wacdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.w0wacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__29 = PyTuple_Pack(13, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Or0, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_29w0wacdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wacdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(10, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_w0wacdm_inv_efunc, 119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 119, __pyx_L1_error)
120: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0,
121: double wa):
122:
+123: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+124: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+125: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_4 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 125, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_4 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+126: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
127:
128: ######## Flatw0waCDM
129: # No relativistic species
+130: def fw0wacdm_inv_efunc_norel(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_31fw0wacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_31fw0wacdm_inv_efunc_norel = {"fw0wacdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_31fw0wacdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_31fw0wacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[5] = {0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_norel", 1, 5, 5, 1); __PYX_ERR(0, 130, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_norel", 1, 5, 5, 2); __PYX_ERR(0, 130, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_norel", 1, 5, 5, 3); __PYX_ERR(0, 130, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_norel", 1, 5, 5, 4); __PYX_ERR(0, 130, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fw0wacdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 130, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 5) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_norel", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 130, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_30fw0wacdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_30fw0wacdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__31 = PyTuple_Pack(7, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__31); __Pyx_GIVEREF(__pyx_tuple__31); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_31fw0wacdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fw0wacdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(5, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fw0wacdm_inv_efunc_norel, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 130, __pyx_L1_error)
131: double w0, double wa):
+132: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+133: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_1 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 133, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+134: return pow(opz**3 * Om0 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, 3.0) * __pyx_v_Om0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
135:
136: # Massless neutrinos
+137: def fw0wacdm_inv_efunc_nomnu(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_33fw0wacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_33fw0wacdm_inv_efunc_nomnu = {"fw0wacdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_33fw0wacdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_33fw0wacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Or0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Or0,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[6] = {0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, 1); __PYX_ERR(0, 137, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, 2); __PYX_ERR(0, 137, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, 3); __PYX_ERR(0, 137, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, 4); __PYX_ERR(0, 137, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, 5); __PYX_ERR(0, 137, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fw0wacdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 137, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 138, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc_nomnu", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 137, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_32fw0wacdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Or0, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_32fw0wacdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Or0, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__33 = PyTuple_Pack(8, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Or0, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__33); __Pyx_GIVEREF(__pyx_tuple__33); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_33fw0wacdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fw0wacdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 137, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(6, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__33, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fw0wacdm_inv_efunc_nomnu, 137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 137, __pyx_L1_error)
138: double Or0, double w0, double wa):
+139: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+140: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_1 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 140, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+141: return pow((opz * Or0 + Om0) * opz**3 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * pow(__pyx_v_opz, 3.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
142:
143: # With massive neutrinos
+144: def fw0wacdm_inv_efunc(double z, double Om0, double Ode0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_35fw0wacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_35fw0wacdm_inv_efunc = {"fw0wacdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_35fw0wacdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_35fw0wacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_w0; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_w0,&__pyx_n_s_wa,0}; PyObject* values[9] = {0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); CYTHON_FALLTHROUGH; case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 1); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 2); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 3); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 4); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 5); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 6); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 7); __PYX_ERR(0, 144, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, 8); __PYX_ERR(0, 144, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fw0wacdm_inv_efunc") < 0)) __PYX_ERR(0, 144, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 9) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 144, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[6]); __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 146, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("fw0wacdm_inv_efunc", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 144, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 145, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_34fw0wacdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_w0, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_34fw0wacdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_w0, double __pyx_v_wa) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("fw0wacdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.fw0wacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__35 = PyTuple_Pack(12, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_w0, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Or0, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__35); __Pyx_GIVEREF(__pyx_tuple__35); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_35fw0wacdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_fw0wacdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(9, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__35, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_fw0wacdm_inv_efunc, 144, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 144, __pyx_L1_error)
145: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0,
146: double wa):
147:
+148: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+149: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+150: cdef Odescl = opz**(3. * (1 + w0 + wa)) * exp(-3.0 * wa * z / opz)
__pyx_t_4 = ((-3.0 * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 150, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1.0 + __pyx_v_w0) + __pyx_v_wa))) * exp((__pyx_t_4 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+151: return pow((opz * Or0 + Om0) * opz**3 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * pow(__pyx_v_opz, 3.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
152:
153: ######## wpwaCDM
154: # No relativistic species
+155: def wpwacdm_inv_efunc_norel(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_37wpwacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_37wpwacdm_inv_efunc_norel = {"wpwacdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_37wpwacdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_37wpwacdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_wp; double __pyx_v_apiv; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_wp,&__pyx_n_s_apiv,&__pyx_n_s_wa,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 1); __PYX_ERR(0, 155, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 2); __PYX_ERR(0, 155, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 3); __PYX_ERR(0, 155, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wp)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 4); __PYX_ERR(0, 155, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_apiv)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 5); __PYX_ERR(0, 155, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, 6); __PYX_ERR(0, 155, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wpwacdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 155, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 155, __pyx_L3_error) __pyx_v_wp = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_wp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error) __pyx_v_apiv = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_apiv == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 156, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_norel", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 155, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_36wpwacdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_wp, __pyx_v_apiv, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_36wpwacdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_wp, double __pyx_v_apiv, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__37 = PyTuple_Pack(9, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_wp, __pyx_n_s_apiv, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__37); __Pyx_GIVEREF(__pyx_tuple__37); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_37wpwacdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wpwacdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 155, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__37, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wpwacdm_inv_efunc_norel, 155, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 155, __pyx_L1_error)
156: double wp, double apiv, double wa):
+157: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+158: cdef Odescl = opz**(3. * (1. + wp + apiv * wa)) * exp(-3. * wa * z / opz)
__pyx_t_1 = ((-3. * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 158, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_wp) + (__pyx_v_apiv * __pyx_v_wa)))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+159: return pow(opz**2 * (opz * Om0 + Ok0) + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, 2.0) * ((__pyx_v_opz * __pyx_v_Om0) + __pyx_v_Ok0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
160:
161: # Massless neutrinos
+162: def wpwacdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_39wpwacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_39wpwacdm_inv_efunc_nomnu = {"wpwacdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_39wpwacdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_39wpwacdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Or0; double __pyx_v_wp; double __pyx_v_apiv; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Or0,&__pyx_n_s_wp,&__pyx_n_s_apiv,&__pyx_n_s_wa,0}; PyObject* values[8] = {0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 1); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 2); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 3); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 4); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wp)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 5); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_apiv)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 6); __PYX_ERR(0, 162, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, 7); __PYX_ERR(0, 162, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wpwacdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 162, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 8) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 162, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L3_error) __pyx_v_wp = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_wp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L3_error) __pyx_v_apiv = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_apiv == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[7]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 163, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc_nomnu", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 162, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_38wpwacdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Or0, __pyx_v_wp, __pyx_v_apiv, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_38wpwacdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Or0, double __pyx_v_wp, double __pyx_v_apiv, double __pyx_v_wa) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__39 = PyTuple_Pack(10, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Or0, __pyx_n_s_wp, __pyx_n_s_apiv, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__39); __Pyx_GIVEREF(__pyx_tuple__39); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_39wpwacdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wpwacdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 162, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(8, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wpwacdm_inv_efunc_nomnu, 162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 162, __pyx_L1_error)
163: double Or0, double wp, double apiv, double wa):
+164: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+165: cdef Odescl = opz**(3. * (1. + wp + apiv * wa)) * exp(-3. * wa * z / opz)
__pyx_t_1 = ((-3. * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 165, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_wp) + (__pyx_v_apiv * __pyx_v_wa)))) * exp((__pyx_t_1 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+166: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); /* … */ __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_t_1 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_1, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
+167: Ode0 * Odescl, -0.5)
__pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
168:
169: # With massive neutrinos
+170: def wpwacdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_41wpwacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_41wpwacdm_inv_efunc = {"wpwacdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_41wpwacdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_41wpwacdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_wp; double __pyx_v_apiv; double __pyx_v_wa; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_wp,&__pyx_n_s_apiv,&__pyx_n_s_wa,0}; PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10); CYTHON_FALLTHROUGH; case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); CYTHON_FALLTHROUGH; case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); CYTHON_FALLTHROUGH; case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 1); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 2); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 3); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 4); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 5); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 6); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 7); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wp)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 8); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 9: if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_apiv)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 9); __PYX_ERR(0, 170, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 10: if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wa)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, 10); __PYX_ERR(0, 170, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "wpwacdm_inv_efunc") < 0)) __PYX_ERR(0, 170, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 11) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); values[9] = PyTuple_GET_ITEM(__pyx_args, 9); values[10] = PyTuple_GET_ITEM(__pyx_args, 10); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 170, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[7]); __pyx_v_wp = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_wp == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 171, __pyx_L3_error) __pyx_v_apiv = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_apiv == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L3_error) __pyx_v_wa = __pyx_PyFloat_AsDouble(values[10]); if (unlikely((__pyx_v_wa == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 172, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("wpwacdm_inv_efunc", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 170, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 171, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_40wpwacdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_wp, __pyx_v_apiv, __pyx_v_wa); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_40wpwacdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_wp, double __pyx_v_apiv, double __pyx_v_wa) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("wpwacdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.wpwacdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__41 = PyTuple_Pack(14, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_wp, __pyx_n_s_apiv, __pyx_n_s_wa, __pyx_n_s_opz, __pyx_n_s_Or0, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__41); __Pyx_GIVEREF(__pyx_tuple__41); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_41wpwacdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_wpwacdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 170, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(11, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_wpwacdm_inv_efunc, 170, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 170, __pyx_L1_error)
171: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double wp,
172: double apiv, double wa):
173:
+174: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+175: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 175, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+176: cdef Odescl = opz**(3. * (1. + wp + apiv * wa)) * exp(-3. * wa * z / opz)
__pyx_t_4 = ((-3. * __pyx_v_wa) * __pyx_v_z); if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 176, __pyx_L1_error) } __pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_wp) + (__pyx_v_apiv * __pyx_v_wa)))) * exp((__pyx_t_4 / __pyx_v_opz)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+177: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
178:
179: ######## w0wzCDM
180: # No relativistic species
+181: def w0wzcdm_inv_efunc_norel(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_43w0wzcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_43w0wzcdm_inv_efunc_norel = {"w0wzcdm_inv_efunc_norel", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_43w0wzcdm_inv_efunc_norel, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_43w0wzcdm_inv_efunc_norel(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_w0; double __pyx_v_wz; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc_norel (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_w0,&__pyx_n_s_wz,0}; PyObject* values[6] = {0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, 1); __PYX_ERR(0, 181, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, 2); __PYX_ERR(0, 181, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, 3); __PYX_ERR(0, 181, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, 4); __PYX_ERR(0, 181, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wz)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, 5); __PYX_ERR(0, 181, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wzcdm_inv_efunc_norel") < 0)) __PYX_ERR(0, 181, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 6) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 181, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 182, __pyx_L3_error) __pyx_v_wz = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_wz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 182, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_norel", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 181, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_42w0wzcdm_inv_efunc_norel(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_w0, __pyx_v_wz); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_42w0wzcdm_inv_efunc_norel(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_w0, double __pyx_v_wz) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc_norel", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc_norel", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__43 = PyTuple_Pack(8, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_w0, __pyx_n_s_wz, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__43)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__43); __Pyx_GIVEREF(__pyx_tuple__43); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_43w0wzcdm_inv_efunc_norel, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wzcdm_inv_efunc_norel, __pyx_t_1) < 0) __PYX_ERR(0, 181, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__44 = (PyObject*)__Pyx_PyCode_New(6, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__43, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_w0wzcdm_inv_efunc_norel, 181, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__44)) __PYX_ERR(0, 181, __pyx_L1_error)
182: double w0, double wz):
+183: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+184: cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
__pyx_t_1 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_w0) - __pyx_v_wz))) * exp(((-3. * __pyx_v_wz) * __pyx_v_z)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_Odescl = __pyx_t_1; __pyx_t_1 = 0;
+185: return pow(opz**2 * (opz * Om0 + Ok0) + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble((pow(__pyx_v_opz, 2.0) * ((__pyx_v_opz * __pyx_v_Om0) + __pyx_v_Ok0))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_Odescl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
186:
187: # Massless neutrinos
+188: def w0wzcdm_inv_efunc_nomnu(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_45w0wzcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_45w0wzcdm_inv_efunc_nomnu = {"w0wzcdm_inv_efunc_nomnu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_45w0wzcdm_inv_efunc_nomnu, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_45w0wzcdm_inv_efunc_nomnu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Or0; double __pyx_v_w0; double __pyx_v_wz; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc_nomnu (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Or0,&__pyx_n_s_w0,&__pyx_n_s_wz,0}; PyObject* values[7] = {0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 1); __PYX_ERR(0, 188, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 2); __PYX_ERR(0, 188, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 3); __PYX_ERR(0, 188, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Or0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 4); __PYX_ERR(0, 188, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 5); __PYX_ERR(0, 188, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wz)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, 6); __PYX_ERR(0, 188, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wzcdm_inv_efunc_nomnu") < 0)) __PYX_ERR(0, 188, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 7) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 188, __pyx_L3_error) __pyx_v_Or0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Or0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L3_error) __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L3_error) __pyx_v_wz = __pyx_PyFloat_AsDouble(values[6]); if (unlikely((__pyx_v_wz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 189, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc_nomnu", 1, 7, 7, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 188, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_5cosmo_44w0wzcdm_inv_efunc_nomnu(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Or0, __pyx_v_w0, __pyx_v_wz); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_44w0wzcdm_inv_efunc_nomnu(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Or0, double __pyx_v_w0, double __pyx_v_wz) { double __pyx_v_opz; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc_nomnu", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc_nomnu", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__45 = PyTuple_Pack(9, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Or0, __pyx_n_s_w0, __pyx_n_s_wz, __pyx_n_s_opz, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__45)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__45); __Pyx_GIVEREF(__pyx_tuple__45); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_45w0wzcdm_inv_efunc_nomnu, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wzcdm_inv_efunc_nomnu, __pyx_t_1) < 0) __PYX_ERR(0, 188, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_codeobj__46 = (PyObject*)__Pyx_PyCode_New(7, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__45, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_cosmo_pyx, __pyx_n_s_w0wzcdm_inv_efunc_nomnu, 188, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__46)) __PYX_ERR(0, 188, __pyx_L1_error)
189: double Or0, double w0, double wz):
+190: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+191: cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
__pyx_t_1 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_w0) - __pyx_v_wz))) * exp(((-3. * __pyx_v_wz) * __pyx_v_z)))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_Odescl = __pyx_t_1; __pyx_t_1 = 0;
+192: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 +
__Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); /* … */ __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0;
+193: Ode0 * Odescl, -0.5)
__pyx_t_2 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_Odescl); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
194:
195: # With massive neutrinos
+196: def w0wzcdm_inv_efunc(double z, double Om0, double Ode0, double Ok0,
/* Python wrapper */ static PyObject *__pyx_pw_5cosmo_47w0wzcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyMethodDef __pyx_mdef_5cosmo_47w0wzcdm_inv_efunc = {"w0wzcdm_inv_efunc", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5cosmo_47w0wzcdm_inv_efunc, METH_VARARGS|METH_KEYWORDS, 0}; static PyObject *__pyx_pw_5cosmo_47w0wzcdm_inv_efunc(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_z; double __pyx_v_Om0; double __pyx_v_Ode0; double __pyx_v_Ok0; double __pyx_v_Ogamma0; double __pyx_v_NeffPerNu; int __pyx_v_nmasslessnu; PyObject *__pyx_v_nu_y = 0; double __pyx_v_w0; double __pyx_v_wz; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_z,&__pyx_n_s_Om0,&__pyx_n_s_Ode0,&__pyx_n_s_Ok0,&__pyx_n_s_Ogamma0,&__pyx_n_s_NeffPerNu,&__pyx_n_s_nmasslessnu,&__pyx_n_s_nu_y,&__pyx_n_s_w0,&__pyx_n_s_wz,0}; PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9); CYTHON_FALLTHROUGH; case 9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8); CYTHON_FALLTHROUGH; case 8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7); CYTHON_FALLTHROUGH; case 7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6); CYTHON_FALLTHROUGH; case 6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5); CYTHON_FALLTHROUGH; case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_z)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Om0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 1); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ode0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 2); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ok0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 3); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_Ogamma0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 4); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 5: if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_NeffPerNu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 5); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 6: if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nmasslessnu)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 6); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 7: if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nu_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 7); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 8: if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_w0)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 8); __PYX_ERR(0, 196, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 9: if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wz)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, 9); __PYX_ERR(0, 196, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "w0wzcdm_inv_efunc") < 0)) __PYX_ERR(0, 196, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 10) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[4] = PyTuple_GET_ITEM(__pyx_args, 4); values[5] = PyTuple_GET_ITEM(__pyx_args, 5); values[6] = PyTuple_GET_ITEM(__pyx_args, 6); values[7] = PyTuple_GET_ITEM(__pyx_args, 7); values[8] = PyTuple_GET_ITEM(__pyx_args, 8); values[9] = PyTuple_GET_ITEM(__pyx_args, 9); } __pyx_v_z = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_z == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) __pyx_v_Om0 = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_Om0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) __pyx_v_Ode0 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_Ode0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) __pyx_v_Ok0 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_Ok0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 196, __pyx_L3_error) __pyx_v_Ogamma0 = __pyx_PyFloat_AsDouble(values[4]); if (unlikely((__pyx_v_Ogamma0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L3_error) __pyx_v_NeffPerNu = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_NeffPerNu == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L3_error) __pyx_v_nmasslessnu = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_nmasslessnu == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L3_error) __pyx_v_nu_y = ((PyObject*)values[7]); __pyx_v_w0 = __pyx_PyFloat_AsDouble(values[8]); if (unlikely((__pyx_v_w0 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 197, __pyx_L3_error) __pyx_v_wz = __pyx_PyFloat_AsDouble(values[9]); if (unlikely((__pyx_v_wz == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("w0wzcdm_inv_efunc", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 196, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_nu_y), (&PyList_Type), 1, "nu_y", 1))) __PYX_ERR(0, 197, __pyx_L1_error) __pyx_r = __pyx_pf_5cosmo_46w0wzcdm_inv_efunc(__pyx_self, __pyx_v_z, __pyx_v_Om0, __pyx_v_Ode0, __pyx_v_Ok0, __pyx_v_Ogamma0, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y, __pyx_v_w0, __pyx_v_wz); int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_5cosmo_46w0wzcdm_inv_efunc(CYTHON_UNUSED PyObject *__pyx_self, double __pyx_v_z, double __pyx_v_Om0, double __pyx_v_Ode0, double __pyx_v_Ok0, double __pyx_v_Ogamma0, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y, double __pyx_v_w0, double __pyx_v_wz) { double __pyx_v_opz; double __pyx_v_Or0; PyObject *__pyx_v_Odescl = 0; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("w0wzcdm_inv_efunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("cosmo.w0wzcdm_inv_efunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_Odescl); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_tuple__47 = PyTuple_Pack(13, __pyx_n_s_z, __pyx_n_s_Om0, __pyx_n_s_Ode0, __pyx_n_s_Ok0, __pyx_n_s_Ogamma0, __pyx_n_s_NeffPerNu, __pyx_n_s_nmasslessnu, __pyx_n_s_nu_y, __pyx_n_s_w0, __pyx_n_s_wz, __pyx_n_s_opz, __pyx_n_s_Or0, __pyx_n_s_Odescl); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__47); __Pyx_GIVEREF(__pyx_tuple__47); /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_5cosmo_47w0wzcdm_inv_efunc, NULL, __pyx_n_s_cosmo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_w0wzcdm_inv_efunc, __pyx_t_1) < 0) __PYX_ERR(0, 196, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
197: double Ogamma0, double NeffPerNu, int nmasslessnu, list nu_y, double w0,
198: double wz):
199:
+200: cdef double opz = 1.0 + z
__pyx_v_opz = (1.0 + __pyx_v_z);
+201: cdef double Or0 = Ogamma0 * (1.0 + nufunc(opz, NeffPerNu, nmasslessnu, nu_y))
__pyx_t_1 = PyFloat_FromDouble(__pyx_v_Ogamma0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __pyx_f_5cosmo_nufunc(__pyx_v_opz, __pyx_v_NeffPerNu, __pyx_v_nmasslessnu, __pyx_v_nu_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyFloat_AddCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_2); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_Or0 = __pyx_t_4;
+202: cdef Odescl = opz**(3. * (1. + w0 - wz)) * exp(-3. * wz * z)
__pyx_t_2 = PyFloat_FromDouble((pow(__pyx_v_opz, (3. * ((1. + __pyx_v_w0) - __pyx_v_wz))) * exp(((-3. * __pyx_v_wz) * __pyx_v_z)))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_Odescl = __pyx_t_2; __pyx_t_2 = 0;
+203: return pow((((opz * Or0 + Om0) * opz) + Ok0) * opz**2 + Ode0 * Odescl, -0.5)
__Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyFloat_FromDouble((((((__pyx_v_opz * __pyx_v_Or0) + __pyx_v_Om0) * __pyx_v_opz) + __pyx_v_Ok0) * pow(__pyx_v_opz, 2.0))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_Ode0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_v_Odescl); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = PyFloat_FromDouble(pow(__pyx_t_4, -0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0;
204:
205: ######## Neutrino relative density function
206: # Scalar equivalent to FLRW.nu_realative_density in core.py
207: # Please see that for further discussion.
208: # This should only be called with massive neutrinos (e.g., nu_y is not empty)
209: # Briefly, this is just a numerical fitting function to the true relationship,
210: # which is too expensive to want to evaluate directly. The
211: # constants which appear are:
212: # p = 1.83 -> numerical fitting constant from Komatsu et al.
213: # 1/p = 0.54644... -> same constant
214: # k = 0.3173 -> another fitting constant
215: # 7/8 (4/11)^(4/3) = 0.2271... -> fermion/boson constant for neutrino
216: # contribution -- see any cosmology book
217: # The Komatsu reference is: Komatsu et al. 2011, ApJS 192, 18
+218: cdef nufunc(double opz, double NeffPerNu, int nmasslessnu, list nu_y):
static PyObject *__pyx_f_5cosmo_nufunc(double __pyx_v_opz, double __pyx_v_NeffPerNu, int __pyx_v_nmasslessnu, PyObject *__pyx_v_nu_y) { int __pyx_v_N; double __pyx_v_k; double __pyx_v_rel_mass_sum; unsigned int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("nufunc", 0); /* … */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("cosmo.nufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; }
+219: cdef int N = len(nu_y)
if (unlikely(__pyx_v_nu_y == Py_None)) { PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()"); __PYX_ERR(0, 219, __pyx_L1_error) } __pyx_t_1 = PyList_GET_SIZE(__pyx_v_nu_y); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 219, __pyx_L1_error) __pyx_v_N = __pyx_t_1;
+220: cdef double k = 0.3173 / opz
if (unlikely(__pyx_v_opz == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(0, 220, __pyx_L1_error) } __pyx_v_k = (0.3173 / __pyx_v_opz);
+221: cdef double rel_mass_sum = nmasslessnu
__pyx_v_rel_mass_sum = __pyx_v_nmasslessnu;
222: cdef unsigned int i
+223: for i in range(N):
__pyx_t_2 = __pyx_v_N; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4;
+224: rel_mass_sum += pow(1.0 + (k * <double>nu_y[i])**1.83, 0.54644808743)
if (unlikely(__pyx_v_nu_y == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(0, 224, __pyx_L1_error) } __pyx_t_5 = __pyx_PyFloat_AsDouble(PyList_GET_ITEM(__pyx_v_nu_y, __pyx_v_i)); if (unlikely((__pyx_t_5 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 224, __pyx_L1_error) __pyx_v_rel_mass_sum = (__pyx_v_rel_mass_sum + pow((1.0 + pow((__pyx_v_k * ((double)__pyx_t_5)), 1.83)), 0.54644808743)); }
+225: return 0.22710731766 * NeffPerNu * rel_mass_sum
__Pyx_XDECREF(__pyx_r); __pyx_t_6 = PyFloat_FromDouble(((0.22710731766 * __pyx_v_NeffPerNu) * __pyx_v_rel_mass_sum)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __pyx_r = __pyx_t_6; __pyx_t_6 = 0; goto __pyx_L0;