pyke/, ...: Extract utilities into a sort-of reusable library.
[catacomb-python] / pgen.c
diff --git a/pgen.c b/pgen.c
index 8e1911b..58f6845 100644 (file)
--- a/pgen.c
+++ b/pgen.c
@@ -219,7 +219,7 @@ static PyTypeObject pfilt_pytype_skel = {
     Py_TPFLAGS_BASETYPE,
 
   /* @tp_doc@ */
-"PrimeFilter(X): small-primes filter.",
+  "PrimeFilter(X): small-primes filter.",
 
   0,                                   /* @tp_traverse@ */
   0,                                   /* @tp_clear@ */
@@ -352,7 +352,7 @@ static PyTypeObject rabin_pytype_skel = {
     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@ */
@@ -406,8 +406,7 @@ static void pgevent_kill(PyObject *me)
 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 {                                         \
@@ -490,7 +489,7 @@ static PyTypeObject pgevent_pytype_skel = {
     Py_TPFLAGS_BASETYPE,
 
   /* @tp_doc@ */
-"Prime-generation event.",
+  "Prime-generation event.",
 
   0,                                   /* @tp_traverse@ */
   0,                                   /* @tp_clear@ */
@@ -669,7 +668,7 @@ static PyTypeObject pgev_pytype_skel = {
     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@ */
@@ -743,7 +742,7 @@ static PyTypeObject pgstep_pytype_skel = {
     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@ */
@@ -825,7 +824,8 @@ static PyTypeObject pgjump_pytype_skel = {
     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@ */
@@ -886,7 +886,7 @@ static PyTypeObject pgtest_pytype_skel = {
     Py_TPFLAGS_BASETYPE,
 
   /* @tp_doc@ */
-"PrimeGenTester(): Rabin-Miller tester.",
+  "PrimeGenTester(): Rabin-Miller tester.",
 
   0,                                   /* @tp_traverse@ */
   0,                                   /* @tp_clear@ */
@@ -1051,21 +1051,22 @@ end:
 
 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 }
 };