Hi, I tried the following, added to the Matrix class definition in matrix/ matrix0.pyx:
def is_symmetric(self): """ Returns True if this is a symmetric matrix. """ if self._ncols != self._nrows: return False cdef int i,j for i from 1 <= i < self._nrows: for j from 0 <= j < self._ncols: if self[i,j] != self[j,i]: return False return True While testing and timing this, I tried the following, out of a perverse sort of curiosity: def is_sym3(self): """ Returns True if this is a symmetric matrix. """ if self._ncols != self._nrows: return False for i in xrange(1,self._nrows): for j in xrange(0,i): if self[i,j] != self[j,i]: return False return True Turns out that this, both as a method in the Matrix class and as a raw hunk of python code, performs better than the above: sage: time Doit1(M2,1000) CPU times: user 37.21 s, sys: 0.24 s, total: 37.45 s Wall time: 38.10 sage: time Doit2(M2,1000) CPU times: user 23.50 s, sys: 0.18 s, total: 23.68 s Wall time: 24.55 sage: time Doit1(M3,1000) CPU times: user 55.87 s, sys: 0.41 s, total: 56.29 s Wall time: 58.48 sage: time Doit2(M3,1000) CPU times: user 31.52 s, sys: 0.23 s, total: 31.76 s Wall time: 32.83 sage: time Doit1(M4,1000) CPU times: user 58.94 s, sys: 0.71 s, total: 59.65 s Wall time: 63.05 sage: time Doit2(M4,1000) CPU times: user 32.64 s, sys: 0.43 s, total: 33.08 s Wall time: 35.05 Doit1 is a loop that calls ".is_symmetric()", for the given count. Doit2 is a loop that calls "issym()", for the given count. M2 is a 200x200 integer symmetric matrix, with entries in the range 1..300000. M3 is a 200x200 integer symmetric matrix, with entries in the range 1..200000000000000000. M4 is a 200x200 integer symmetric matrix, with entries in the range 1..2000000000000000000000000000000000000000000000000000000. Expected? Unexpected? Justin -- Justin C. Walker, Curmudgeon-at-Large () The ASCII Ribbon Campaign /\ Help Cure HTML Email --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---