mp.c: Proper binding for `mp_factorial'.
[catacomb-python] / mp.c
diff --git a/mp.c b/mp.c
index 705a65e..038324a 100644 (file)
--- a/mp.c
+++ b/mp.c
@@ -927,6 +927,16 @@ end:
   return (z);
 }
 
+static PyObject *meth__MP_factorial(PyObject *me, PyObject *arg)
+{
+  unsigned long i;
+  mp *x;
+  if (!PyArg_ParseTuple(arg, "OO&:factorial", &me, convulong, &i))
+    return (0);
+  x = mp_factorial(i);
+  return mp_pywrap(x);
+}
+
 #define LOADOP(pre, py, name)                                          \
   static PyObject *meth__##py##_##name(PyObject *me, PyObject *arg)    \
   {                                                                    \
@@ -2446,6 +2456,8 @@ fromstring(STR, radix = 0) -> (X, REST)\n\
 Parse STR as a binary polynomial, according to radix.  If radix is zero,\n\
 read a prefix from STR to decide radix: allow `0' for octal, `0x' for hex\n\
 or `R_' for other radix R.")
+  METH (_MP_factorial,         "\
+factorial(I) -> I!: compute factorial")
   METH (_MP_loadl,             "\
 loadl(STR) -> X: read little-endian bytes")
   METH (_MP_loadb,             "\