Sorry I didn't reply earlier. Implementing an is_symmetric function for matrices sounds like a good idea. But I think it should go in the base class: something like
def is_symmetric(self): if self.ncols != self.nrows: return False cdef int i, j: for i from 1 <= i < self.nrows: for j from 0 <= j < i: if self[i][j] != self[j][i]: return False return True One can override this in a subclass if desired: if there's some special, faster way to test for symmetry. I can't think of a better method in general than this. David On 6/28/07, Justin C. Walker <[EMAIL PROTECTED]> wrote: > > > Hi, > > I ran into a glitch, using QuaternionAlgebraWithGramMatrix(field, > matrix): > - the code verifies that the second argument is a matrix > with "isinstance(Matrix)", which blows up because 'Matrix' > is not known. A simple 'import' fixes that. > - then the code blows up because "is_symmetric" is not an > attribute of the second arg. > > Fixing this is a bit more involved. First, it appears that > "is_symmetric" is supposed to be a boolean, presumably defined when > the matrix is created. There are other versions, scattered through > the code, of a function, but nothing in the Matrix class itself. > > Seems to me that this should be a function, not a variable (matrices > aren't immutable), and defined in the class. > > My question: is it reasonable to implement is_symmetric() in the > class definition? > > Some more questions: > > The Matrix class is a pyrex module, and checking for equality is then > probably best done by subclasses. Is that correct? Is it reasonable > to have a generic "it can be done in Pyrex" version that must be > overridden by a subclass if that assumption is false? > > Is there a better (i.e., faster) way than checking for a square > matrix and making n(n-1)/2 comparisons? > > Is the Matrix class undergoing reconstruction, so the above are all > irrelevant? :-} > > Thanks! > > Justin > > -- > Justin C. Walker, Curmudgeon at Large > Institute for the Absorption of Federal Funds > ----------- > If it weren't for carbon-14, I wouldn't date at all. > ----------- > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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/ -~----------~----~----~----~------~----~------~--~---