Admittedly, if you get even slightly close to the limits of an `int',
the calculation will take an infinite amount of time.
PyObject *(*id)(PyObject *),
int (*fill)(void *, PyObject *,
PyObject *, PyObject *),
PyObject *(*id)(PyObject *),
int (*fill)(void *, PyObject *,
PyObject *, PyObject *),
- PyObject *(*exp)(PyObject *, void *, int),
+ PyObject *(*exp)(PyObject *, void *, size_t),
void (*drop)(void *));
/*----- Bytestrings -------------------------------------------------------*/
void (*drop)(void *));
/*----- Bytestrings -------------------------------------------------------*/
PyObject *(*id)(PyObject *),
int (*fill)(void *, PyObject *,
PyObject *, PyObject *),
PyObject *(*id)(PyObject *),
int (*fill)(void *, PyObject *,
PyObject *, PyObject *),
- PyObject *(*exp)(PyObject *, void *, int),
+ PyObject *(*exp)(PyObject *, void *, size_t),
+ size_t i = 0, j, n;
+ int flat;
PyObject *qq, *x, *y, *z = 0;
char *v = 0, *vv;
PyObject *qq, *x, *y, *z = 0;
char *v = 0, *vv;
-static PyObject *ecmmul_exp(PyObject *me, void *pp, int n)
+static PyObject *ecmmul_exp(PyObject *me, void *pp, size_t n)
{
ec p = EC_INIT;
ec_immul(ECCURVE_C(me), &p, pp, n);
{
ec p = EC_INIT;
ec_immul(ECCURVE_C(me), &p, pp, n);
-static PyObject *gmexp_exp(PyObject *me, void *pp, int n)
+static PyObject *gmexp_exp(PyObject *me, void *pp, size_t n)
{
ge *z = G_CREATE(GROUP_G(me));
G_MEXP(GROUP_G(me), z, pp, n);
{
ge *z = G_CREATE(GROUP_G(me));
G_MEXP(GROUP_G(me), z, pp, n);
-static PyObject *mm_mexpr(PyObject *me, void *v, int n)
+static PyObject *mm_mexpr(PyObject *me, void *v, size_t n)
{ return mp_pywrap(mpmont_mexpr(MPMONT_PY(me), MP_NEW, v, n)); }
static void mp_mexp_drop(void *p)
{ return mp_pywrap(mpmont_mexpr(MPMONT_PY(me), MP_NEW, v, n)); }
static void mp_mexp_drop(void *p)
-static PyObject *mm_mexp(PyObject *me, void *v, int n)
+static PyObject *mm_mexp(PyObject *me, void *v, size_t n)
{ return mp_pywrap(mpmont_mexp(MPMONT_PY(me), MP_NEW, v, n)); }
static PyObject *mmmeth_mexp(PyObject *me, PyObject *arg)
{ return mp_pywrap(mpmont_mexp(MPMONT_PY(me), MP_NEW, v, n)); }
static PyObject *mmmeth_mexp(PyObject *me, PyObject *arg)
-static PyObject *mb_mexp(PyObject *me, void *v, int n)
+static PyObject *mb_mexp(PyObject *me, void *v, size_t n)
{ return mp_pywrap(mpbarrett_mexp(MPBARRETT_PY(me), MP_NEW, v, n)); }
static PyObject *mbmeth_mexp(PyObject *me, PyObject *arg)
{ return mp_pywrap(mpbarrett_mexp(MPBARRETT_PY(me), MP_NEW, v, n)); }
static PyObject *mbmeth_mexp(PyObject *me, PyObject *arg)