Generated by Cython 0.11.2 on Wed Nov 18 14:18:11 2009
Raw output: _home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.c
1:
goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_1); __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0"); Py_DECREF(__pyx_m); __pyx_m = 0; __pyx_L0:; __Pyx_FinishRefcountContext(); #if PY_MAJOR_VERSION < 3 return; #else return __pyx_m; #endif }
2: include "interrupt.pxi" # ctrl-c interrupt block support
3: include "stdsage.pxi" # ctrl-c interrupt block support
4:
5: include "cdefs.pxi"
6: import numpy
__pyx_1 = __Pyx_Import(__pyx_kp_numpy, 0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); if (PyObject_SetAttr(__pyx_m, __pyx_kp_numpy, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_1); __pyx_1 = 0;
7: cimport numpy
8:
9: cint = numpy.int
__pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_numpy); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_int); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_1); __pyx_1 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_kp_cint, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
10: ctypedef numpy.int_t cint_t
11: cdouble = numpy.double
__pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_numpy); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_double); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_1); __pyx_1 = 0; if (PyObject_SetAttr(__pyx_m, __pyx_kp_cdouble, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
12: ctypedef numpy.double_t cdouble_t
13:
14: cpdef numpy.ndarray[cdouble_t] hysteron_rho(double t, numpy.ndarray y, double A):
static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_rho(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_rho(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_rho[] = "File: _home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.pyx (starting at line 14)\n\n Return the propensities for the reactions of the hysteron model of order `n = 3`.\n \n Parameters\n ----------\n t : float\n The current time.\n \n y : array\n The molecule numbers of the system, i.e., [X, Y, Z, L].\n \n A : float\n The reaction area.\n \n Returns\n -------\n rho : array\n The reaction propensities.\n "; static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_rho(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_t; PyArrayObject *__pyx_v_y = 0; double __pyx_v_A; PyObject *__pyx_r = NULL; static PyObject **__pyx_pyargnames[] = {&__pyx_kp_t,&__pyx_kp_y,&__pyx_kp_A,0}; __Pyx_SetupRefcountContext("hysteron_rho"); __pyx_self = __pyx_self; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args = PyDict_Size(__pyx_kwds); PyObject* values[3] = {0,0,0}; switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); case 0: break; default: goto __pyx_L5_argtuple_error; } switch (PyTuple_GET_SIZE(__pyx_args)) { case 0: values[0] = PyDict_GetItem(__pyx_kwds, __pyx_kp_t); if (likely(values[0])) kw_args--; else goto __pyx_L5_argtuple_error; case 1: values[1] = PyDict_GetItem(__pyx_kwds, __pyx_kp_y); if (likely(values[1])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("hysteron_rho", 1, 3, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } case 2: values[2] = PyDict_GetItem(__pyx_kwds, __pyx_kp_A); if (likely(values[2])) kw_args--; else { __Pyx_RaiseArgtupleInvalid("hysteron_rho", 1, 3, 3, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, PyTuple_GET_SIZE(__pyx_args), "hysteron_rho") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } __pyx_v_t = __pyx_PyFloat_AsDouble(values[0]); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = ((PyArrayObject *)values[1]); __pyx_v_A = __pyx_PyFloat_AsDouble(values[2]); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { __pyx_v_t = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 0)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_v_y = ((PyArrayObject *)PyTuple_GET_ITEM(__pyx_args, 1)); __pyx_v_A = __pyx_PyFloat_AsDouble(PyTuple_GET_ITEM(__pyx_args, 2)); if (unlikely(PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("hysteron_rho", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L3_error;} __pyx_L3_error:; __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_rho"); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_5numpy_ndarray, 1, "y", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_rho(__pyx_v_t, __pyx_v_y, __pyx_v_A, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_rho"); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_FinishRefcountContext(); return __pyx_r; }
15: """
16: Return the propensities for the reactions of the hysteron model of order `n = 3`.
17:
18: Parameters
19: ----------
20: t : float
21: The current time.
22:
23: y : array
24: The molecule numbers of the system, i.e., [X, Y, Z, L].
25:
26: A : float
27: The reaction area.
28:
29: Returns
30: -------
31: rho : array
32: The reaction propensities.
33: """
34: cdef double k1f = 5
__pyx_v_k1f = 5;
35: cdef double k1r = 1e-2
__pyx_v_k1r = 0.01;
36: cdef double k2 = 1e-3
__pyx_v_k2 = 0.001;
37: cdef double k3 = 1e-4
__pyx_v_k3 = 0.0001;
38: cdef double k4 = 0
__pyx_v_k4 = 0;
39: cdef double kl2 = 1e-2
__pyx_v_kl2 = 0.01;
40: cdef double kl3 = 5e-3
__pyx_v_kl3 = 0.0050000000000000001;
41: cdef int X = y[0]
__pyx_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_y), 0, sizeof(long), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_1); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 41; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_v_X = __pyx_t_1;
42: cdef int Y = y[1]
__pyx_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_y), 1, sizeof(long), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_1); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 42; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_v_Y = __pyx_t_1;
43: cdef int Z = y[2]
__pyx_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_y), 2, sizeof(long), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_1); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 43; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_v_Z = __pyx_t_1;
44: cdef int L = y[3]
__pyx_1 = __Pyx_GetItemInt(((PyObject *)__pyx_v_y), 3, sizeof(long), PyInt_FromLong); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = __Pyx_PyInt_AsInt(__pyx_1); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_v_L = __pyx_t_1;
45: return numpy.array([k1f * Y, k1r * X, k2 * Y * (Y - 1) / A, k2 * Y * Z / A, k3 * Z, k4 * L * X / A, kl2 * L * Y * (Y - 1) / A**2, kl2 * L * Y * Z / A**2, kl3 * L * Y * (Y - 1) * (Y - 2) / A**2, kl3 * L * Y * (Y - 1) * Z / A**3, kl3 * L * Y * Z * (Z - 1) / A**3])
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_numpy); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_2 = PyObject_GetAttr(__pyx_1, __pyx_kp_array); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_t_3 = PyFloat_FromDouble((__pyx_v_k1f * __pyx_v_Y)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble((__pyx_v_k1r * __pyx_v_X)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyFloat_FromDouble((((__pyx_v_k2 * __pyx_v_Y) * (__pyx_v_Y - 1)) / __pyx_v_A)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = PyFloat_FromDouble((((__pyx_v_k2 * __pyx_v_Y) * __pyx_v_Z) / __pyx_v_A)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_6); __pyx_t_7 = PyFloat_FromDouble((__pyx_v_k3 * __pyx_v_Z)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_7); __pyx_t_8 = PyFloat_FromDouble((((__pyx_v_k4 * __pyx_v_L) * __pyx_v_X) / __pyx_v_A)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = PyFloat_FromDouble(((((__pyx_v_kl2 * __pyx_v_L) * __pyx_v_Y) * (__pyx_v_Y - 1)) / pow(__pyx_v_A, 2))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_9); __pyx_t_10 = PyFloat_FromDouble(((((__pyx_v_kl2 * __pyx_v_L) * __pyx_v_Y) * __pyx_v_Z) / pow(__pyx_v_A, 2))); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_10); __pyx_t_11 = PyFloat_FromDouble((((((__pyx_v_kl3 * __pyx_v_L) * __pyx_v_Y) * (__pyx_v_Y - 1)) * (__pyx_v_Y - 2)) / pow(__pyx_v_A, 2))); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_11); __pyx_t_12 = PyFloat_FromDouble((((((__pyx_v_kl3 * __pyx_v_L) * __pyx_v_Y) * (__pyx_v_Y - 1)) * __pyx_v_Z) / pow(__pyx_v_A, 3))); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_12); __pyx_t_13 = PyFloat_FromDouble((((((__pyx_v_kl3 * __pyx_v_L) * __pyx_v_Y) * __pyx_v_Z) * (__pyx_v_Z - 1)) / pow(__pyx_v_A, 3))); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_13); __pyx_t_14 = PyList_New(11); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_14)); PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_3); PyList_SET_ITEM(__pyx_t_14, 1, __pyx_t_4); __Pyx_GIVEREF(__pyx_t_4); PyList_SET_ITEM(__pyx_t_14, 2, __pyx_t_5); __Pyx_GIVEREF(__pyx_t_5); PyList_SET_ITEM(__pyx_t_14, 3, __pyx_t_6); __Pyx_GIVEREF(__pyx_t_6); PyList_SET_ITEM(__pyx_t_14, 4, __pyx_t_7); __Pyx_GIVEREF(__pyx_t_7); PyList_SET_ITEM(__pyx_t_14, 5, __pyx_t_8); __Pyx_GIVEREF(__pyx_t_8); PyList_SET_ITEM(__pyx_t_14, 6, __pyx_t_9); __Pyx_GIVEREF(__pyx_t_9); PyList_SET_ITEM(__pyx_t_14, 7, __pyx_t_10); __Pyx_GIVEREF(__pyx_t_10); PyList_SET_ITEM(__pyx_t_14, 8, __pyx_t_11); __Pyx_GIVEREF(__pyx_t_11); PyList_SET_ITEM(__pyx_t_14, 9, __pyx_t_12); __Pyx_GIVEREF(__pyx_t_12); PyList_SET_ITEM(__pyx_t_14, 10, __pyx_t_13); __Pyx_GIVEREF(__pyx_t_13); __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_5 = 0; __pyx_t_6 = 0; __pyx_t_7 = 0; __pyx_t_8 = 0; __pyx_t_9 = 0; __pyx_t_10 = 0; __pyx_t_11 = 0; __pyx_t_12 = 0; __pyx_t_13 = 0; __pyx_t_13 = PyTuple_New(1); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_13)); PyTuple_SET_ITEM(__pyx_t_13, 0, ((PyObject *)__pyx_t_14)); __Pyx_GIVEREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0; __pyx_t_14 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_13), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0; if (!(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyArrayObject *)__pyx_t_14); __pyx_t_14 = 0; goto __pyx_L0; __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_7); __Pyx_XDECREF(__pyx_t_8); __Pyx_XDECREF(__pyx_t_9); __Pyx_XDECREF(__pyx_t_10); __Pyx_XDECREF(__pyx_t_11); __Pyx_XDECREF(__pyx_t_12); __Pyx_XDECREF(__pyx_t_13); __Pyx_XDECREF(__pyx_t_14); __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_rho"); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_FinishRefcountContext(); return __pyx_r; }
46:
47: cpdef numpy.ndarray[cint_t] hysteron_dy(int i):
static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_dy(PyObject *__pyx_self, PyObject *__pyx_arg_i); static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_dy(PyObject *__pyx_self, PyObject *__pyx_arg_i); /*proto*/ static char __pyx_doc_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_dy[] = "File: _home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.pyx (starting at line 47)\n\n Return the state change vectors for the reactions of the hysteron model of order `n = 3`.\n \n Parameters\n ----------\n i : int\n The reaction number (zero-ordered):\n 0. Y -> X\n 1. X -> Y\n 2. 2Y -> 2Z\n 3. Y + Z -> 2Z\n 4. Z -> Y\n 5. L + X -> L + Y\n 6. L + 2Y -> L + 2Z\n 7. L + Y + Z -> L + 2Z\n 8. L + 3Y -> L + 3Z\n 9. L + 2Y + Z -> L + 3Z\n 10. L + Y + 2Z -> L + 3Z\n \n Returns\n -------\n dy : array\n The state change vector of reaction `i`.\n "; static PyObject *__pyx_pf_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_dy(PyObject *__pyx_self, PyObject *__pyx_arg_i) { int __pyx_v_i; PyObject *__pyx_r = NULL; __Pyx_SetupRefcountContext("hysteron_dy"); __pyx_self = __pyx_self; assert(__pyx_arg_i); { __pyx_v_i = __Pyx_PyInt_AsInt(__pyx_arg_i); if (unlikely((__pyx_v_i == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L3_error;} } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_dy"); return NULL; __pyx_L4_argument_unpacking_done:; __Pyx_XDECREF(__pyx_r); __pyx_t_1 = ((PyObject *)__pyx_f_69_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0_hysteron_dy(__pyx_v_i, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_dy"); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_FinishRefcountContext(); return __pyx_r; }
48: """
49: Return the state change vectors for the reactions of the hysteron model of order `n = 3`.
50:
51: Parameters
52: ----------
init_csage();
53: i : int
54: The reaction number (zero-ordered):
55: 0. Y -> X
56: 1. X -> Y
57: 2. 2Y -> 2Z
58: 3. Y + Z -> 2Z
59: 4. Z -> Y
60: 5. L + X -> L + Y
61: 6. L + 2Y -> L + 2Z
62: 7. L + Y + Z -> L + 2Z
63: 8. L + 3Y -> L + 3Z
64: 9. L + 2Y + Z -> L + 3Z
65: 10. L + Y + 2Z -> L + 3Z
66:
67: Returns
68: -------
69: dy : array
70: The state change vector of reaction `i`.
71: """
72: if i == 0: dy = [ 1, -1, 0, 0]
switch (__pyx_v_i) { case 0: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
73: elif i == 1: dy = [-1, 1, 0, 0]
case 1: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
74: elif i == 2: dy = [ 0, -2, 2, 0]
case 2: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_2); __Pyx_GIVEREF(__pyx_int_neg_2); __Pyx_INCREF(__pyx_int_2); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
75: elif i == 3: dy = [ 0, -1, 1, 0]
case 3: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
76: elif i == 4: dy = [ 0, 1, -1, 0]
case 4: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
77: elif i == 5: dy = [-1, 1, 0, 0]
case 5: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
78: elif i == 6: dy = [ 0, -2, 2, 0]
case 6: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_2); __Pyx_GIVEREF(__pyx_int_neg_2); __Pyx_INCREF(__pyx_int_2); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
79: elif i == 7: dy = [ 0, -1, 1, 0]
case 7: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
80: elif i == 8: dy = [ 0, -3, 3, 0]
case 8: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_3); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_3); __Pyx_GIVEREF(__pyx_int_neg_3); __Pyx_INCREF(__pyx_int_3); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_3); __Pyx_GIVEREF(__pyx_int_3); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
81: elif i == 9: dy = [ 0, -2, 2, 0]
case 9: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_2); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_2); __Pyx_GIVEREF(__pyx_int_neg_2); __Pyx_INCREF(__pyx_int_2); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_2); __Pyx_GIVEREF(__pyx_int_2); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break;
82: elif i == 10: dy = [ 0, -1, 1, 0]
case 10: __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_1)); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_INCREF(__pyx_int_neg_1); PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_neg_1); __Pyx_GIVEREF(__pyx_int_neg_1); __Pyx_INCREF(__pyx_int_1); PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_1); __Pyx_GIVEREF(__pyx_int_1); __Pyx_INCREF(__pyx_int_0); PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_0); __Pyx_GIVEREF(__pyx_int_0); __Pyx_DECREF(__pyx_v_dy); __pyx_v_dy = ((PyObject *)__pyx_t_1); __pyx_t_1 = 0; break; }
83: return numpy.array(dy)
__Pyx_XDECREF(((PyObject *)__pyx_r)); __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_kp_numpy); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_1); __pyx_t_1 = PyObject_GetAttr(__pyx_1, __pyx_kp_array); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_1); __pyx_1 = 0; __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(((PyObject *)__pyx_t_2)); __Pyx_INCREF(__pyx_v_dy); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_dy); __Pyx_GIVEREF(__pyx_v_dy); __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0; if (!(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_5numpy_ndarray))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;} __pyx_r = ((PyArrayObject *)__pyx_t_3); __pyx_t_3 = 0; goto __pyx_L0; __pyx_r = ((PyArrayObject *)Py_None); __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_1); __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("_home_sage_sagenb_sage_notebook_sagenb_home_klho_12_code_sage8_spyx_0.hysteron_dy"); __pyx_r = 0; __pyx_L0:; __Pyx_DECREF(__pyx_v_dy); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_FinishRefcountContext(); return __pyx_r; }