Generated by Cython 0.13 on Mon Apr 11 11:15:26 2011

Raw output: _sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.c

 1: 
 2: include "interrupt.pxi"  # ctrl-c interrupt block support
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":2
 * 
 * include "interrupt.pxi"  # ctrl-c interrupt block support             # <<<<<<<<<<<<<<
 * include "stdsage.pxi"  # ctrl-c interrupt block support
 * 
 */
  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
  if (PyObject_SetAttr(__pyx_m, __pyx_n_s____test__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 3: include "stdsage.pxi"  # ctrl-c interrupt block support
 4: 
 5: include "cdefs.pxi"
 6: from sage.libs.gmp.all cimport *                      # (1)
 7: 
 8: def add_rationals(bytes a, bytes b):                  # (2)
/* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":8
 * from sage.libs.gmp.all cimport *                      # (1)
 * 
 * def add_rationals(bytes a, bytes b):                  # (2)             # <<<<<<<<<<<<<<
 *     cdef mpq_t x, y, z                                # (3)
 *     mpq_init(x); mpq_init(y); mpq_init(z)             # (4)
 */

static PyObject *__pyx_pf_78_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0_add_rationals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_78_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0_add_rationals[] = "File: _sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx (starting at line 8)";
static PyObject *__pyx_pf_78_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0_add_rationals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_b = 0;
  mpq_t __pyx_v_x;
  mpq_t __pyx_v_y;
  mpq_t __pyx_v_z;
  int __pyx_v_n;
  char *__pyx_v_s;
  PyObject *__pyx_v_c = 0;
  PyObject *__pyx_r = NULL;
  static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__a,&__pyx_n_s__b,0};
  __Pyx_RefNannySetupContext("add_rationals");
  __pyx_self = __pyx_self;
  if (unlikely(__pyx_kwds)) {
    Py_ssize_t kw_args = PyDict_Size(__pyx_kwds);
    PyObject* values[2] = {0,0};
    switch (PyTuple_GET_SIZE(__pyx_args)) {
      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_n_s__a);
      if (likely(values[0])) kw_args--;
      else goto __pyx_L5_argtuple_error;
      case  1:
      values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__b);
      if (likely(values[1])) kw_args--;
      else {
        __Pyx_RaiseArgtupleInvalid("add_rationals", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __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), "add_rationals") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
    }
    __pyx_v_a = ((PyObject *)values[0]);
    __pyx_v_b = ((PyObject *)values[1]);
  } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
    goto __pyx_L5_argtuple_error;
  } else {
    __pyx_v_a = ((PyObject *)PyTuple_GET_ITEM(__pyx_args, 0));
    __pyx_v_b = ((PyObject *)PyTuple_GET_ITEM(__pyx_args, 1));
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("add_rationals", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
  __pyx_L3_error:;
  __Pyx_AddTraceback("_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.add_rationals");
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_a), &PyBytes_Type, 1, "a", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_b), &PyBytes_Type, 1, "b", 1))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 9:     cdef mpq_t x, y, z                                # (3)
 10:     mpq_init(x); mpq_init(y); mpq_init(z)             # (4)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":10
 * def add_rationals(bytes a, bytes b):                  # (2)
 *     cdef mpq_t x, y, z                                # (3)
 *     mpq_init(x); mpq_init(y); mpq_init(z)             # (4)             # <<<<<<<<<<<<<<
 *     mpq_set_str(x, a, 10)    # base 10 string         # (5)
 *     mpq_set_str(y, b, 10)
 */
  mpq_init(__pyx_v_x);
  mpq_init(__pyx_v_y);
  mpq_init(__pyx_v_z);
 11:     mpq_set_str(x, a, 10)    # base 10 string         # (5)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":11
 *     cdef mpq_t x, y, z                                # (3)
 *     mpq_init(x); mpq_init(y); mpq_init(z)             # (4)
 *     mpq_set_str(x, a, 10)    # base 10 string         # (5)             # <<<<<<<<<<<<<<
 *     mpq_set_str(y, b, 10)
 *     mpq_add(z, x, y)                                  # (6)
 */
  __pyx_t_1 = PyBytes_AsString(((PyObject *)__pyx_v_a)); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  mpq_set_str(__pyx_v_x, __pyx_t_1, 10);
 12:     mpq_set_str(y, b, 10)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":12
 *     mpq_init(x); mpq_init(y); mpq_init(z)             # (4)
 *     mpq_set_str(x, a, 10)    # base 10 string         # (5)
 *     mpq_set_str(y, b, 10)             # <<<<<<<<<<<<<<
 *     mpq_add(z, x, y)                                  # (6)
 *     cdef int n = (mpz_sizeinbase (mpq_numref(z), 10)  # (7)
 */
  __pyx_t_1 = PyBytes_AsString(((PyObject *)__pyx_v_b)); if (unlikely((!__pyx_t_1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  mpq_set_str(__pyx_v_y, __pyx_t_1, 10);
 13:     mpq_add(z, x, y)                                  # (6)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":13
 *     mpq_set_str(x, a, 10)    # base 10 string         # (5)
 *     mpq_set_str(y, b, 10)
 *     mpq_add(z, x, y)                                  # (6)             # <<<<<<<<<<<<<<
 *     cdef int n = (mpz_sizeinbase (mpq_numref(z), 10)  # (7)
 *           + mpz_sizeinbase (mpq_denref(z), 10) + 3)
 */
  mpq_add(__pyx_v_z, __pyx_v_x, __pyx_v_y);
 14:     cdef int n = (mpz_sizeinbase (mpq_numref(z), 10)  # (7)
 15:           + mpz_sizeinbase (mpq_denref(z), 10) + 3)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":15
 *     mpq_add(z, x, y)                                  # (6)
 *     cdef int n = (mpz_sizeinbase (mpq_numref(z), 10)  # (7)
 *           + mpz_sizeinbase (mpq_denref(z), 10) + 3)             # <<<<<<<<<<<<<<
 *     cdef char* s = <char*>sage_malloc(sizeof(char)*n) # (8)
 *     if not s: raise MemoryError                       # (9)
 */
  __pyx_v_n = ((mpz_sizeinbase(mpq_numref(__pyx_v_z), 10) + mpz_sizeinbase(mpq_denref(__pyx_v_z), 10)) + 3);
 16:     cdef char* s = <char*>sage_malloc(sizeof(char)*n) # (8)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":16
 *     cdef int n = (mpz_sizeinbase (mpq_numref(z), 10)  # (7)
 *           + mpz_sizeinbase (mpq_denref(z), 10) + 3)
 *     cdef char* s = <char*>sage_malloc(sizeof(char)*n) # (8)             # <<<<<<<<<<<<<<
 *     if not s: raise MemoryError                       # (9)
 *     cdef bytes c = mpq_get_str(s, 10, z)              # (10)
 */
  __pyx_v_s = ((char *)sage_malloc(((sizeof(char)) * __pyx_v_n)));
 17:     if not s: raise MemoryError                       # (9)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":17
 *           + mpz_sizeinbase (mpq_denref(z), 10) + 3)
 *     cdef char* s = <char*>sage_malloc(sizeof(char)*n) # (8)
 *     if not s: raise MemoryError                       # (9)             # <<<<<<<<<<<<<<
 *     cdef bytes c = mpq_get_str(s, 10, z)              # (10)
 *     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)
 */
  __pyx_t_2 = (!(__pyx_v_s != 0));
  if (__pyx_t_2) {
    __Pyx_Raise(__pyx_builtin_MemoryError, 0, 0);
    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
    goto __pyx_L6;
  }
  __pyx_L6:;
 18:     cdef bytes c = mpq_get_str(s, 10, z)              # (10)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":18
 *     cdef char* s = <char*>sage_malloc(sizeof(char)*n) # (8)
 *     if not s: raise MemoryError                       # (9)
 *     cdef bytes c = mpq_get_str(s, 10, z)              # (10)             # <<<<<<<<<<<<<<
 *     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)
 *     sage_free(s)                                      # (12)
 */
  __pyx_t_3 = PyBytes_FromString(mpq_get_str(__pyx_v_s, 10, __pyx_v_z)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
  __Pyx_GOTREF(((PyObject *)__pyx_t_3));
  __pyx_v_c = __pyx_t_3;
  __pyx_t_3 = 0;
 19:     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":19
 *     if not s: raise MemoryError                       # (9)
 *     cdef bytes c = mpq_get_str(s, 10, z)              # (10)
 *     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)             # <<<<<<<<<<<<<<
 *     sage_free(s)                                      # (12)
 *     return c
 */
  mpq_clear(__pyx_v_x);
  mpq_clear(__pyx_v_y);
  mpq_clear(__pyx_v_z);
 20:     sage_free(s)                                      # (12)
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":20
 *     cdef bytes c = mpq_get_str(s, 10, z)              # (10)
 *     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)
 *     sage_free(s)                                      # (12)             # <<<<<<<<<<<<<<
 *     return c
 */
  sage_free(__pyx_v_s);
 21:     return c
  /* "/tmp/sagenbflask/temp/boxen/14347/spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx/_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.pyx":21
 *     mpq_clear(x); mpq_clear(y); mpq_clear(z)          # (11)
 *     sage_free(s)                                      # (12)
 *     return c             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_c));
  __pyx_r = ((PyObject *)__pyx_v_c);
  goto __pyx_L0;

  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("_sagenb_flask_sage_notebook_sagenb_home_openidSfmMv1OuVE_27_code_sage59_spyx_0.add_rationals");
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_c);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}