RETURN_ME;
}
-static PyObject *meth__PrimeFilter_smallfactor(PyObject *me, PyObject *arg)
+static PyObject *pfmeth_smallfactor(PyObject *me, PyObject *arg)
{
mp *x = 0;
PyObject *rc = 0;
- if (!PyArg_ParseTuple(arg, "OO&:smallfactor", &me, convmp, &x)) goto end;
+ if (!PyArg_ParseTuple(arg, "O&:smallfactor", convmp, &x)) goto end;
rc = PyInt_FromLong(pfilt_smallfactor(x));
end:
mp_drop(x);
METH (step, "F.step(N)")
METH (muladd, "F.muladd(M, A)")
METH (jump, "F.jump(FF)")
+ SMTH (smallfactor, "smallfactor(X) -> PGST")
#undef METHNAME
{ 0 }
};
0, /* @nb_inplace_true_divide@ */
};
-static PyTypeObject pfilt_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pfilt_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeFilter", /* @tp_name@ */
sizeof(pfilt_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
static PyObject *rget_x(PyObject *me, void *hunoz)
{ return (mp_pywrap(MP_COPY(RABIN_R(me)->mm.m))); }
-static PyObject *meth__RabinMiller_iters(PyObject *me, PyObject *arg)
+static PyObject *rmeth_iters(PyObject *me, PyObject *arg)
{
unsigned n;
- if (!PyArg_ParseTuple(arg, "OO&:iters", &me, convuint, &n)) return (0);
+ if (!PyArg_ParseTuple(arg, "O&:iters", convuint, &n)) return (0);
return (PyInt_FromLong(rabin_iters(n)));
}
#define METHNAME(name) rmeth_##name
METH (test, "R.test(W) -> PGST")
METH (rtest, "R.rtest(W) -> PGST")
+ SMTH (iters, "iters(NBITS) -> NITERS")
#undef METHNAME
{ 0 }
};
-static PyTypeObject rabin_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject rabin_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"RabinMiller", /* @tp_name@ */
sizeof(rabin_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
{ 0 }
};
-static PyTypeObject pgevent_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pgevent_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeGenEvent", /* @tp_name@ */
sizeof(pgevent_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
{ 0 }
};
-static PyTypeObject pgev_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pgev_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeGenBuiltinHandler", /* @tp_name@ */
sizeof(pgev_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
{ 0 }
};
-static PyTypeObject pgstep_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pgstep_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeGenStepper", /* @tp_name@ */
sizeof(pgstep_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
{ 0 }
};
-static PyTypeObject pgjump_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pgjump_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeGenJumper", /* @tp_name@ */
sizeof(pgjump_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
return ((PyObject *)rc);
}
-static PyTypeObject pgtest_pytype_skel = {
- PyObject_HEAD_INIT(0) 0, /* Header */
+static const PyTypeObject pgtest_pytype_skel = {
+ PyVarObject_HEAD_INIT(0, 0) /* Header */
"PrimeGenTester", /* @tp_name@ */
sizeof(pgtest_pyobj), /* @tp_basicsize@ */
0, /* @tp_itemsize@ */
/*----- Global stuff ------------------------------------------------------*/
+static const struct nameval consts[] = {
+ CONST(PGEN_PASS), CONST(PGEN_FAIL), CONST(PGEN_BEGIN), CONST(PGEN_TRY),
+ CONST(PGEN_DONE), CONST(PGEN_ABORT),
+ { 0 }
+};
+
static const PyMethodDef methods[] = {
#define METHNAME(name) meth_##name
- METH (_PrimeFilter_smallfactor, "smallfactor(X) -> PGRC")
- METH (_RabinMiller_iters, "iters(NBITS) -> NITERS")
KWMETH(pgen,
"pgen(START, [name = 'p'], [stepper = PrimeGenStepper(2)],\n"
" [tester = PrimeGenTester()], [event = pgen_nullev],\n"
INSERT("pgen_stdev", pgev_stdev(pgen_ev));
INSERT("pgen_spinev", pgev_stdev(pgen_evspin));
INSERT("pgen_subev", pgev_stdev(pgen_subev));
+ setconstants(mod, consts);
}
/*----- That's all, folks -------------------------------------------------*/