diff --git a/src/sage/rings/finite_rings/element_base.pxd b/src/sage/rings/finite_rings/element_base.pxd index 94ca634d3a6..8121c800535 100644 --- a/src/sage/rings/finite_rings/element_base.pxd +++ b/src/sage/rings/finite_rings/element_base.pxd @@ -1,7 +1,8 @@ from sage.structure.element cimport CommutativeRingElement cdef class FiniteRingElement(CommutativeRingElement): - pass + cpdef _add_(self, other) + cpdef _mul_(self, other) cdef class FinitePolyExtElement(FiniteRingElement): pass diff --git a/src/sage/rings/finite_rings/element_base.pyx b/src/sage/rings/finite_rings/element_base.pyx index f02d8ea9abe..b6c40ddf3fc 100644 --- a/src/sage/rings/finite_rings/element_base.pyx +++ b/src/sage/rings/finite_rings/element_base.pyx @@ -28,6 +28,7 @@ def is_FiniteFieldElement(x): from sage.rings.finite_rings.finite_field_base import is_FiniteField return isinstance(x, Element) and is_FiniteField(x.parent()) + cdef class FiniteRingElement(CommutativeRingElement): def _nth_root_common(self, n, all, algorithm, cunningham): """ @@ -99,6 +100,15 @@ cdef class FiniteRingElement(CommutativeRingElement): else: raise ValueError("unknown algorithm") + cpdef _add_(self, other): + """Abstract addition method""" + raise NotImplementedError + + cpdef _mul_(self, other): + """Abstract multiplication method""" + raise NotImplementedError + + cdef class FinitePolyExtElement(FiniteRingElement): """ Elements represented as polynomials modulo a given ideal. @@ -795,4 +805,3 @@ cdef class FinitePolyExtElement(FiniteRingElement): b^11 + b^10 + b^9 + b^7 + b^5 + b^4 + b^2 + b """ return self.pth_power(-k) - diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index 422b948b3aa..cf3823a9212 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -1130,7 +1130,6 @@ cdef class FiniteField_givaroElement(FinitePolyExtElement): (right).element) return make_FiniteField_givaroElement(self._cache,r) - cpdef _div_(self, right): """ Divide two elements diff --git a/src/sage/rings/finite_rings/finite_field_base.pyx b/src/sage/rings/finite_rings/finite_field_base.pyx index e839dca32e7..833d68e1d50 100644 --- a/src/sage/rings/finite_rings/finite_field_base.pyx +++ b/src/sage/rings/finite_rings/finite_field_base.pyx @@ -1073,7 +1073,7 @@ cdef class FiniteField(Field): and hasattr(self, '_prefix') and hasattr(R, '_prefix')): return R.hom((self.gen() ** ((self.order() - 1)//(R.order() - 1)),)) - def _convert_map_from_(self, R): + cpdef _convert_map_from_(self, R): """ Conversion from p-adic fields.