Generated by Cython 0.12.1 on Sun Jul 18 10:52:54 2010
Raw output: _Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_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: def trial_division_cython1(n):
static PyObject *__pyx_pf_74_Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_spyx_0_trial_division_cython1(PyObject *__pyx_self, PyObject *__pyx_v_n); /*proto*/
static char __pyx_doc_74_Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_spyx_0_trial_division_cython1[] = "File: _Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_spyx_0.pyx (starting at line 6)";
static PyObject *__pyx_pf_74_Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_spyx_0_trial_division_cython1(PyObject *__pyx_self, PyObject *__pyx_v_n) {
PyObject *__pyx_v_p;
PyObject *__pyx_v_dif;
PyObject *__pyx_v_m;
PyObject *__pyx_v_i;
PyObject *__pyx_r = NULL;
__Pyx_RefNannySetupContext("trial_division_cython1");
__pyx_self = __pyx_self;
__Pyx_INCREF(__pyx_v_n);
__pyx_v_p = Py_None; __Pyx_INCREF(Py_None);
__pyx_v_dif = Py_None; __Pyx_INCREF(Py_None);
__pyx_v_m = Py_None; __Pyx_INCREF(Py_None);
__pyx_v_i = Py_None; __Pyx_INCREF(Py_None);
7: if n == 1: return 1
__pyx_t_1 = PyObject_RichCompare(__pyx_v_n, __pyx_int_1, Py_EQ); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
if (__pyx_t_2) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_int_1);
__pyx_r = __pyx_int_1;
goto __pyx_L0;
goto __pyx_L5;
}
__pyx_L5:;
8: for p in [2, 3, 5]:
__pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_1));
__Pyx_INCREF(__pyx_int_2);
PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_2);
__Pyx_GIVEREF(__pyx_int_2);
__Pyx_INCREF(__pyx_int_3);
PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_3);
__Pyx_GIVEREF(__pyx_int_3);
__Pyx_INCREF(__pyx_int_5);
PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_5);
__Pyx_GIVEREF(__pyx_int_5);
if (likely(((PyObject *)__pyx_t_1) != Py_None)) {
__pyx_t_3 = 0; __pyx_t_4 = ((PyObject *)__pyx_t_1); __Pyx_INCREF(__pyx_t_4);
} else {
PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
}
__Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
for (;;) {
if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_4)) break;
__pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++;
__Pyx_DECREF(__pyx_v_p);
__pyx_v_p = __pyx_t_1;
__pyx_t_1 = 0;
9: if n%p == 0: return p
__pyx_t_1 = PyNumber_Remainder(__pyx_v_n, __pyx_v_p); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_1);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (__pyx_t_2) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_p);
__pyx_r = __pyx_v_p;
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
goto __pyx_L0;
goto __pyx_L8;
}
__pyx_L8:;
}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
10: # Algorithm: only trial divide by numbers that
11: # are congruent to 1,7,11,13,17,29,23,29 mod 30=2*3*5.
12: dif = [6, 4, 2, 4, 2, 4, 6, 2]
__pyx_t_4 = PyList_New(8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(((PyObject *)__pyx_t_4));
__Pyx_INCREF(__pyx_int_6);
PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_6);
__Pyx_GIVEREF(__pyx_int_6);
__Pyx_INCREF(__pyx_int_4);
PyList_SET_ITEM(__pyx_t_4, 1, __pyx_int_4);
__Pyx_GIVEREF(__pyx_int_4);
__Pyx_INCREF(__pyx_int_2);
PyList_SET_ITEM(__pyx_t_4, 2, __pyx_int_2);
__Pyx_GIVEREF(__pyx_int_2);
__Pyx_INCREF(__pyx_int_4);
PyList_SET_ITEM(__pyx_t_4, 3, __pyx_int_4);
__Pyx_GIVEREF(__pyx_int_4);
__Pyx_INCREF(__pyx_int_2);
PyList_SET_ITEM(__pyx_t_4, 4, __pyx_int_2);
__Pyx_GIVEREF(__pyx_int_2);
__Pyx_INCREF(__pyx_int_4);
PyList_SET_ITEM(__pyx_t_4, 5, __pyx_int_4);
__Pyx_GIVEREF(__pyx_int_4);
__Pyx_INCREF(__pyx_int_6);
PyList_SET_ITEM(__pyx_t_4, 6, __pyx_int_6);
__Pyx_GIVEREF(__pyx_int_6);
__Pyx_INCREF(__pyx_int_2);
PyList_SET_ITEM(__pyx_t_4, 7, __pyx_int_2);
__Pyx_GIVEREF(__pyx_int_2);
__Pyx_DECREF(__pyx_v_dif);
__pyx_v_dif = ((PyObject *)__pyx_t_4);
__pyx_t_4 = 0;
13: m = 7; i = 1
__Pyx_INCREF(__pyx_int_7);
__Pyx_DECREF(__pyx_v_m);
__pyx_v_m = __pyx_int_7;
__Pyx_INCREF(__pyx_int_1);
__Pyx_DECREF(__pyx_v_i);
__pyx_v_i = __pyx_int_1;
14: while m*m <= n:
while (1) {
__pyx_t_4 = PyNumber_Multiply(__pyx_v_m, __pyx_v_m); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_v_n, Py_LE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
if (!__pyx_t_2) break;
15: if n%m == 0: return m
__pyx_t_5 = PyNumber_Remainder(__pyx_v_n, __pyx_v_m); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__pyx_t_4 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_EQ); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
if (__pyx_t_2) {
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_m);
__pyx_r = __pyx_v_m;
goto __pyx_L0;
goto __pyx_L11;
}
__pyx_L11:;
16: m += dif[i%8]
__pyx_t_4 = PyNumber_Remainder(__pyx_v_i, __pyx_int_8); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__pyx_t_5 = PyObject_GetItem(__pyx_v_dif, __pyx_t_4); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_5);
__Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_m, __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
__Pyx_DECREF(__pyx_v_m);
__pyx_v_m = __pyx_t_4;
__pyx_t_4 = 0;
17: i += 1
__pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
__Pyx_GOTREF(__pyx_t_4);
__Pyx_DECREF(__pyx_v_i);
__pyx_v_i = __pyx_t_4;
__pyx_t_4 = 0;
}
18: return n
__Pyx_XDECREF(__pyx_r);
__Pyx_INCREF(__pyx_v_n);
__pyx_r = __pyx_v_n;
goto __pyx_L0;
__pyx_r = Py_None; __Pyx_INCREF(Py_None);
goto __pyx_L0;
__pyx_L1_error:;
__Pyx_XDECREF(__pyx_t_1);
__Pyx_XDECREF(__pyx_t_4);
__Pyx_XDECREF(__pyx_t_5);
__Pyx_AddTraceback("_Users_wstein__sage_sage_notebook_sagenb_home_admin_478_code_sage39_spyx_0.trial_division_cython1");
__pyx_r = NULL;
__pyx_L0:;
__Pyx_DECREF(__pyx_v_p);
__Pyx_DECREF(__pyx_v_dif);
__Pyx_DECREF(__pyx_v_m);
__Pyx_DECREF(__pyx_v_i);
__Pyx_DECREF(__pyx_v_n);
__Pyx_XGIVEREF(__pyx_r);
__Pyx_RefNannyFinishContext();
return __pyx_r;
}