X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/4dc1425be94a278259442aee3a966e1dc49c09ee..a6bd51d5a77eac779f8c917bbba08fa841837bc7:/field.c diff --git a/field.c b/field.c index 9380678..2e99efc 100644 --- a/field.c +++ b/field.c @@ -174,7 +174,10 @@ static PyObject *fe_pyexp(PyObject *x, PyObject *y, PyObject *z) field *ff; mp *xx, *yy; - if (z != Py_None || !FE_PYCHECK(x) || (yy = tomp(y)) == 0) + if (z != Py_None || !FE_PYCHECK(x)) RETURN_NOTIMPL; + if (FE_PYCHECK(y) && FE_F(y)->ops->ty == FTY_PRIME) + yy = F_OUT(FE_F(y), MP_NEW, FE_X(y)); + else if ((yy = implicitmp(y)) == 0) RETURN_NOTIMPL; ff = FE_F(x); xx = FE_X(x); MP_COPY(xx); if (MP_NEGP(yy) && F_ZEROP(ff, xx)) ZDIVERR("division by zero");