sage/matrix$ grep _mutability *.pxd
matrix0.pxd:    cdef sage.structure.mutability.Mutability _mutability
matrix0.pxd:    cdef check_mutability(self)
matrix0.pxd:    cdef check_bounds_and_mutability(self, Py_ssize_t i,
Py_ssize_t j)
matrix0.pxd:    cdef check_row_bounds_and_mutability(self, Py_ssize_t
r1, Py_ssize_t r2)
matrix0.pxd:    cdef check_column_bounds_and_mutability(self,
Py_ssize_t c1, Py_ssize_t c2)

so if you change that to

cdef bint _mutability

you probably only have to amend those 4 routines. Further attribute
access:

sage/matrix$ grep \\._mutability *.pyx | wc
     20      69    1235

in matrix0.pyx these are just the lines in the functions above and the
remaining 9 lines are in a handful of special matrix implementations
and of the form

   if self._mutability._is_immutable:

which aren't really adhering to protocol (accessing private
attributes! twice!), but are easily rewritten (to faster code anyway!)

I thinks it's entirely doable to just make _mutability a straight
boolean flag. Does anyone have reasons why this is not a good idea?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to