Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"PrimeFilter(X): small-primes filter.",
+ "PrimeFilter(X): small-primes filter.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"RabinMiller(X): Rabin-Miller strong primality test.",
+ "RabinMiller(X): Rabin-Miller strong primality test.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
static void pgevent_pydealloc(PyObject *me)
{
pgevent_pyobj *ev = (pgevent_pyobj *)me;
- if (ev->r) Py_DECREF(ev->r);
- FREEOBJ(me);
+ Py_XDECREF(ev->r); FREEOBJ(me);
}
#define PGEVENT_CHECK(me) do { \
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Prime-generation event.",
+ "Prime-generation event.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Built-in prime-generation event handler, base class.",
+ "Built-in prime-generation event handler, base class.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"PrimeGenStepper(STEP): simple stepper with small-factors filter.",
+ "PrimeGenStepper(STEP): simple stepper with small-factors filter.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"PrimeGenJumper(JUMP): stepper for larger steps with small-factors filter.",
+ "PrimeGenJumper(JUMP): "
+ "stepper for larger steps with small-factors filter.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"PrimeGenTester(): Rabin-Miller tester.",
+ "PrimeGenTester(): Rabin-Miller tester.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
static PyMethodDef methods[] = {
#define METHNAME(name) meth_##name
- METH (_PrimeFilter_smallfactor, "smallfactor(X) -> PGST")
- METH (_RabinMiller_iters, "iters(NBITS) -> NITERS")
- KWMETH(pgen, "\
-pgen(START, [name = 'p'[, [stepper = PrimeGenStepper(2)],\n\
- [tester = PrimeGenTester()], [event = pgen_nullev],\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)")
- KWMETH(strongprime, "\
-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, ...])")
+ 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"
+ " [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)")
+ KWMETH(strongprime,
+ "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, ...])")
#undef METHNAME
{ 0 }
};