/* -*-c-*-
- *
- * $Id$
*
* Prime number generation
*
* (c) 2005 Straylight/Edgeware
*/
-/*----- Licensing notice --------------------------------------------------*
+/*----- Licensing notice --------------------------------------------------*
*
* This file is part of the Python interface to Catacomb.
*
* 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.
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)
}
static void pfilt_pydealloc(PyObject *me)
- { pfilt_destroy(PFILT_F(me)); PyObject_DEL(me); }
+ { pfilt_destroy(PFILT_F(me)); FREEOBJ(me); }
static PyObject *pfmeth_step(PyObject *me, PyObject *arg)
{
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))); }
};
static PyTypeObject pfilt_pytype_skel = {
- PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */
- "catacomb.PrimeFilter", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeFilter", /* @tp_name@ */
sizeof(pfilt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
pfilt_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
static void rabin_pydealloc(PyObject *me)
{
rabin_destroy(RABIN_R(me));
- PyObject_DEL(me);
+ FREEOBJ(me);
}
static PyObject *rmeth_test(PyObject *me, PyObject *arg)
};
static PyTypeObject rabin_pytype_skel = {
- PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */
- "catacomb.RabinMiller", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "RabinMiller", /* @tp_name@ */
sizeof(rabin_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
rabin_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
static CONVFUNC(pgevent, pgen_event *, PGEVENT_EV)
static void pgevent_kill(PyObject *me) { PGEVENT_EV(me) = 0; }
-static void pgevent_pydealloc(PyObject *me) { PyObject_DEL(me); }
+static void pgevent_pydealloc(PyObject *me) { FREEOBJ(me); }
#define PGEVENT_CHECK(me) do { \
if (!PGEVENT_EV(me)) { \
mp *x = 0;
pgen_event *ev = PGEVENT_EV(me);
int rc = -1;
+ if (!x) NIERR("__del__");
PGEVENT_CHECK(me);
if ((x = getmp(xobj)) == 0) goto end;
mp_drop(ev->m);
};
static PyTypeObject pgevent_pytype_skel = {
- PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */
- "catacomb.PrimeGenEvent", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeGenEvent", /* @tp_name@ */
sizeof(pgevent_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
abstract_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
goto end;
else if (l < PGEN_ABORT || l > PGEN_PASS)
VALERR("return code out of range");
- else
+ else
st = l;
end:
if (pyev) {
};
static PyTypeObject pgev_pytype_skel = {
- PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */
- "catacomb.PrimeGenBuiltinHandler", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeGenBuiltinHandler", /* @tp_name@ */
sizeof(pgev_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
- _PyObject_Del, /* @tp_dealloc@ */
+ 0, /* @tp_dealloc@ */
0, /* @tp_print@ */
0, /* @tp_getattr@ */
0, /* @tp_setattr@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
abstract_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
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(&PyType_Type) 0, /* Header */
- "catacomb.PrimeGenStepper", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeGenStepper", /* @tp_name@ */
sizeof(pgstep_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
pgstep_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
static void pgjump_pydealloc(PyObject *me)
{
Py_DECREF(PGJUMP_FOBJ(me));
- _PyObject_Del(me);
+ FREEOBJ(me);
}
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(&PyType_Type) 0, /* Header */
- "catacomb.PrimeGenJumper", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeGenJumper", /* @tp_name@ */
sizeof(pgjump_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
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@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
pgjump_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
}
static PyTypeObject pgtest_pytype_skel = {
- PyObject_HEAD_INIT(&PyType_Type) 0, /* Header */
- "catacomb.PrimeGenTester", /* @tp_name@ */
+ PyObject_HEAD_INIT(0) 0, /* Header */
+ "PrimeGenTester", /* @tp_name@ */
sizeof(pgtest_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternexr@ */
+ 0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_init@ */
PyType_GenericAlloc, /* @tp_alloc@ */
pgtest_pynew, /* @tp_new@ */
- _PyObject_Del, /* @tp_free@ */
+ 0, /* @tp_free@ */
0 /* @tp_is_gc@ */
};
end:
mp_drop(r); mp_drop(x);
droppgev(&step); droppgev(&test); droppgev(&evt);
- return (rc);
+ return (rc);
}
static PyObject *meth_strongprime_setup(PyObject *me,
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, ...])")