Generated by Cython 0.9.6.14 on Fri Jun 6 13:43:54 2008

Raw output: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.c

 1: 
 2: include "interrupt.pxi"  # ctrl-c interrupt block support
 3: include "stdsage.pxi"  # ctrl-c interrupt block support
 4: 
 5: include "cdefs.pxi"
 6: from sage.all import QQ
  __pyx_1 = PyList_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(__pyx_n_QQ);
  PyList_SET_ITEM(__pyx_1, 0, __pyx_n_QQ);
  __pyx_2 = __Pyx_Import(__pyx_k_1p, ((PyObject *)__pyx_1)); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_QQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (PyObject_SetAttr(__pyx_m, __pyx_n_QQ, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_2); __pyx_2 = 0;
 7: 
 8: cdef class head:
 9:     """
 10:     This is like a ring.  It's really a parent object
 11:     for multivariate polynomials.  But they don't support
 12:     any ring operations, except for multiplication by
 13:     monomials.  Cheesy, but it's all we need.
 14: 
 15:     Eventually, this should support more term orderings.
 16:     """
 17:     cdef object k
 18:     cdef int n
 19:     cdef char* names
 20:     def __init__(self, n = 1, k=QQ, cmp=None):
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___init__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 20)";
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_n = 0;
  PyObject *__pyx_v_k = 0;
  PyObject *__pyx_v_cmp = 0;
  int __pyx_r;
  int __pyx_1;
  int __pyx_2;
  static char *__pyx_argnames[] = {"n","k","cmp",0};
  __pyx_v_n = __pyx_int_1;
  __pyx_v_k = __pyx_k_3;
  __pyx_v_cmp = Py_None;
  if (likely(!__pyx_kwds) && likely(0 <= PyTuple_GET_SIZE(__pyx_args)) && likely(PyTuple_GET_SIZE(__pyx_args) <= 3)) {
    if (PyTuple_GET_SIZE(__pyx_args) > 0) {
      __pyx_v_n = PyTuple_GET_ITEM(__pyx_args, 0);
      if (PyTuple_GET_SIZE(__pyx_args) > 1) {
        __pyx_v_k = PyTuple_GET_ITEM(__pyx_args, 1);
        if (PyTuple_GET_SIZE(__pyx_args) > 2) {
          __pyx_v_cmp = PyTuple_GET_ITEM(__pyx_args, 2);
        }
      }
    }
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "|OOO", __pyx_argnames, &__pyx_v_n, &__pyx_v_k, &__pyx_v_cmp))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.__init__");
  return -1;
  __pyx_L3:;
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_QQ); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_k_3 = __pyx_2;
  __pyx_2 = 0;
 21:         self.n = ncoerce
  __pyx_1 = __pyx_PyInt_int(__pyx_v_n); if (unlikely((__pyx_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1;}
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->n = __pyx_1;
 22:         self.k = k
  Py_INCREF(__pyx_v_k);
  Py_DECREF(((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->k);
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->k = __pyx_v_k;
 23:         if cmp is not None:
  __pyx_2 = (__pyx_v_cmp != Py_None);
  if (__pyx_2) {
 24:             self.cmp = cmp
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_cmp, __pyx_v_cmp) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1;}
    goto __pyx_L4;
  }
  __pyx_L4:;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}
 25: 
 26: 
 27:     def field(self):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_field(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_field[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 27)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_field(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r;
 28:         return self.k
  Py_INCREF(((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->k);
  __pyx_r = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->k;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  __pyx_L0:;
  return __pyx_r;
}
 29: 
 30:     def cmp(self, a, b):
static PyObject *__pyx_int_neg_1;

static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_cmp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_cmp[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 30)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head_cmp(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_a = 0;
  PyObject *__pyx_v_b = 0;
  int __pyx_v_i;
  PyObject *__pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  int __pyx_5;
  static char *__pyx_argnames[] = {"a","b",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
    __pyx_v_a = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_b = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_a, &__pyx_v_b))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.cmp");
  return NULL;
  __pyx_L3:;
 31:         cdef int i
 32:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 33:             if a[icoerce] coerce< b[icoerce]:
    if (PyList_CheckExact(__pyx_v_a) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_a)) {
      __pyx_3 = PyList_GET_ITEM(__pyx_v_a, __pyx_v_i); Py_INCREF(__pyx_3);
      } else if (PyTuple_CheckExact(__pyx_v_a) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_a)) {
      __pyx_3 = PyTuple_GET_ITEM(__pyx_v_a, __pyx_v_i); Py_INCREF(__pyx_3);
      } else {
      __pyx_2 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_3 = PyObject_GetItem(__pyx_v_a, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_2); __pyx_2 = 0;
    }
    if (PyList_CheckExact(__pyx_v_b) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_b)) {
      __pyx_4 = PyList_GET_ITEM(__pyx_v_b, __pyx_v_i); Py_INCREF(__pyx_4);
      } else if (PyTuple_CheckExact(__pyx_v_b) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_b)) {
      __pyx_4 = PyTuple_GET_ITEM(__pyx_v_b, __pyx_v_i); Py_INCREF(__pyx_4);
      } else {
      __pyx_2 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_4 = PyObject_GetItem(__pyx_v_b, __pyx_2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_2); __pyx_2 = 0;
    }
    __pyx_2 = PyObject_RichCompare(__pyx_3, __pyx_4, Py_LT); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    __pyx_5 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    if (__pyx_5) {
 34:                 return -1
      Py_INCREF(__pyx_int_neg_1);
      __pyx_r = __pyx_int_neg_1;
      goto __pyx_L0;
      goto __pyx_L6;
    }
 35:             elif a[icoerce] coerce> b[icoerce]:
    if (PyList_CheckExact(__pyx_v_a) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_a)) {
      __pyx_4 = PyList_GET_ITEM(__pyx_v_a, __pyx_v_i); Py_INCREF(__pyx_4);
      } else if (PyTuple_CheckExact(__pyx_v_a) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_a)) {
      __pyx_4 = PyTuple_GET_ITEM(__pyx_v_a, __pyx_v_i); Py_INCREF(__pyx_4);
      } else {
      __pyx_3 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_4 = PyObject_GetItem(__pyx_v_a, __pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_3); __pyx_3 = 0;
    }
    if (PyList_CheckExact(__pyx_v_b) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_b)) {
      __pyx_3 = PyList_GET_ITEM(__pyx_v_b, __pyx_v_i); Py_INCREF(__pyx_3);
      } else if (PyTuple_CheckExact(__pyx_v_b) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_b)) {
      __pyx_3 = PyTuple_GET_ITEM(__pyx_v_b, __pyx_v_i); Py_INCREF(__pyx_3);
      } else {
      __pyx_2 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_3 = PyObject_GetItem(__pyx_v_b, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_2); __pyx_2 = 0;
    }
    __pyx_2 = PyObject_RichCompare(__pyx_4, __pyx_3, Py_GT); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_5 = __Pyx_PyObject_IsTrue(__pyx_2); if (unlikely(__pyx_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    if (__pyx_5) {
 36:                 return 1
      Py_INCREF(__pyx_int_1);
      __pyx_r = __pyx_int_1;
      goto __pyx_L0;
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 37:         return 0
  Py_INCREF(__pyx_int_0);
  __pyx_r = __pyx_int_0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_4);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.cmp");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 38: 
 39:     def __call__(self, f):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___call__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 39)\n\n        Coerce a Sage multivariate polynomial into\n        a mpoly.\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_4head___call__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_f = 0;
  PyObject *__pyx_v_D;
  PyObject *__pyx_v_T;
  PyObject *__pyx_v_k;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  Py_ssize_t __pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  PyObject *__pyx_5 = 0;
  static char *__pyx_argnames[] = {"f",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 1)) {
    __pyx_v_f = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_f))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.__call__");
  return NULL;
  __pyx_L3:;
  __pyx_v_D = Py_None; Py_INCREF(Py_None);
  __pyx_v_T = Py_None; Py_INCREF(Py_None);
  __pyx_v_k = Py_None; Py_INCREF(Py_None);
 40:         """
 41:         Coerce a Sage multivariate polynomial into
 42:         a mpoly.
 43:         """
 44:         D = f.dict()
  __pyx_1 = PyObject_GetAttr(__pyx_v_f, __pyx_n_dict); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_v_D);
  __pyx_v_D = __pyx_2;
  __pyx_2 = 0;
 45:         T = {}
  __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_T);
  __pyx_v_T = ((PyObject *)__pyx_1);
  __pyx_1 = 0;
 46:         for k in D:
  if (PyList_CheckExact(__pyx_v_D)) { __pyx_3 = 0; __pyx_2 = __pyx_v_D; Py_INCREF(__pyx_2); }
  else { __pyx_2 = PyObject_GetIter(__pyx_v_D); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1;} }
  for (;;) {
    if (PyList_CheckExact(__pyx_2)) { if (__pyx_3 >= PyList_GET_SIZE(__pyx_2)) break; __pyx_1 = PyList_GET_ITEM(__pyx_2, __pyx_3++); Py_INCREF(__pyx_1); }
    else {
      __pyx_1 = PyIter_Next(__pyx_2);
      if (!__pyx_1) {
        break;
      }
    }
    Py_DECREF(__pyx_v_k);
    __pyx_v_k = __pyx_1;
    __pyx_1 = 0;
 47:             T[monomial(self,tuple(k))] = D[k]
    __pyx_1 = PyObject_GetItem(__pyx_v_D, __pyx_v_k); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_INCREF(__pyx_v_k);
    PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_k);
    __pyx_5 = PyObject_Call(((PyObject*)&PyTuple_Type), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
    __pyx_4 = PyTuple_New(2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_INCREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_4, 0, __pyx_v_self);
    PyTuple_SET_ITEM(__pyx_4, 1, __pyx_5);
    __pyx_5 = 0;
    __pyx_5 = PyObject_Call(((PyObject*)__pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
    if (PyObject_SetItem(__pyx_v_T, __pyx_5, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
    Py_DECREF(__pyx_1); __pyx_1 = 0;
  }
  Py_DECREF(__pyx_2); __pyx_2 = 0;
 48:         return mpoly(self,T)
  __pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n_mpoly); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_1 = PyTuple_New(2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_self);
  Py_INCREF(__pyx_v_T);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_v_T);
  __pyx_5 = PyObject_Call(__pyx_4, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 48; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  __pyx_r = __pyx_5;
  __pyx_5 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.head.__call__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_D);
  Py_DECREF(__pyx_v_T);
  Py_DECREF(__pyx_v_k);
  return __pyx_r;
}
 49: 
 50: 
 51: 
 52: cdef class monomial:
 53:     """
 54:     This is our monomial class.  Before this was cython,
 55:     we spent 90% of our time here.  It's better now.
  init_csage();
 56:     """
 57: 
 58:     cdef head head
 59:     cdef int n, *a
 60:     def __init__(self, head header, alpha = 0):
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___init__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 60)";
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *__pyx_v_header = 0;
  PyObject *__pyx_v_alpha = 0;
  PyObject *__pyx_v_i;
  int __pyx_r;
  PyObject *__pyx_1 = 0;
  int __pyx_2;
  long __pyx_3;
  int __pyx_4;
  Py_ssize_t __pyx_5 = 0;
  int __pyx_6;
  static char *__pyx_argnames[] = {"header","alpha",0};
  __pyx_v_alpha = __pyx_int_0;
  if (likely(!__pyx_kwds) && likely(1 <= PyTuple_GET_SIZE(__pyx_args)) && likely(PyTuple_GET_SIZE(__pyx_args) <= 2)) {
    __pyx_v_header = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head *)PyTuple_GET_ITEM(__pyx_args, 0));
    if (PyTuple_GET_SIZE(__pyx_args) > 1) {
      __pyx_v_alpha = PyTuple_GET_ITEM(__pyx_args, 1);
    }
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_header, &__pyx_v_alpha))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__init__");
  return -1;
  __pyx_L3:;
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_header), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_head, 1, "header", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 60; __pyx_clineno = __LINE__; goto __pyx_L1;}
 61:         self.head = header
  Py_INCREF(((PyObject *)__pyx_v_header));
  Py_DECREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head = __pyx_v_header;
 62:         self.n = header.n
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n = __pyx_v_header->n;
 63:         self.a = <int *>sage_malloc(self.n*sizeof(int))
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a = ((int *)sage_malloc((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n * (sizeof(int)))));
 64:         if alpha coerce== 0:
  __pyx_1 = PyObject_RichCompare(__pyx_v_alpha, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_2) {
 65:             for i from 0 <= i < self.n:
    __pyx_4 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
    for (__pyx_3 = 0; __pyx_3 < __pyx_4; __pyx_3++) {
      __pyx_1 = PyInt_FromLong(__pyx_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_1;
      __pyx_1 = 0;
 66:                 self.a[icoerce] = 0
      __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1;}
      (((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_5]) = 0;
    }
    goto __pyx_L4;
  }
 67:         elif alpha coerce== -1:
  __pyx_1 = PyObject_RichCompare(__pyx_v_alpha, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_2) {
 68:             return
    __pyx_r = 0;
    goto __pyx_L0;
    goto __pyx_L4;
  }
  /*else*/ {
 69:         else:
 70:             for i from 0 <= i < self.n:
    __pyx_4 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
    for (__pyx_3 = 0; __pyx_3 < __pyx_4; __pyx_3++) {
      __pyx_1 = PyInt_FromLong(__pyx_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_v_i);
      __pyx_v_i = __pyx_1;
      __pyx_1 = 0;
 71:                 self.a[icoerce] = alphacoerce[i]
      __pyx_1 = PyObject_GetItem(__pyx_v_alpha, __pyx_v_i); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_6 = __pyx_PyInt_int(__pyx_1); if (unlikely((__pyx_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_1); __pyx_1 = 0;
      __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1;}
      (((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_5]) = __pyx_6;
    }
  }
  __pyx_L4:;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 72: 
 73:     def __repr__(self):
static PyObject *__pyx_k_6p;
static PyObject *__pyx_k_7p;

static char __pyx_k_6[] = "";
static char __pyx_k_7[] = "%d ";

static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___repr__(PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___repr__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 73)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___repr__(PyObject *__pyx_v_self) {
  int __pyx_v_i;
  PyObject *__pyx_v_s;
  PyObject *__pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  PyObject *__pyx_5 = 0;
  __pyx_v_s = Py_None; Py_INCREF(Py_None);
 74:         cdef int i
 75:         s = ""
  Py_INCREF(__pyx_k_6p);
  Py_DECREF(__pyx_v_s);
  __pyx_v_s = __pyx_k_6p;
 76:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 77:             s += "%d "%self.acoerce[i]
    __pyx_3 = __pyx_k_7p;
    Py_INCREF(__pyx_3);
    __pyx_4 = PyInt_FromLong((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_v_i])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_5 = PyNumber_Remainder(__pyx_3, __pyx_4); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    __pyx_3 = __pyx_v_s;
    Py_INCREF(__pyx_3);
    __pyx_2 = PyNumber_InPlaceAdd(__pyx_3, __pyx_5); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    Py_DECREF(__pyx_v_s);
    __pyx_v_s = __pyx_2;
    __pyx_2 = 0;
  }
 78:         return s
  Py_INCREF(__pyx_v_s);
  __pyx_r = __pyx_v_s;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__repr__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_s);
  return __pyx_r;
}
 79: 
 80:     def tuple(self):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_tuple(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_tuple[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 80)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_tuple(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_v_i;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  long __pyx_2;
  int __pyx_3;
  PyObject *__pyx_4 = 0;
  Py_ssize_t __pyx_5 = 0;
  int __pyx_6;
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
 81:         return tuple([self.acoerce[icoerce] for i from 0 <= i < self.n])
  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_2 = 0; __pyx_2 < __pyx_3; __pyx_2++) {
    __pyx_4 = PyInt_FromLong(__pyx_2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_4;
    __pyx_4 = 0;
    __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_4 = PyInt_FromLong((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_5])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_6 = PyList_Append(__pyx_1, __pyx_4); if (unlikely(__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
  }
  __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_4, 0, ((PyObject *)__pyx_1));
  __pyx_1 = 0;
  __pyx_1 = PyObject_Call(((PyObject*)&PyTuple_Type), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
  __pyx_r = __pyx_1;
  __pyx_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_4);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.tuple");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 82: 
 83:     def __dealloc__(self):
static void __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___dealloc__(PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___dealloc__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 83)";
static void __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___dealloc__(PyObject *__pyx_v_self) {
  int __pyx_1;
 84:         if self.a != NULL:
  __pyx_1 = (((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a != NULL);
  if (__pyx_1) {
 85:             sage_free(self.a)
    sage_free(((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a);
    goto __pyx_L4;
  }
  __pyx_L4:;

}
 86: 
 87:     def repr(self,c):
static PyObject *__pyx_n_abcdefghijklmnopqrstuvwxyz;
static PyObject *__pyx_n_append;
static PyObject *__pyx_n_join;

static PyObject *__pyx_k_8p;
static PyObject *__pyx_k_9p;
static PyObject *__pyx_k_10p;
static PyObject *__pyx_k_11p;
static PyObject *__pyx_k_13p;
static PyObject *__pyx_k_14p;
static PyObject *__pyx_k_15p;
static PyObject *__pyx_k_16p;

static char __pyx_k_8[] = "0";
static char __pyx_k_9[] = "";
static char __pyx_k_10[] = "-";
static char __pyx_k_11[] = "%s*";
static char __pyx_k_13[] = "%c";
static char __pyx_k_14[] = "%s^%s";
static char __pyx_k_15[] = "*";
static char __pyx_k_16[] = "%s";

static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_repr(PyObject *__pyx_v_self, PyObject *__pyx_v_c); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_repr[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 87)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_repr(PyObject *__pyx_v_self, PyObject *__pyx_v_c) {
  int __pyx_v_i;
  PyObject *__pyx_v_c_;
  PyObject *__pyx_v_s;
  PyObject *__pyx_v_names;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  int __pyx_2;
  PyObject *__pyx_3 = 0;
  int __pyx_4;
  PyObject *__pyx_5 = 0;
  PyObject *__pyx_6 = 0;
  Py_ssize_t __pyx_7 = 0;
  __pyx_v_c_ = Py_None; Py_INCREF(Py_None);
  __pyx_v_s = Py_None; Py_INCREF(Py_None);
  __pyx_v_names = Py_None; Py_INCREF(Py_None);
 88:         cdef int i
 89:         if c coerce== 0:
  __pyx_1 = PyObject_RichCompare(__pyx_v_c, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_2) {
 90:             return "0"
    Py_INCREF(__pyx_k_8p);
    __pyx_r = __pyx_k_8p;
    goto __pyx_L0;
    goto __pyx_L4;
  }
 91:         elif c coerce== 1:
  __pyx_1 = PyObject_RichCompare(__pyx_v_c, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_2) {
 92:             c_ = ""
    Py_INCREF(__pyx_k_9p);
    Py_DECREF(__pyx_v_c_);
    __pyx_v_c_ = __pyx_k_9p;
    goto __pyx_L4;
  }
 93:         elif c coerce== -1:
  __pyx_1 = PyObject_RichCompare(__pyx_v_c, __pyx_int_neg_1, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = __Pyx_PyObject_IsTrue(__pyx_1); if (unlikely(__pyx_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  if (__pyx_2) {
 94:             c_ = "-"
    Py_INCREF(__pyx_k_10p);
    Py_DECREF(__pyx_v_c_);
    __pyx_v_c_ = __pyx_k_10p;
    goto __pyx_L4;
  }
  /*else*/ {
 95:         else:
 96:             c_ = "%s*"%c
    __pyx_1 = __pyx_k_11p;
    Py_INCREF(__pyx_1);
    __pyx_3 = PyNumber_Remainder(__pyx_1, __pyx_v_c); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    Py_DECREF(__pyx_v_c_);
    __pyx_v_c_ = __pyx_3;
    __pyx_3 = 0;
  }
  __pyx_L4:;
 97:         s = []
  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_s);
  __pyx_v_s = ((PyObject *)__pyx_1);
  __pyx_1 = 0;
 98:         names = 'abcdefghijklmnopqrstuvwxyz'[-self.n:]
  __pyx_3 = PySequence_GetSlice(__pyx_n_abcdefghijklmnopqrstuvwxyz, (-((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n), PY_SSIZE_T_MAX); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_names);
  __pyx_v_names = __pyx_3;
  __pyx_3 = 0;
 99:         for i from 0 <= i < self.n:
  __pyx_4 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_4; __pyx_v_i++) {
 100:             if self.a[i] == 0:
    __pyx_2 = ((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_v_i]) == 0);
    if (__pyx_2) {
      goto __pyx_L5;
      goto __pyx_L7;
    }
 101:                 continue
 102:             elif self.a[i] == 1:
    __pyx_2 = ((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_v_i]) == 1);
    if (__pyx_2) {
 103:                 s.append("%c"%names[icoerce])
      __pyx_1 = __pyx_k_13p;
      Py_INCREF(__pyx_1);
      if (PyList_CheckExact(__pyx_v_names) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_names)) {
        __pyx_5 = PyList_GET_ITEM(__pyx_v_names, __pyx_v_i); Py_INCREF(__pyx_5);
        } else if (PyTuple_CheckExact(__pyx_v_names) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_names)) {
        __pyx_5 = PyTuple_GET_ITEM(__pyx_v_names, __pyx_v_i); Py_INCREF(__pyx_5);
        } else {
        __pyx_3 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
        __pyx_5 = PyObject_GetItem(__pyx_v_names, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
        Py_DECREF(__pyx_3); __pyx_3 = 0;
      }
      __pyx_3 = PyNumber_Remainder(__pyx_1, __pyx_5); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_1); __pyx_1 = 0;
      Py_DECREF(__pyx_5); __pyx_5 = 0;
      __pyx_1 = __Pyx_PyObject_Append(__pyx_v_s, __pyx_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_3); __pyx_3 = 0;
      Py_DECREF(__pyx_1); __pyx_1 = 0;
      goto __pyx_L7;
    }
    /*else*/ {
 104:             else:
 105:                 s.append("%s^%s"%(names[icoerce],self.acoerce[i]))
      __pyx_5 = __pyx_k_14p;
      Py_INCREF(__pyx_5);
      if (PyList_CheckExact(__pyx_v_names) && 0 <= __pyx_v_i && __pyx_v_i < PyList_GET_SIZE(__pyx_v_names)) {
        __pyx_1 = PyList_GET_ITEM(__pyx_v_names, __pyx_v_i); Py_INCREF(__pyx_1);
        } else if (PyTuple_CheckExact(__pyx_v_names) && 0 <= __pyx_v_i && __pyx_v_i < PyTuple_GET_SIZE(__pyx_v_names)) {
        __pyx_1 = PyTuple_GET_ITEM(__pyx_v_names, __pyx_v_i); Py_INCREF(__pyx_1);
        } else {
        __pyx_3 = PyInt_FromLong(__pyx_v_i); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
        __pyx_1 = PyObject_GetItem(__pyx_v_names, __pyx_3); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
        Py_DECREF(__pyx_3); __pyx_3 = 0;
      }
      __pyx_3 = PyInt_FromLong((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_v_i])); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_6 = PyTuple_New(2); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
      PyTuple_SET_ITEM(__pyx_6, 0, __pyx_1);
      PyTuple_SET_ITEM(__pyx_6, 1, __pyx_3);
      __pyx_1 = 0;
      __pyx_3 = 0;
      __pyx_1 = PyNumber_Remainder(__pyx_5, ((PyObject *)__pyx_6)); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_5); __pyx_5 = 0;
      Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
      __pyx_3 = __Pyx_PyObject_Append(__pyx_v_s, __pyx_1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_1); __pyx_1 = 0;
      Py_DECREF(__pyx_3); __pyx_3 = 0;
    }
    __pyx_L7:;
    __pyx_L5:;
  }
 106:         if len(s):
  __pyx_7 = PyObject_Length(__pyx_v_s); if (unlikely(__pyx_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (__pyx_7) {
 107:             return c_+("*".join(s))
    __pyx_5 = __pyx_v_c_;
    Py_INCREF(__pyx_5);
    __pyx_6 = PyObject_GetAttr(__pyx_k_15p, __pyx_n_join); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_1 = PyTuple_New(1); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_INCREF(__pyx_v_s);
    PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_s);
    __pyx_3 = PyObject_Call(__pyx_6, ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
    __pyx_6 = PyNumber_Add(__pyx_5, __pyx_3); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_r = __pyx_6;
    __pyx_6 = 0;
    goto __pyx_L0;
    goto __pyx_L8;
  }
  /*else*/ {
 108:         else:
 109:             return "%s"%c
    __pyx_1 = __pyx_k_16p;
    Py_INCREF(__pyx_1);
    __pyx_5 = PyNumber_Remainder(__pyx_1, __pyx_v_c); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    __pyx_r = __pyx_5;
    __pyx_5 = 0;
    goto __pyx_L0;
  }
  __pyx_L8:;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_5);
  Py_XDECREF(__pyx_6);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.repr");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_c_);
  Py_DECREF(__pyx_v_s);
  Py_DECREF(__pyx_v_names);
  return __pyx_r;
}
 110: 
 111:     def __hash__(self):
static long __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___hash__(PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___hash__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 111)";
static long __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___hash__(PyObject *__pyx_v_self) {
  PyObject *__pyx_v_t;
  PyObject *__pyx_v_i;
  long __pyx_r;
  PyObject *__pyx_1 = 0;
  long __pyx_2;
  int __pyx_3;
  PyObject *__pyx_4 = 0;
  Py_ssize_t __pyx_5 = 0;
  int __pyx_6;
  __pyx_v_t = Py_None; Py_INCREF(Py_None);
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
 112:         t = tuple([self.acoerce[icoerce] for i from 0 <= i < self.n])
  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_2 = 0; __pyx_2 < __pyx_3; __pyx_2++) {
    __pyx_4 = PyInt_FromLong(__pyx_2); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_4;
    __pyx_4 = 0;
    __pyx_5 = __pyx_PyIndex_AsSsize_t(__pyx_v_i); if (unlikely((__pyx_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_4 = PyInt_FromLong((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a[__pyx_5])); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_6 = PyList_Append(__pyx_1, __pyx_4); if (unlikely(__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
  }
  __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_4, 0, ((PyObject *)__pyx_1));
  __pyx_1 = 0;
  __pyx_1 = PyObject_Call(((PyObject*)&PyTuple_Type), ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
  Py_DECREF(__pyx_v_t);
  __pyx_v_t = __pyx_1;
  __pyx_1 = 0;
 113:         return hash(t)
  __pyx_2 = PyObject_Hash(__pyx_v_t); if (unlikely(__pyx_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_r = __pyx_2;
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_4);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__hash__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_DECREF(__pyx_v_t);
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 114: 
 115:     def __cmp__(monomial self, monomial other):
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 115)";
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int __pyx_v_d;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int __pyx_r;
  int __pyx_1;
  int __pyx_2;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1;}
 116:         cdef int i, d, *a = self.a, *b = other.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;

  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;

 117:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 118:             d = a[i]-b[i]
    __pyx_v_d = ((__pyx_v_a[__pyx_v_i]) - (__pyx_v_b[__pyx_v_i]));
 119:             if d > 0:
    __pyx_2 = (__pyx_v_d > 0);
    if (__pyx_2) {
 120:                 return 1
      __pyx_r = 1;
      goto __pyx_L0;
      goto __pyx_L6;
    }
 121:             elif d < 0:
    __pyx_2 = (__pyx_v_d < 0);
    if (__pyx_2) {
 122:                 return -1
      __pyx_r = -1;
      goto __pyx_L0;
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 123:         return 0
  __pyx_r = 0;
  goto __pyx_L0;

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__cmp__");
  __pyx_r = -1;
  __pyx_L0:;
  return __pyx_r;
}
 124: 
 125: 
 126:     def __cmp_grlex__(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp_grlex__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp_grlex__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 126)";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___cmp_grlex__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int __pyx_v_d;
  int __pyx_v_g;
  int __pyx_v_tie;
  int *__pyx_v_a;
  int *__pyx_v_b;
  PyObject *__pyx_r;
  int __pyx_1;
  int __pyx_2;
  int __pyx_3;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1;}
 127:         cdef int i,d,g=0,tie=0, *a = self.a, *b = other.a
  __pyx_v_g = 0;

  __pyx_v_tie = 0;

  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;

  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;

 128:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 129:             d = a[i]-b[i]
    __pyx_v_d = ((__pyx_v_a[__pyx_v_i]) - (__pyx_v_b[__pyx_v_i]));
 130:             g+=d
    __pyx_v_g += __pyx_v_d;
 131:             if d:
    __pyx_2 = __pyx_v_d;
    if (__pyx_2) {
 132:                 tie = -d
      __pyx_v_tie = (-__pyx_v_d);
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 133:         if g:
  __pyx_2 = __pyx_v_g;
  if (__pyx_2) {
 134:             tie = g
    __pyx_v_tie = __pyx_v_g;
    goto __pyx_L7;
  }
  __pyx_L7:;
 135:         if tie > 0:
  __pyx_3 = (__pyx_v_tie > 0);
  if (__pyx_3) {
 136:             return 1
    Py_INCREF(__pyx_int_1);
    __pyx_r = __pyx_int_1;
    goto __pyx_L0;
    goto __pyx_L8;
  }
 137:         elif tie < 0:
  __pyx_3 = (__pyx_v_tie < 0);
  if (__pyx_3) {
 138:             return -1
    Py_INCREF(__pyx_int_neg_1);
    __pyx_r = __pyx_int_neg_1;
    goto __pyx_L0;
    goto __pyx_L8;
  }
  __pyx_L8:;
 139:         return 0
  Py_INCREF(__pyx_int_0);
  __pyx_r = __pyx_int_0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__cmp_grlex__");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 140: 
 141:     def lcm(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_lcm(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_lcm[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 141)\n\n        returns the least common multiple of two monomials\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_lcm(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int __pyx_v_at;
  int __pyx_v_bt;
  int *__pyx_v_r;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_R = 0;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  int __pyx_3;
  int __pyx_4;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1;}
 142:         """
 143:         returns the least common multiple of two monomials
 144:         """
 145:         cdef int i, *a, *b, at, bt, *r
 146:         cdef monomial R = monomial(self.head, -1)
  __pyx_1 = PyTuple_New(2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  PyTuple_SET_ITEM(__pyx_1, 0, ((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  Py_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_int_neg_1);
  __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_v_R = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_2);
  __pyx_2 = 0;

 147:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 148:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 149:         r = R.a
  __pyx_v_r = __pyx_v_R->a;
 150:         for i from 0 <= i < self.n:
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_3; __pyx_v_i++) {
 151:             at = a[i]
    __pyx_v_at = (__pyx_v_a[__pyx_v_i]);
 152:             bt = b[i]
    __pyx_v_bt = (__pyx_v_b[__pyx_v_i]);
 153:             if at > bt:
    __pyx_4 = (__pyx_v_at > __pyx_v_bt);
    if (__pyx_4) {
 154:                 r[i] = at
      (__pyx_v_r[__pyx_v_i]) = __pyx_v_at;
      goto __pyx_L6;
    }
    /*else*/ {
 155:             else:
 156:                 r[i] = bt
      (__pyx_v_r[__pyx_v_i]) = __pyx_v_bt;
    }
    __pyx_L6:;
  }
 157:         return R
  Py_INCREF(((PyObject *)__pyx_v_R));
  __pyx_r = ((PyObject *)__pyx_v_R);
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.lcm");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_XDECREF(__pyx_v_R);
  return __pyx_r;
}
 158: 
 159:     def gcd(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_gcd(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_gcd[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 159)\n\n        returns the greatest common divisor of two monomials\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_gcd(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int __pyx_v_at;
  int __pyx_v_bt;
  int *__pyx_v_r;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_R = 0;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  int __pyx_3;
  int __pyx_4;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1;}
 160:         """
 161:         returns the greatest common divisor of two monomials
 162:         """
 163:         cdef int i, *a, *b, at, bt, *r
 164:         cdef monomial R = monomial(self.head, -1)
  __pyx_1 = PyTuple_New(2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  PyTuple_SET_ITEM(__pyx_1, 0, ((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  Py_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_int_neg_1);
  __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_v_R = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_2);
  __pyx_2 = 0;

 165:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 166:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 167:         r = R.a
  __pyx_v_r = __pyx_v_R->a;
 168:         for i from 0 <= i < self.n:
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_3; __pyx_v_i++) {
 169:             at = a[i]
    __pyx_v_at = (__pyx_v_a[__pyx_v_i]);
 170:             bt = b[i]
    __pyx_v_bt = (__pyx_v_b[__pyx_v_i]);
 171:             if at < bt:
    __pyx_4 = (__pyx_v_at < __pyx_v_bt);
    if (__pyx_4) {
 172:                 r[i] = at
      (__pyx_v_r[__pyx_v_i]) = __pyx_v_at;
      goto __pyx_L6;
    }
    /*else*/ {
 173:             else:
 174:                 r[i] = bt
      (__pyx_v_r[__pyx_v_i]) = __pyx_v_bt;
    }
    __pyx_L6:;
  }
 175:         return R
  Py_INCREF(((PyObject *)__pyx_v_R));
  __pyx_r = ((PyObject *)__pyx_v_R);
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.gcd");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_XDECREF(__pyx_v_R);
  return __pyx_r;
}
 176: 
 177:     def __mul__(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___mul__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 177)\n\n        monomial product\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___mul__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int *__pyx_v_r;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_R = 0;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  int __pyx_3;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_self), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "self", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1;}
 178:         """
 179:         monomial product
 180:         """
 181:         cdef int i, *a, *b, at, bt, *r
 182:         cdef monomial R = monomial(self.head, -1)
  __pyx_1 = PyTuple_New(2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  PyTuple_SET_ITEM(__pyx_1, 0, ((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  Py_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_int_neg_1);
  __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_v_R = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_2);
  __pyx_2 = 0;

 183:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 184:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 185:         r = R.a
  __pyx_v_r = __pyx_v_R->a;
 186:         for i from 0 <= i < self.n:
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_3; __pyx_v_i++) {
 187:             r[i] = a[i] + b[i]
    (__pyx_v_r[__pyx_v_i]) = ((__pyx_v_a[__pyx_v_i]) + (__pyx_v_b[__pyx_v_i]));
  }
 188:         return R
  Py_INCREF(((PyObject *)__pyx_v_R));
  __pyx_r = ((PyObject *)__pyx_v_R);
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__mul__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_XDECREF(__pyx_v_R);
  return __pyx_r;
}
 189: 
 190:     def __div__(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___div__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 190)\n\n        Dividend of monomials, assuming other divides self.\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial___div__(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int *__pyx_v_r;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_R = 0;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  int __pyx_3;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_self), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "self", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1;}
 191:         """
 192:         Dividend of monomials, assuming other divides self.
 193:         """
 194:         cdef int i, *a, *b, at, bt, *r
 195:         cdef monomial R = monomial(self.head, -1)
  __pyx_1 = PyTuple_New(2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  PyTuple_SET_ITEM(__pyx_1, 0, ((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->head));
  Py_INCREF(__pyx_int_neg_1);
  PyTuple_SET_ITEM(__pyx_1, 1, __pyx_int_neg_1);
  __pyx_2 = PyObject_Call(((PyObject*)__pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial), ((PyObject *)__pyx_1), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  if (!(__Pyx_TypeTest(__pyx_2, __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_v_R = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_2);
  __pyx_2 = 0;

 196:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 197:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 198:         r = R.a
  __pyx_v_r = __pyx_v_R->a;
 199:         for i from 0 <= i < self.n:
  __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_3; __pyx_v_i++) {
 200:             r[i] = a[i] - b[i]
    (__pyx_v_r[__pyx_v_i]) = ((__pyx_v_a[__pyx_v_i]) - (__pyx_v_b[__pyx_v_i]));
  }
 201:         return R
  Py_INCREF(((PyObject *)__pyx_v_R));
  __pyx_r = ((PyObject *)__pyx_v_R);
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.__div__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_XDECREF(__pyx_v_R);
  return __pyx_r;
}
 202: 
 203: 
 204:     def divides(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_divides(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_divides[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 204)\n\n        true if self divides other\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_divides(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  PyObject *__pyx_r;
  int __pyx_1;
  int __pyx_2;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1;}
 205:         """
 206:         true if self divides other
 207:         """
 208:         cdef int i, *a, *b
 209:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 210:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 211:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 212:             if a[i] > b[i]:
    __pyx_2 = ((__pyx_v_a[__pyx_v_i]) > (__pyx_v_b[__pyx_v_i]));
    if (__pyx_2) {
 213:                 return False
      Py_INCREF(Py_False);
      __pyx_r = Py_False;
      goto __pyx_L0;
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 214:         return True
  Py_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.divides");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 215: 
 216:     def degree(monomial self):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_degree(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_degree[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 216)\n\n        The sum of exponents in the monomial\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_degree(PyObject *__pyx_v_self, PyObject *unused) {
  int __pyx_v_i;
  int __pyx_v_d;
  int *__pyx_v_a;
  PyObject *__pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
 217:         """
 218:         The sum of exponents in the monomial
 219:         """
 220:         cdef int i,d=0, *a
  __pyx_v_d = 0;

 221:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 222:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 223:             d += a[i]
    __pyx_v_d += (__pyx_v_a[__pyx_v_i]);
  }
 224:         return dcoerce
  __pyx_2 = PyInt_FromLong(__pyx_v_d); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_r = __pyx_2;
  __pyx_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.degree");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 225: 
 226:     def disjoint(monomial self, monomial other):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_disjoint(PyObject *__pyx_v_self, PyObject *__pyx_v_other); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_disjoint[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 226)\n\n        True if gcd(self, other) = 1\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_disjoint(PyObject *__pyx_v_self, PyObject *__pyx_v_other) {
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  PyObject *__pyx_r;
  int __pyx_1;
  int __pyx_2;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_other), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "other", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1;}
 227:         """
 228:         True if gcd(self, other) = 1
 229:         """
 230:         cdef int i, *a, *b
 231:         a = self.a
  __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 232:         b = other.a
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_other)->a;
 233:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 234:             if a[i]*b[i]:
    __pyx_2 = ((__pyx_v_a[__pyx_v_i]) * (__pyx_v_b[__pyx_v_i]));
    if (__pyx_2) {
 235:                 return False
      Py_INCREF(Py_False);
      __pyx_r = Py_False;
      goto __pyx_L0;
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 236:         return True
  Py_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.disjoint");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 237: 
 238:     def is_mul(monomial self, monomial l, monomial m):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_mul(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_mul[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 238)\n\n        true if self == m*l\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_mul(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_l = 0;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_m = 0;
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int *__pyx_v_s;
  PyObject *__pyx_r;
  int __pyx_1;
  int __pyx_2;
  static char *__pyx_argnames[] = {"l","m",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
    __pyx_v_l = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)PyTuple_GET_ITEM(__pyx_args, 0));
    __pyx_v_m = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)PyTuple_GET_ITEM(__pyx_args, 1));
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_l, &__pyx_v_m))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.is_mul");
  return NULL;
  __pyx_L3:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_l), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "l", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "m", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1;}
 239:         """
 240:         true if self == m*l
 241:         """
 242:         cdef int i, *a, *b, *s
 243:         s = self.a
  __pyx_v_s = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->a;
 244:         a = l.a
  __pyx_v_a = __pyx_v_l->a;
 245:         b = m.a
  __pyx_v_b = __pyx_v_m->a;
 246:         for i from 0 <= i < self.n:
  __pyx_1 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_v_self)->n;
  for (__pyx_v_i = 0; __pyx_v_i < __pyx_1; __pyx_v_i++) {
 247:             if s[i] != (a[i]+b[i]):
    __pyx_2 = ((__pyx_v_s[__pyx_v_i]) != ((__pyx_v_a[__pyx_v_i]) + (__pyx_v_b[__pyx_v_i])));
    if (__pyx_2) {
 248:                 return False
      Py_INCREF(Py_False);
      __pyx_r = Py_False;
      goto __pyx_L0;
      goto __pyx_L6;
    }
    __pyx_L6:;
  }
 249:         return True
  Py_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.is_mul");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 250: 
 251:     def is_one(self):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_one(PyObject *__pyx_v_self, PyObject *unused); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_one[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 251)\n\n        true if the monomial is 1\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_8monomial_is_one(PyObject *__pyx_v_self, PyObject *unused) {
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
 252:         """
 253:         true if the monomial is 1
 254:         """
 255:         return self.degree() == 0
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_degree); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_1 = PyObject_RichCompare(__pyx_2, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 255; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_2); __pyx_2 = 0;
  __pyx_r = __pyx_1;
  __pyx_1 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.monomial.is_one");
  __pyx_r = NULL;
  __pyx_L0:;
  return __pyx_r;
}
 256: 
 257: cdef class dividender:
 258:     """
 259:     This is going to go away in the cython version.
 260:     In Simplify, we frequently check if the leading
 261:     term of a polynomial is divisible by the leading
 262:     term of a bunch of other polynomials.
 263: 
 264:     That "bunch of other polynomials" is created once
 265:     and referenced many times, so we cythonize the
 266:     leading terms, and toss back candidate indices.
 267:     """
 268:     cdef int m,n, *d
 269:     def __init__(self,L):
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___init__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 269)";
static int __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_L = 0;
  int __pyx_v_m;
  int __pyx_v_i;
  int __pyx_v_j;
  int __pyx_v_k;
  int *__pyx_v_a;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_t = 0;
  int __pyx_r;
  Py_ssize_t __pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  int __pyx_4;
  static char *__pyx_argnames[] = {"L",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 1)) {
    __pyx_v_L = PyTuple_GET_ITEM(__pyx_args, 0);
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_L))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.dividender.__init__");
  return -1;
  __pyx_L3:;
 270:         cdef int m = len(L), i, j, k, *a
  __pyx_1 = PyObject_Length(__pyx_v_L); if (unlikely(__pyx_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_v_m = __pyx_1;

 271:         cdef monomial t = <monomial> L[0]
  if (PyList_CheckExact(__pyx_v_L) && 0 <= 0 && 0 < PyList_GET_SIZE(__pyx_v_L)) {
    __pyx_3 = PyList_GET_ITEM(__pyx_v_L, 0); Py_INCREF(__pyx_3);
    } else if (PyTuple_CheckExact(__pyx_v_L) && 0 <= 0 && 0 < PyTuple_GET_SIZE(__pyx_v_L)) {
    __pyx_3 = PyTuple_GET_ITEM(__pyx_v_L, 0); Py_INCREF(__pyx_3);
    } else {
    __pyx_2 = PyInt_FromLong(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_3 = PyObject_GetItem(__pyx_v_L, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
  }
  Py_INCREF(((PyObject *)((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_3)));
  __pyx_v_t = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_3);
  Py_DECREF(__pyx_3); __pyx_3 = 0;

 272:         self.n = t.n
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->n = __pyx_v_t->n;
 273:         self.m = m
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->m = __pyx_v_m;
 274: 
 275:         self.d = <int *>sage_malloc(self.m*self.n*sizeof(int))
  ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->d = ((int *)sage_malloc(((((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->m * ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->n) * (sizeof(int)))));
 276:         k = 0
  __pyx_v_k = 0;
 277:         for j from 0 <= j < m:
  for (__pyx_v_j = 0; __pyx_v_j < __pyx_v_m; __pyx_v_j++) {
 278:             a = (<monomial>(L[j])).a
    if (PyList_CheckExact(__pyx_v_L) && 0 <= __pyx_v_j && __pyx_v_j < PyList_GET_SIZE(__pyx_v_L)) {
      __pyx_3 = PyList_GET_ITEM(__pyx_v_L, __pyx_v_j); Py_INCREF(__pyx_3);
      } else if (PyTuple_CheckExact(__pyx_v_L) && 0 <= __pyx_v_j && __pyx_v_j < PyTuple_GET_SIZE(__pyx_v_L)) {
      __pyx_3 = PyTuple_GET_ITEM(__pyx_v_L, __pyx_v_j); Py_INCREF(__pyx_3);
      } else {
      __pyx_2 = PyInt_FromLong(__pyx_v_j); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_3 = PyObject_GetItem(__pyx_v_L, __pyx_2); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_2); __pyx_2 = 0;
    }
    __pyx_v_a = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)__pyx_3)->a;
    Py_DECREF(__pyx_3); __pyx_3 = 0;
 279:             for i from 0 <= i < self.n:
    __pyx_4 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_4; __pyx_v_i++) {
 280:                 self.d[k] = a[i]
      (((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->d[__pyx_v_k]) = (__pyx_v_a[__pyx_v_i]);
 281:                 k+=1
      __pyx_v_k += 1;
    }
  }

  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.dividender.__init__");
  __pyx_r = -1;
  __pyx_L0:;
  Py_XDECREF(__pyx_v_t);
  return __pyx_r;
}
 282: 
 283:     def __dealloc__(self):
static void __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___dealloc__(PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___dealloc__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 283)";
static void __pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender___dealloc__(PyObject *__pyx_v_self) {
 284:         sage_free(self.d)
  sage_free(((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->d);

}
 285: 
 286:     def dividends(self,monomial m, monomial u):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender_dividends(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender_dividends[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 286)\n\n        Return all the indices i such that\n\n        a[i] = m*t\n\n        where t | u.\n        ";
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_10dividender_dividends(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_m = 0;
  struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *__pyx_v_u = 0;
  int __pyx_v_k;
  int __pyx_v_j;
  int __pyx_v_i;
  int *__pyx_v_a;
  int *__pyx_v_b;
  int *__pyx_v_c;
  int __pyx_v_ok;
  PyObject *__pyx_v_D;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  int __pyx_2;
  int __pyx_3;
  int __pyx_4;
  int __pyx_5;
  int __pyx_6;
  PyObject *__pyx_7 = 0;
  static char *__pyx_argnames[] = {"m","u",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
    __pyx_v_m = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)PyTuple_GET_ITEM(__pyx_args, 0));
    __pyx_v_u = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial *)PyTuple_GET_ITEM(__pyx_args, 1));
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_m, &__pyx_v_u))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.dividender.dividends");
  return NULL;
  __pyx_L3:;
  __pyx_v_D = Py_None; Py_INCREF(Py_None);
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_m), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "m", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_u), __pyx_ptype_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_monomial, 1, "u", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1;}
 287:         """
 288:         Return all the indices i such that
 289: 
 290:         a[i] = m*t
 291: 
 292:         where t | u.
 293:         """
 294:         cdef int k, j, i, *a, *b, *c, ok
 295:         D = []
  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_D);
  __pyx_v_D = ((PyObject *)__pyx_1);
  __pyx_1 = 0;
 296:         k = 0
  __pyx_v_k = 0;
 297:         a = m.a
  __pyx_v_a = __pyx_v_m->a;
 298:         c = u.a
  __pyx_v_c = __pyx_v_u->a;
 299:         b = self.d
  __pyx_v_b = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->d;
 300:         for j from 0 <= j < self.m:
  __pyx_2 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->m;
  for (__pyx_v_j = 0; __pyx_v_j < __pyx_2; __pyx_v_j++) {
 301:             ok = 1
    __pyx_v_ok = 1;
 302:             for i from 0 <= i < self.n:
    __pyx_3 = ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->n;
    for (__pyx_v_i = 0; __pyx_v_i < __pyx_3; __pyx_v_i++) {
 303:                 if not (a[i] <= b[i] <= c[i]):
      __pyx_4 = (__pyx_v_b[__pyx_v_i]);
      __pyx_5 = ((__pyx_v_a[__pyx_v_i]) <= __pyx_4);
      if (__pyx_5) {
        __pyx_5 = (__pyx_4 <= (__pyx_v_c[__pyx_v_i]));
      }
      __pyx_6 = (!__pyx_5);
      if (__pyx_6) {
 304:                     ok = 0
        __pyx_v_ok = 0;
 305:                     break
        goto __pyx_L7;
        goto __pyx_L8;
      }
      __pyx_L8:;
    }
    __pyx_L7:;
 306:             if ok:
    __pyx_4 = __pyx_v_ok;
    if (__pyx_4) {
 307:                 D.append(jcoerce)
      __pyx_1 = PyInt_FromLong(__pyx_v_j); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_7 = __Pyx_PyObject_Append(__pyx_v_D, __pyx_1); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_1); __pyx_1 = 0;
      Py_DECREF(__pyx_7); __pyx_7 = 0;
      goto __pyx_L9;
    }
    __pyx_L9:;
 308:             b += self.n
    __pyx_v_b += ((struct __pyx_obj_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_dividender *)__pyx_v_self)->n;
  }
 309:         return D
  Py_INCREF(__pyx_v_D);
  __pyx_r = __pyx_v_D;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_7);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.dividender.dividends");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_D);
  return __pyx_r;
}
 310: 
 311: class mpoly:
  __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (PyDict_SetItemString(((PyObject *)__pyx_1), "__doc__", __pyx_k_5p) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = __Pyx_CreateClass(((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_1), __pyx_n_mpoly, "_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0"); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1;}
 312:     """
 313:     A very very bare bones multivariate polynomial class.
 314:     """
 315: 
 316:     def __init__(self, header, terms = None, mons=None, coeffs=None):
static PyObject *__pyx_n_head;
static PyObject *__pyx_n_terms;
static PyObject *__pyx_n_mons;
static PyObject *__pyx_n_coeffs;
static PyObject *__pyx_n_sorted;
static PyObject *__pyx_n_reverse;

static PyObject *__pyx_builtin_sorted;


static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 316)\n\n        External use:\n            sage: h = head(2,QQ)\n            sage: x = monomial(h,(1,0))\n            sage: y = monomial(h,(0,1))\n            sage: p = mpoly(h, {x:1, y:1, x*y:2})\n\n        Internal use: WE ASSUME THE MONOMIALS ARE ORDERED!\n            sage: p = mpoly(h, mons = [x*y,x,y], coeffs=[2,1,1])\n        ";
static PyMethodDef __pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__ = {"__init__", (PyCFunction)__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__, METH_VARARGS|METH_KEYWORDS, __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__};
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_header = 0;
  PyObject *__pyx_v_terms = 0;
  PyObject *__pyx_v_mons = 0;
  PyObject *__pyx_v_coeffs = 0;
  PyObject *__pyx_v_k;
  PyObject *__pyx_v_m;
  PyObject *__pyx_r;
  int __pyx_1;
  PyObject *__pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  Py_ssize_t __pyx_5 = 0;
  PyObject *__pyx_6 = 0;
  int __pyx_7;
  static char *__pyx_argnames[] = {"self","header","terms","mons","coeffs",0};
  __pyx_v_terms = Py_None;
  __pyx_v_mons = Py_None;
  __pyx_v_coeffs = Py_None;
  if (likely(!__pyx_kwds) && likely(2 <= PyTuple_GET_SIZE(__pyx_args)) && likely(PyTuple_GET_SIZE(__pyx_args) <= 5)) {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_header = PyTuple_GET_ITEM(__pyx_args, 1);
    if (PyTuple_GET_SIZE(__pyx_args) > 2) {
      __pyx_v_terms = PyTuple_GET_ITEM(__pyx_args, 2);
      if (PyTuple_GET_SIZE(__pyx_args) > 3) {
        __pyx_v_mons = PyTuple_GET_ITEM(__pyx_args, 3);
        if (PyTuple_GET_SIZE(__pyx_args) > 4) {
          __pyx_v_coeffs = PyTuple_GET_ITEM(__pyx_args, 4);
        }
      }
    }
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO|OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_header, &__pyx_v_terms, &__pyx_v_mons, &__pyx_v_coeffs))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.__init__");
  return NULL;
  __pyx_L3:;
  __pyx_v_k = Py_None; Py_INCREF(Py_None);
  __pyx_v_m = Py_None; Py_INCREF(Py_None);
  __pyx_4 = PyCFunction_New(&__pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___init__, 0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyMethod_New(__pyx_4, 0, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  if (PyObject_SetAttr(__pyx_3, __pyx_n___init__, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
 317:         """
 318:         External use:
 319:             sage: h = head(2,QQ)
 320:             sage: x = monomial(h,(1,0))
 321:             sage: y = monomial(h,(0,1))
 322:             sage: p = mpoly(h, {x:1, y:1, x*y:2})
 323: 
 324:         Internal use: WE ASSUME THE MONOMIALS ARE ORDERED!
 325:             sage: p = mpoly(h, mons = [x*y,x,y], coeffs=[2,1,1])
 326:         """
 327:         self.head = header
  if (PyObject_SetAttr(__pyx_v_self, __pyx_n_head, __pyx_v_header) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1;}
 328:         if terms is None:
  __pyx_1 = (__pyx_v_terms == Py_None);
  if (__pyx_1) {
 329:             if mons is None:
    __pyx_1 = (__pyx_v_mons == Py_None);
    if (__pyx_1) {
      __pyx_2 = PyDict_New(); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1;}
 330:                 self.terms = {}
      if (PyObject_SetAttr(__pyx_v_self, __pyx_n_terms, ((PyObject *)__pyx_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
      goto __pyx_L5;
    }
    __pyx_L5:;
    goto __pyx_L4;
  }
  /*else*/ {
 331:         else:
 332:             self.terms = terms
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_terms, __pyx_v_terms) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L1;}
  }
  __pyx_L4:;
 333:         if mons is not None:
  __pyx_1 = (__pyx_v_mons != Py_None);
  if (__pyx_1) {
 334:             self.mons = mons
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_mons, __pyx_v_mons) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 334; __pyx_clineno = __LINE__; goto __pyx_L1;}
 335:             self.coeffs = coeffs
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_coeffs, __pyx_v_coeffs) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 335; __pyx_clineno = __LINE__; goto __pyx_L1;}
    goto __pyx_L6;
  }
  /*else*/ {
 336:         else:
 337:             k = self.head.field()
    __pyx_2 = PyObject_GetAttr(__pyx_v_self, __pyx_n_head); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_3 = PyObject_GetAttr(__pyx_2, __pyx_n_field); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_2); __pyx_2 = 0;
    __pyx_2 = PyObject_Call(__pyx_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    Py_DECREF(__pyx_v_k);
    __pyx_v_k = __pyx_2;
    __pyx_2 = 0;
 338:             self.mons = sorted(self.terms, reverse=True)
    __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_terms); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_2 = PyTuple_New(1); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    PyTuple_SET_ITEM(__pyx_2, 0, __pyx_3);
    __pyx_3 = 0;
    __pyx_3 = PyDict_New(); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    if (PyDict_SetItem(__pyx_3, __pyx_n_reverse, Py_True) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_4 = PyEval_CallObjectWithKeywords(__pyx_builtin_sorted, ((PyObject *)__pyx_2), ((PyObject *)__pyx_3)); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
    Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_mons, __pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
 339:             self.coeffs = [k(self.terms[m]) for m in self.mons]
    __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
    if (PyList_CheckExact(__pyx_3)) { __pyx_5 = 0; __pyx_4 = __pyx_3; Py_INCREF(__pyx_4); }
    else { __pyx_4 = PyObject_GetIter(__pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;} }
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    for (;;) {
      if (PyList_CheckExact(__pyx_4)) { if (__pyx_5 >= PyList_GET_SIZE(__pyx_4)) break; __pyx_3 = PyList_GET_ITEM(__pyx_4, __pyx_5++); Py_INCREF(__pyx_3); }
      else {
        __pyx_3 = PyIter_Next(__pyx_4);
        if (!__pyx_3) {
          break;
        }
      }
      Py_DECREF(__pyx_v_m);
      __pyx_v_m = __pyx_3;
      __pyx_3 = 0;
      __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_terms); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
      __pyx_6 = PyObject_GetItem(__pyx_3, __pyx_v_m); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_3); __pyx_3 = 0;
      __pyx_3 = PyTuple_New(1); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
      PyTuple_SET_ITEM(__pyx_3, 0, __pyx_6);
      __pyx_6 = 0;
      __pyx_6 = PyObject_Call(__pyx_v_k, ((PyObject *)__pyx_3), NULL); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(((PyObject *)__pyx_3)); __pyx_3 = 0;
      __pyx_7 = PyList_Append(__pyx_2, __pyx_6); if (unlikely(__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
      Py_DECREF(__pyx_6); __pyx_6 = 0;
    }
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    if (PyObject_SetAttr(__pyx_v_self, __pyx_n_coeffs, ((PyObject *)__pyx_2)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(((PyObject *)__pyx_2)); __pyx_2 = 0;
  }
  __pyx_L6:;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_6);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.__init__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_k);
  Py_DECREF(__pyx_v_m);
  return __pyx_r;
}
 340: 
 341:     def __repr__(self):
static PyObject *__pyx_n_range;
static PyObject *__pyx_n_replace;

static PyObject *__pyx_k_18p;
static PyObject *__pyx_k_19p;
static PyObject *__pyx_k_20p;

static PyObject *__pyx_builtin_range;

static char __pyx_k_18[] = "+";
static char __pyx_k_19[] = "+-";
static char __pyx_k_20[] = "-";

static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 341)";
static PyMethodDef __pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__ = {"__repr__", (PyCFunction)__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__, METH_O, __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__};
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_r;
  PyObject *__pyx_v_i;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  PyObject *__pyx_2 = 0;
  Py_ssize_t __pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  Py_ssize_t __pyx_5 = 0;
  PyObject *__pyx_6 = 0;
  PyObject *__pyx_7 = 0;
  PyObject *__pyx_8 = 0;
  int __pyx_9;
  __pyx_v_r = Py_None; Py_INCREF(Py_None);
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
  __pyx_4 = PyCFunction_New(&__pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly___repr__, 0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyMethod_New(__pyx_4, 0, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  if (PyObject_SetAttr(__pyx_3, __pyx_n___repr__, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
 342:         r =  "+".join([self.mons[i].repr(self.coeffs[i]) for i in range(lencoerce(self.mons))])
  __pyx_1 = PyObject_GetAttr(__pyx_k_18p, __pyx_n_join); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyObject_Length(__pyx_4); if (unlikely(__pyx_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  __pyx_4 = PyInt_FromSsize_t(__pyx_5); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_6, 0, __pyx_4);
  __pyx_4 = 0;
  __pyx_4 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
  if (PyList_CheckExact(__pyx_4)) { __pyx_3 = 0; __pyx_6 = __pyx_4; Py_INCREF(__pyx_6); }
  else { __pyx_6 = PyObject_GetIter(__pyx_4); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;} }
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_6)) { if (__pyx_3 >= PyList_GET_SIZE(__pyx_6)) break; __pyx_4 = PyList_GET_ITEM(__pyx_6, __pyx_3++); Py_INCREF(__pyx_4); }
    else {
      __pyx_4 = PyIter_Next(__pyx_6);
      if (!__pyx_4) {
        break;
      }
    }
    Py_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_4;
    __pyx_4 = 0;
    __pyx_4 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_7 = PyObject_GetItem(__pyx_4, __pyx_v_i); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    __pyx_4 = PyObject_GetAttr(__pyx_7, __pyx_n_repr); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_7); __pyx_7 = 0;
    __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_coeffs); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_8 = PyObject_GetItem(__pyx_7, __pyx_v_i); if (unlikely(!__pyx_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_7); __pyx_7 = 0;
    __pyx_7 = PyTuple_New(1); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    PyTuple_SET_ITEM(__pyx_7, 0, __pyx_8);
    __pyx_8 = 0;
    __pyx_8 = PyObject_Call(__pyx_4, ((PyObject *)__pyx_7), NULL); if (unlikely(!__pyx_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    Py_DECREF(((PyObject *)__pyx_7)); __pyx_7 = 0;
    __pyx_9 = PyList_Append(__pyx_2, __pyx_8); if (unlikely(__pyx_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_8); __pyx_8 = 0;
  }
  Py_DECREF(__pyx_6); __pyx_6 = 0;
  __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_4, 0, ((PyObject *)__pyx_2));
  __pyx_2 = 0;
  __pyx_7 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_4), NULL); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
  Py_DECREF(__pyx_v_r);
  __pyx_v_r = __pyx_7;
  __pyx_7 = 0;
 343:         return r.replace("+-","-")
  __pyx_8 = PyObject_GetAttr(__pyx_v_r, __pyx_n_replace); if (unlikely(!__pyx_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_6 = PyTuple_New(2); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_INCREF(__pyx_k_19p);
  PyTuple_SET_ITEM(__pyx_6, 0, __pyx_k_19p);
  Py_INCREF(__pyx_k_20p);
  PyTuple_SET_ITEM(__pyx_6, 1, __pyx_k_20p);
  __pyx_2 = PyObject_Call(__pyx_8, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_8); __pyx_8 = 0;
  Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
  __pyx_r = __pyx_2;
  __pyx_2 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_6);
  Py_XDECREF(__pyx_7);
  Py_XDECREF(__pyx_8);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.__repr__");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_r);
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 344: 
 345:     def dict(self):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 345)\n\n        Makes a dict so we can pass back to Sage.\n        ";
static PyMethodDef __pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict = {"dict", (PyCFunction)__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict, METH_O, __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict};
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_D;
  PyObject *__pyx_v_mons;
  PyObject *__pyx_v_coeffs;
  PyObject *__pyx_v_i;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  long __pyx_2;
  Py_ssize_t __pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  PyObject *__pyx_5 = 0;
  __pyx_v_D = Py_None; Py_INCREF(Py_None);
  __pyx_v_mons = Py_None; Py_INCREF(Py_None);
  __pyx_v_coeffs = Py_None; Py_INCREF(Py_None);
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
  __pyx_4 = PyCFunction_New(&__pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_dict, 0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyMethod_New(__pyx_4, 0, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  if (PyObject_SetAttr(__pyx_3, __pyx_n_dict, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
 346:         """
 347:         Makes a dict so we can pass back to Sage.
 348:         """
 349:         D = {}
  __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_D);
  __pyx_v_D = ((PyObject *)__pyx_1);
  __pyx_1 = 0;
 350:         mons = self.mons
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_mons);
  __pyx_v_mons = __pyx_1;
  __pyx_1 = 0;
 351:         coeffs = self.coeffs
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_coeffs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_v_coeffs);
  __pyx_v_coeffs = __pyx_1;
  __pyx_1 = 0;
 352:         for i from 0 <= i < len(self.mons):
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = PyObject_Length(__pyx_1); if (unlikely(__pyx_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  for (__pyx_2 = 0; __pyx_2 < __pyx_3; __pyx_2++) {
    __pyx_1 = PyInt_FromLong(__pyx_2); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 352; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_1;
    __pyx_1 = 0;
 353:             D[mons[i].tuple()] = coeffs[i]
    __pyx_1 = PyObject_GetItem(__pyx_v_coeffs, __pyx_v_i); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_4 = PyObject_GetItem(__pyx_v_mons, __pyx_v_i); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_5 = PyObject_GetAttr(__pyx_4, __pyx_n_tuple); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    __pyx_4 = PyObject_Call(__pyx_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
    if (PyObject_SetItem(__pyx_v_D, __pyx_4, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_4); __pyx_4 = 0;
    Py_DECREF(__pyx_1); __pyx_1 = 0;
  }
 354:         return D
  Py_INCREF(__pyx_v_D);
  __pyx_r = __pyx_v_D;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.dict");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_D);
  Py_DECREF(__pyx_v_mons);
  Py_DECREF(__pyx_v_coeffs);
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 355: 
 356:     def is_monomial_multiple(self, other, mon):
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 356)\n\n        Return true if self*mon == other\n        ";
static PyMethodDef __pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple = {"is_monomial_multiple", (PyCFunction)__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple, METH_VARARGS|METH_KEYWORDS, __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple};
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  PyObject *__pyx_v_mon = 0;
  PyObject *__pyx_v_i;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  Py_ssize_t __pyx_2 = 0;
  Py_ssize_t __pyx_3 = 0;
  int __pyx_4;
  PyObject *__pyx_5 = 0;
  PyObject *__pyx_6 = 0;
  PyObject *__pyx_7 = 0;
  int __pyx_8;
  static char *__pyx_argnames[] = {"self","other","mon",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 3)) {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_other = PyTuple_GET_ITEM(__pyx_args, 1);
    __pyx_v_mon = PyTuple_GET_ITEM(__pyx_args, 2);
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOO", __pyx_argnames, &__pyx_v_self, &__pyx_v_other, &__pyx_v_mon))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.is_monomial_multiple");
  return NULL;
  __pyx_L3:;
  __pyx_v_i = Py_None; Py_INCREF(Py_None);
  __pyx_4 = PyCFunction_New(&__pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_is_monomial_multiple, 0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyMethod_New(__pyx_4, 0, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  if (PyObject_SetAttr(__pyx_3, __pyx_n_is_monomial_multiple, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
 357:         """
 358:         Return true if self*mon == other
 359:         """
 360:         if len(self.mons) != len(other.mons):
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_2 = PyObject_Length(__pyx_1); if (unlikely(__pyx_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_1 = PyObject_GetAttr(__pyx_v_other, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = PyObject_Length(__pyx_1); if (unlikely(__pyx_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_4 = (__pyx_2 != __pyx_3);
  if (__pyx_4) {
 361:             return False
    Py_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
    goto __pyx_L4;
  }
  __pyx_L4:;
 362:         if self.coeffs coerce!= other.coeffs:
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_coeffs); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyObject_GetAttr(__pyx_v_other, __pyx_n_coeffs); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_6 = PyObject_RichCompare(__pyx_1, __pyx_5, Py_NE); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  Py_DECREF(__pyx_5); __pyx_5 = 0;
  __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_6); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_6); __pyx_6 = 0;
  if (__pyx_4) {
 363:             return False
    Py_INCREF(Py_False);
    __pyx_r = Py_False;
    goto __pyx_L0;
    goto __pyx_L5;
  }
  __pyx_L5:;
 364:         for i in range(lencoerce(self.mons)):
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = PyObject_Length(__pyx_1); if (unlikely(__pyx_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  __pyx_5 = PyInt_FromSsize_t(__pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_6 = PyTuple_New(1); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_6, 0, __pyx_5);
  __pyx_5 = 0;
  __pyx_1 = PyObject_Call(__pyx_builtin_range, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
  if (PyList_CheckExact(__pyx_1)) { __pyx_2 = 0; __pyx_5 = __pyx_1; Py_INCREF(__pyx_5); }
  else { __pyx_5 = PyObject_GetIter(__pyx_1); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1;} }
  Py_DECREF(__pyx_1); __pyx_1 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_5)) { if (__pyx_2 >= PyList_GET_SIZE(__pyx_5)) break; __pyx_6 = PyList_GET_ITEM(__pyx_5, __pyx_2++); Py_INCREF(__pyx_6); }
    else {
      __pyx_6 = PyIter_Next(__pyx_5);
      if (!__pyx_6) {
        break;
      }
    }
    Py_DECREF(__pyx_v_i);
    __pyx_v_i = __pyx_6;
    __pyx_6 = 0;
 365:             if not other.mons[i].is_mulcoerce(mon, self.mons[i]):
    __pyx_1 = PyObject_GetAttr(__pyx_v_other, __pyx_n_mons); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_6 = PyObject_GetItem(__pyx_1, __pyx_v_i); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    __pyx_1 = PyObject_GetAttr(__pyx_6, __pyx_n_is_mul); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    __pyx_6 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    __pyx_7 = PyObject_GetItem(__pyx_6, __pyx_v_i); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    __pyx_6 = PyTuple_New(2); if (unlikely(!__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_INCREF(__pyx_v_mon);
    PyTuple_SET_ITEM(__pyx_6, 0, __pyx_v_mon);
    PyTuple_SET_ITEM(__pyx_6, 1, __pyx_7);
    __pyx_7 = 0;
    __pyx_7 = PyObject_Call(__pyx_1, ((PyObject *)__pyx_6), NULL); if (unlikely(!__pyx_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_1); __pyx_1 = 0;
    Py_DECREF(((PyObject *)__pyx_6)); __pyx_6 = 0;
    __pyx_4 = __Pyx_PyObject_IsTrue(__pyx_7); if (unlikely(__pyx_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_7); __pyx_7 = 0;
    __pyx_8 = (!__pyx_4);
    if (__pyx_8) {
 366:                 return False
      Py_INCREF(Py_False);
      __pyx_r = Py_False;
      Py_DECREF(__pyx_5); __pyx_5 = 0;
      goto __pyx_L0;
      goto __pyx_L8;
    }
    __pyx_L8:;
  }
  Py_DECREF(__pyx_5); __pyx_5 = 0;
 367:         return True
  Py_INCREF(Py_True);
  __pyx_r = Py_True;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_5);
  Py_XDECREF(__pyx_6);
  Py_XDECREF(__pyx_7);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.is_monomial_multiple");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_i);
  return __pyx_r;
}
 368: 
 369:     def mul_by_monomial(self, m):

static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial[] = "File: _Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.pyx (starting at line 369)\n\n        return self*m\n        ";
static PyMethodDef __pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial = {"mul_by_monomial", (PyCFunction)__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial, METH_VARARGS|METH_KEYWORDS, __pyx_doc_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial};
static PyObject *__pyx_pf_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_nmons;
  PyObject *__pyx_v_t;
  PyObject *__pyx_r;
  PyObject *__pyx_1 = 0;
  Py_ssize_t __pyx_2 = 0;
  PyObject *__pyx_3 = 0;
  PyObject *__pyx_4 = 0;
  PyObject *__pyx_5 = 0;
  int __pyx_6;
  static char *__pyx_argnames[] = {"self","m",0};
  if (likely(!__pyx_kwds) && likely(PyTuple_GET_SIZE(__pyx_args) == 2)) {
    __pyx_v_self = PyTuple_GET_ITEM(__pyx_args, 0);
    __pyx_v_m = PyTuple_GET_ITEM(__pyx_args, 1);
  }
  else {
    if (unlikely(!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_self, &__pyx_v_m))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L2;}
  }
  goto __pyx_L3;
  __pyx_L2:;
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.mul_by_monomial");
  return NULL;
  __pyx_L3:;
  __pyx_v_nmons = Py_None; Py_INCREF(Py_None);
  __pyx_v_t = Py_None; Py_INCREF(Py_None);
  __pyx_4 = PyCFunction_New(&__pyx_mdef_76_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0_5mpoly_mul_by_monomial, 0); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyMethod_New(__pyx_4, 0, __pyx_3); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  if (PyObject_SetAttr(__pyx_3, __pyx_n_mul_by_monomial, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
  if (PyObject_SetAttr(__pyx_m, __pyx_n_mpoly, __pyx_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  return;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0");
}
 370:         """
 371:         return self*m
 372:         """
 373:         nmons = [m*t for t in self.mons]
  __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_3 = PyObject_GetAttr(__pyx_v_self, __pyx_n_mons); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (PyList_CheckExact(__pyx_3)) { __pyx_2 = 0; __pyx_4 = __pyx_3; Py_INCREF(__pyx_4); }
  else { __pyx_4 = PyObject_GetIter(__pyx_3); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1;} }
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  for (;;) {
    if (PyList_CheckExact(__pyx_4)) { if (__pyx_2 >= PyList_GET_SIZE(__pyx_4)) break; __pyx_3 = PyList_GET_ITEM(__pyx_4, __pyx_2++); Py_INCREF(__pyx_3); }
    else {
      __pyx_3 = PyIter_Next(__pyx_4);
      if (!__pyx_3) {
        break;
      }
    }
    Py_DECREF(__pyx_v_t);
    __pyx_v_t = __pyx_3;
    __pyx_3 = 0;
    __pyx_3 = __pyx_v_m;
    Py_INCREF(__pyx_3);
    __pyx_5 = PyNumber_Multiply(__pyx_3, __pyx_v_t); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_3); __pyx_3 = 0;
    __pyx_6 = PyList_Append(__pyx_1, __pyx_5); if (unlikely(__pyx_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
  }
  Py_DECREF(__pyx_4); __pyx_4 = 0;
  Py_DECREF(__pyx_v_nmons);
  __pyx_v_nmons = ((PyObject *)__pyx_1);
  __pyx_1 = 0;
 374:         return mpoly(self.head,coeffs=self.coeffs,mons=nmons)
  __pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_mpoly); if (unlikely(!__pyx_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_head); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_4 = PyTuple_New(1); if (unlikely(!__pyx_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  PyTuple_SET_ITEM(__pyx_4, 0, __pyx_5);
  __pyx_5 = 0;
  __pyx_1 = PyDict_New(); if (unlikely(!__pyx_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_coeffs); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  if (PyDict_SetItem(__pyx_1, __pyx_n_coeffs, __pyx_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_5); __pyx_5 = 0;
  if (PyDict_SetItem(__pyx_1, __pyx_n_mons, __pyx_v_nmons) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  __pyx_5 = PyEval_CallObjectWithKeywords(__pyx_3, ((PyObject *)__pyx_4), ((PyObject *)__pyx_1)); if (unlikely(!__pyx_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1;}
  Py_DECREF(__pyx_3); __pyx_3 = 0;
  Py_DECREF(((PyObject *)__pyx_4)); __pyx_4 = 0;
  Py_DECREF(((PyObject *)__pyx_1)); __pyx_1 = 0;
  __pyx_r = __pyx_5;
  __pyx_5 = 0;
  goto __pyx_L0;

  __pyx_r = Py_None; Py_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_4);
  Py_XDECREF(__pyx_5);
  __Pyx_AddTraceback("_Users_was_edu_2007_2008_sage_notebook_worksheets_admin_17_code_sage5_spyx_0.mpoly.mul_by_monomial");
  __pyx_r = NULL;
  __pyx_L0:;
  Py_DECREF(__pyx_v_nmons);
  Py_DECREF(__pyx_v_t);
  return __pyx_r;
}