Ticket #3571: trac-3571.patch

File trac-3571.patch, 3.0 KB (added by craigcitro, 14 years ago)
  • sage/rings/integer_mod.pxd

    # HG changeset patch
    # User Craig Citro <craigcitro@gmail.com>
    # Date 1232697108 28800
    # Node ID f85a6ac61baf7ca7032a6a0de25f11adf67026ea
    # Parent  f8fb0bf3e547d65a0f90f5b27d543c8cf4ca9da0
    Fix trac #3571 -- make ivalue field no longer public.
    
    diff -r f8fb0bf3e547 -r f85a6ac61baf sage/rings/integer_mod.pxd
    a b  
    3535    cdef IntegerMod_gmp _new_c(self)   
    3636
    3737cdef class IntegerMod_int(IntegerMod_abstract):
    38     cdef public int_fast32_t ivalue
     38    cdef int_fast32_t ivalue
    3939    cdef void set_from_int(IntegerMod_int self, int_fast32_t value)
    4040    cdef int_fast32_t get_int_value(IntegerMod_int self)
    4141    cdef IntegerMod_int _new_c(self, int_fast32_t value)
  • sage/rings/integer_mod.pyx

    diff -r f8fb0bf3e547 -r f85a6ac61baf sage/rings/integer_mod.pyx
    a b  
    14721472
    14731473       
    14741474       
    1475     cdef int _cmp_c_impl(left, Element right) except -2:
     1475    cdef int _cmp_c_impl(self, Element right) except -2:
    14761476        """
    14771477        EXAMPLES:
    14781478            sage: mod(5,13) == mod(-8,13)
     
    14861486            sage: mod(0, 13) == int(0)
    14871487            True
    14881488        """
    1489         if (<IntegerMod_int>left).ivalue == (<IntegerMod_int>right).ivalue:
     1489        if self.ivalue == (<IntegerMod_int>right).ivalue:
    14901490            return 0
    1491         elif (<IntegerMod_int>left).ivalue < (<IntegerMod_int>right).ivalue:
     1491        elif self.ivalue < (<IntegerMod_int>right).ivalue:
    14921492            return -1
    14931493        else:
    14941494            return 1
     
    16431643            sage: R(7) * R(8)
    16441644            6
    16451645        """
    1646         return self._new_c((self.ivalue * right.ivalue) % self.__modulus.int32)
     1646        return self._new_c((self.ivalue * (<IntegerMod_int>right).ivalue) % self.__modulus.int32)
    16471647
    16481648    cpdef RingElement _imul_(self, RingElement right):
    16491649        """
     
    16521652            sage: R(7) * R(8)
    16531653            6
    16541654        """
    1655         self.ivalue = (self.ivalue * right.ivalue) % self.__modulus.int32
     1655        self.ivalue = (self.ivalue * (<IntegerMod_int>right).ivalue) % self.__modulus.int32
    16561656        return self
    16571657
    16581658    cpdef RingElement _div_(self, RingElement right):
     
    21792179        return self.ivalue
    21802180
    21812181       
    2182     cdef int _cmp_c_impl(left, Element right) except -2:
     2182    cdef int _cmp_c_impl(self, Element right) except -2:
    21832183        """
    21842184        EXAMPLES:
    21852185            sage: mod(5,13^5) == mod(13^5+5,13^5)
     
    21932193            sage: mod(0, 13^5) == int(0)
    21942194            True
    21952195        """
    2196         if (<IntegerMod_int64>left).ivalue == (<IntegerMod_int64>right).ivalue: return 0
    2197         elif (<IntegerMod_int64>left).ivalue < (<IntegerMod_int64>right).ivalue: return -1
     2196        if self.ivalue == (<IntegerMod_int64>right).ivalue: return 0
     2197        elif self.ivalue < (<IntegerMod_int64>right).ivalue: return -1
    21982198        else: return 1
    21992199       
    22002200    def __richcmp__(left, right, int op):