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; }