X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/catacomb-python/blobdiff_plain/6d4db0bf4b67e65708637466d4f0d306ed1dfe53..f1b0cf0da6b3bcc530d7f72982278510d94f6456:/pgen.c diff --git a/pgen.c b/pgen.c index 68830f1..108fa31 100644 --- a/pgen.c +++ b/pgen.c @@ -1,13 +1,11 @@ /* -*-c-*- - * - * $Id$ * * Prime number generation * * (c) 2005 Straylight/Edgeware */ -/*----- Licensing notice --------------------------------------------------* +/*----- Licensing notice --------------------------------------------------* * * This file is part of the Python interface to Catacomb. * @@ -15,12 +13,12 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * + * * Catacomb/Python is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with Catacomb/Python; if not, write to the Free Software Foundation, * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. @@ -40,7 +38,7 @@ static PyObject *pfilt_pywrap(pfilt *f) o = PyObject_New(pfilt_pyobj, pfilt_pytype); o->f = *f; o->st = pfilt_step(f, 0); - return ((PyObject *)o); + return ((PyObject *)o); } static PyObject *pfilt_pymake(PyTypeObject *ty, PyObject *xobj) @@ -122,14 +120,13 @@ static PyObject *pfilt_pyint(PyObject *me) long l; PyObject *rc = 0; - if (mp_tolong_checked(PFILT_F(me)->m, &l)) goto end; - rc = PyInt_FromLong(l); -end: + if (!mp_tolong_checked(PFILT_F(me)->m, &l, 0)) rc = PyInt_FromLong(l); + else rc = mp_topylong(PFILT_F(me)->m); return (rc); } static PyObject *pfilt_pylong(PyObject *me) - { return ((PyObject *)mp_topylong(PFILT_F(me)->m)); } + { return (mp_topylong(PFILT_F(me)->m)); } static PyObject *pfget_x(PyObject *me, void *hunoz) { return (mp_pywrap(MP_COPY(PFILT_F(me)->m))); } @@ -199,7 +196,7 @@ static PyNumberMethods pfilt_pynumber = { static PyTypeObject pfilt_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeFilter", /* @tp_name@ */ + "PrimeFilter", /* @tp_name@ */ sizeof(pfilt_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -229,7 +226,7 @@ static PyTypeObject pfilt_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ pfilt_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ pfilt_pygetset, /* @tp_getset@ */ @@ -332,7 +329,7 @@ static PyMethodDef rabin_pymethods[] = { static PyTypeObject rabin_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.RabinMiller", /* @tp_name@ */ + "RabinMiller", /* @tp_name@ */ sizeof(rabin_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -362,7 +359,7 @@ static PyTypeObject rabin_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ rabin_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ rabin_pygetset, /* @tp_getset@ */ @@ -450,7 +447,7 @@ static PyGetSetDef pgevent_pygetset[] = { static PyTypeObject pgevent_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenEvent", /* @tp_name@ */ + "PrimeGenEvent", /* @tp_name@ */ sizeof(pgevent_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -480,7 +477,7 @@ static PyTypeObject pgevent_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ pgevent_pygetset, /* @tp_getset@ */ @@ -548,7 +545,7 @@ static int pgev_python(int rq, pgen_event *ev, void *p) goto end; else if (l < PGEN_ABORT || l > PGEN_PASS) VALERR("return code out of range"); - else + else st = l; end: if (pyev) { @@ -631,7 +628,7 @@ static PyMethodDef pgev_pymethods[] = { static PyTypeObject pgev_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenBuiltinHandler", /* @tp_name@ */ + "PrimeGenBuiltinHandler", /* @tp_name@ */ sizeof(pgev_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -661,7 +658,7 @@ static PyTypeObject pgev_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ pgev_pymethods, /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ @@ -698,14 +695,14 @@ static PyObject *psget_step(PyObject *me, void *hunoz) static PyGetSetDef pgstep_pygetset[] = { #define GETSETNAME(op, name) ps##op##_##name - GET (step, "S.step -> step size for the stepper") + GET (step, "S.step -> step size for the stepper") #undef GETSETNAME { 0 } }; static PyTypeObject pgstep_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenStepper", /* @tp_name@ */ + "PrimeGenStepper", /* @tp_name@ */ sizeof(pgstep_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -735,7 +732,7 @@ static PyTypeObject pgstep_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ pgstep_pygetset, /* @tp_getset@ */ @@ -780,14 +777,14 @@ static PyObject *pjget_jump(PyObject *me, void *hunoz) static PyGetSetDef pgjump_pygetset[] = { #define GETSETNAME(op, name) pj##op##_##name - GET (jump, "S.jump -> jump size for the stepper") + GET (jump, "S.jump -> jump size for the stepper") #undef GETSETNAME { 0 } }; static PyTypeObject pgjump_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenJumper", /* @tp_name@ */ + "PrimeGenJumper", /* @tp_name@ */ sizeof(pgjump_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -817,7 +814,7 @@ static PyTypeObject pgjump_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ pgjump_pygetset, /* @tp_getset@ */ @@ -848,7 +845,7 @@ end: static PyTypeObject pgtest_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ - "catacomb.PrimeGenTester", /* @tp_name@ */ + "PrimeGenTester", /* @tp_name@ */ sizeof(pgtest_pyobj), /* @tp_basicsize@ */ 0, /* @tp_itemsize@ */ @@ -878,7 +875,7 @@ static PyTypeObject pgtest_pytype_skel = { 0, /* @tp_richcompare@ */ 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ - 0, /* @tp_iternexr@ */ + 0, /* @tp_iternext@ */ 0, /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ @@ -933,7 +930,7 @@ static PyObject *meth_pgen(PyObject *me, PyObject *arg, PyObject *kw) end: mp_drop(r); mp_drop(x); droppgev(&step); droppgev(&test); droppgev(&evt); - return (rc); + return (rc); } static PyObject *meth_strongprime_setup(PyObject *me, @@ -1035,10 +1032,10 @@ pgen(START, [name = 'p', stepper = PrimeGenStepper(2),\n\ nsteps = 0, ntests = RabinMiller.iters(START.nbits)]) -> P") KWMETH(strongprime_setup, "\ strongprime_setup(NBITS, [name = 'p', event = pgen_nullev,\n\ - rng = rand, nsteps = 0]) -> (START, JUMP)") + rng = rand, nsteps = 0]) -> (START, JUMP)") KWMETH(strongprime, "\ -strongprime_setup(NBITS, [name = 'p', event = pgen_nullev,\n\ - rng = rand, nsteps = 0]) -> P") +strongprime(NBITS, [name = 'p', event = pgen_nullev,\n\ + rng = rand, nsteps = 0]) -> P") KWMETH(limlee, "\ limlee(PBITS, QBITS, [name = 'p', event = pgen_nullev,\n\ ievent = pgen_nullev, rng = rand, nsteps = 0]) -> (P, [Q, ...])")