return (mp_pywrap(x));
}
-static PyGetSetDef fe_pygetset[] = {
+static const PyGetSetDef fe_pygetset[] = {
#define GETSETNAME(op, name) fe##op##_##name
GET (field, "X.field -> field containing X")
GET (value, "X.value -> `natural' MP/GF representation of X")
{ 0 }
};
-static PyMethodDef fe_pymethods[] = {
+static const PyMethodDef fe_pymethods[] = {
#define METHNAME(func) femeth_##func
METH (inv, "X.inv() -> X^{-1}")
METH (sqr, "X.sqr() -> X^2")
{ 0 }
};
-static PyNumberMethods fe_pynumber = {
+static const PyNumberMethods fe_pynumber = {
fe_pyadd, /* @nb_add@ */
fe_pysub, /* @nb_subtract@ */
fe_pymul, /* @nb_multiply@ */
0, /* @tp_setattr@ */
0, /* @tp_compare@ */
0, /* @tp_repr@ */
- &fe_pynumber, /* @tp_as_number@ */
+ PYNUMBER(fe), /* @tp_as_number@ */
0, /* @tp_as_sequence@ */
0, /* @tp_as_mapping@ */
fe_pyhash, /* @tp_hash@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
- fe_pymethods, /* @tp_methods@ */
+ PYMETHODS(fe), /* @tp_methods@ */
0, /* @tp_members@ */
- fe_pygetset, /* @tp_getset@ */
+ PYGETSET(fe), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
return (fe_pywrap(me, xx));
}
+static PyObject *meth__Field_parse(PyObject *me, PyObject *arg)
+{
+ field *f;
+ char *p;
+ PyObject *rc = 0;
+ qd_parse qd;
+
+ if (!PyArg_ParseTuple(arg, "Os:parse", &me, &p)) goto end;
+ qd.p = p; qd.e = 0;
+ if ((f = field_parse(&qd)) == 0) VALERR(qd.e);
+ rc = Py_BuildValue("(Ns)", field_pywrap(f), qd.p);
+end:
+ return (rc);
+}
+
static void field_pydealloc(PyObject *me)
{
F_DESTROY(FIELD_F(me));
static PyObject *fget_type(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(F_TYPE(FIELD_F(me)))); }
-static PyGetSetDef field_pygetset[] = {
+static const PyGetSetDef field_pygetset[] = {
#define GETSETNAME(op, name) f##op##_##name
GET (zero, "F.zero -> field additive identity")
GET (one, "F.one -> field multiplicative identity")
{ 0 }
};
-static PyMethodDef field_pymethods[] = {
+static const PyMethodDef field_pymethods[] = {
#define METHNAME(name) fmeth_##name
METH (_adopt, "F._adopt(X) -> FE")
KWMETH(rand, "F.rand([rng = rand]) -> FE, uniformly distributed")
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_iternext@ */
- field_pymethods, /* @tp_methods@ */
+ PYMETHODS(field), /* @tp_methods@ */
0, /* @tp_members@ */
- field_pygetset, /* @tp_getset@ */
+ PYGETSET(field), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
static PyObject *pfget_p(PyObject *me, void *hunoz)
{ return (mp_pywrap(MP_COPY(FIELD_F(me)->m))); }
-static PyGetSetDef primefield_pygetset[] = {
+static const PyGetSetDef primefield_pygetset[] = {
#define GETSETNAME(op, name) pf##op##_##name
GET (p, "F.p -> prime field characteristic")
#undef GETSETNAME
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- primefield_pygetset, /* @tp_getset@ */
+ PYGETSET(primefield), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
static PyObject *bfget_p(PyObject *me, void *hunoz)
{ return (gf_pywrap(MP_COPY(FIELD_F(me)->m))); }
-static PyGetSetDef binfield_pygetset[] = {
+static const PyGetSetDef binfield_pygetset[] = {
#define GETSETNAME(op, name) bf##op##_##name
GET (m, "F.m -> field polynomial degree")
GET (p, "F.p -> field polynomial")
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- binfield_pygetset, /* @tp_getset@ */
+ PYGETSET(binfield), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
return (gf_pywrap(MP_COPY(fc->ntop.r[fc->ntop.n - 1])));
}
-static PyGetSetDef binnormfield_pygetset[] = {
+static const PyGetSetDef binnormfield_pygetset[] = {
#define GETSETNAME(op, name) bnf##op##_##name
GET (beta, "F.beta -> conversion factor")
#undef GETSETNAME
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- binnormfield_pygetset, /* @tp_getset@ */
+ PYGETSET(binnormfield), /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
/*----- Setup -------------------------------------------------------------*/
-static PyObject *meth__Field_parse(PyObject *me, PyObject *arg)
-{
- field *f;
- char *p;
- PyObject *rc = 0;
- qd_parse qd;
-
- if (!PyArg_ParseTuple(arg, "Os:parse", &me, &p))
- goto end;
- qd.p = p;
- qd.e = 0;
- if ((f = field_parse(&qd)) == 0)
- VALERR(qd.e);
- rc = Py_BuildValue("(Ns)", field_pywrap(f), qd.p);
-end:
- return (rc);
-}
-
-static PyMethodDef methods[] = {
+static const PyMethodDef methods[] = {
#define METHNAME(func) meth_##func
METH (_Field_parse, "parse(STR) -> F, REST")
#undef METHNAME