I think it would be enough to move the _mutability = Mutability(False) statement from the _copy_() method to the _new_c() method.
On 11.01.2013 00:20, Johannes wrote: > But in the _copy_() method _mutability is set to a value. Even if I > think this should be done in _new_c(). > > By the way, this bug also appears for x + y and x - y. > > greatz Johannes > > On 10.01.2013 23:34, Nils Bruin wrote: >> On Jan 10, 12:55 pm, Johannes <dajo.m...@web.de> wrote: >>> hey list, >>> >>> If you look at the code, there is a function called _new_c() which is >>> used in the multiplication algorithm. >> >> See >> >> http://trac.sagemath.org/sage_trac/ticket/8294 >> >> Looks like a little more is broken than just __copy__. >> >> Normally, _mutability gets set in matrix0's Matrix.__init__. >> >> Matrix_integer_dense gets that by explicitly calling a superclass >> __init__ in its __cinit__. I guess 2x2 tries to avoid that for >> efficiency reasons, but it suggests that its __cinit__ (or at least >> its _new_c) should then set the _mutability attribute. Is this class >> intentionally producing maimed instances for efficiency reasons >> perhaps? >> > -- 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.