{
PyTypeObject *ty;
- if (strcmp(F_NAME(f), "prime") == 0) ty = primefield_pytype;
- else if (strcmp(F_NAME(f), "niceprime") == 0) ty = niceprimefield_pytype;
- else if (strcmp(F_NAME(f), "binpoly") == 0) ty = binpolyfield_pytype;
- else if (strcmp(F_NAME(f), "binnorm") == 0) ty = binnormfield_pytype;
+ if (STRCMP(F_NAME(f), ==, "prime")) ty = primefield_pytype;
+ else if (STRCMP(F_NAME(f), ==, "niceprime")) ty = niceprimefield_pytype;
+ else if (STRCMP(F_NAME(f), ==, "binpoly")) ty = binpolyfield_pytype;
+ else if (STRCMP(F_NAME(f), ==, "binnorm")) ty = binnormfield_pytype;
else abort();
return (field_dopywrap(ty, f));
}
field *field_copy(field *f)
{
- if (strcmp(F_NAME(f), "prime") == 0)
+ if (STRCMP(F_NAME(f), ==, "prime"))
f = field_prime(f->m);
- else if (strcmp(F_NAME(f), "niceprime") == 0)
+ else if (STRCMP(F_NAME(f), ==, "niceprime"))
f = field_niceprime(f->m);
- else if (strcmp(F_NAME(f), "binpoly") == 0)
+ else if (STRCMP(F_NAME(f), ==, "binpoly"))
f = field_binpoly(f->m);
- else if (strcmp(F_NAME(f), "binnorm") == 0) {
+ else if (STRCMP(F_NAME(f), ==, "binnorm")) {
fctx_binnorm *fc = (fctx_binnorm *)f;
f = field_binnorm(f->m, fc->ntop.r[fc->ntop.n - 1]);
} else
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Finite field elements, abstract base class.",
+ "Finite field elements, abstract base class.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"An abstract field. This is an abstract type.",
+ "An abstract field. This is an abstract type.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"PrimeField(P): prime fields.",
+ "PrimeField(P): prime fields.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"NicePrimeField(P): prime field using Solinas reduction.",
+ "NicePrimeField(P): prime field using Solinas reduction.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
static PyObject *bfget_m(PyObject *me, void *hunoz)
{ return (PyInt_FromLong(FIELD_F(me)->nbits)); }
+static PyObject *bfget_p(PyObject *me, void *hunoz)
+ { return (gf_pywrap(MP_COPY(FIELD_F(me)->m))); }
+
static PyGetSetDef binfield_pygetset[] = {
#define GETSETNAME(op, name) bf##op##_##name
GET (m, "F.m -> field polynomial degree")
+ GET (p, "F.p -> field polynomial")
#undef GETSETNAME
{ 0 }
};
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"Binary fields. Abstract class.",
+ "Binary fields. Abstract class.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
return (0);
}
-static PyObject *bfget_p(PyObject *me, void *hunoz)
- { return (gf_pywrap(MP_COPY(FIELD_F(me)->m))); }
-
-static PyGetSetDef binpolyfield_pygetset[] = {
-#define GETSETNAME(op, name) bf##op##_##name
- GET (p, "F.p -> field polynomial")
-#undef GETSETNAME
- { 0 }
-};
-
static PyTypeObject binpolyfield_pytype_skel = {
PyObject_HEAD_INIT(0) 0, /* Header */
"BinPolyField", /* @tp_name@ */
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"BinPolyField(P): binary fields with polynomial basis representation.",
+ "BinPolyField(P): binary fields with polynomial basis representation.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
0, /* @tp_iternext@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
- binpolyfield_pygetset, /* @tp_getset@ */
+ 0, /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_dict@ */
0, /* @tp_descr_get@ */
}
static PyGetSetDef binnormfield_pygetset[] = {
-#define GETSETNAME(op, name) bf##op##_##name
- GET (p, "F.p -> field polynomial")
-#undef GETSETNAME
#define GETSETNAME(op, name) bnf##op##_##name
GET (beta, "F.beta -> conversion factor")
#undef GETSETNAME
Py_TPFLAGS_BASETYPE,
/* @tp_doc@ */
-"BinNormField(P, BETA): binary fields with normal basis representation.",
+ "BinNormField(P, BETA): binary fields with normal basis representation.",
0, /* @tp_traverse@ */
0, /* @tp_clear@ */
static PyMethodDef methods[] = {
#define METHNAME(func) meth_##func
- METH (_Field_parse, "parse(STR) -> F, REST")
+ METH (_Field_parse, "parse(STR) -> F, REST")
#undef METHNAME
{ 0 }
};