#8276: Make the one(), identity_matrix() and zero_matrix() cached and immutable.
------------------------------+---------------------------------------------
   Reporter:  hivert          |       Owner:  hivert           
       Type:  defect          |      Status:  needs_review     
   Priority:  major           |   Milestone:  sage-4.3.3       
  Component:  linear algebra  |    Keywords:  One Zero mutable.
     Author:  Florent Hivert  |    Upstream:  N/A              
   Reviewer:                  |      Merged:                   
Work_issues:                  |  
------------------------------+---------------------------------------------

Comment(by hivert):

 {{{
 sage: MM.zero().is_mutable()
 True
 }}}
 Is corrected by my last patch. It should be False

 Replying to [comment:17 mraum]:
 > The reason is the categorie framework. MatrixSpaces are vector spaces,
 so they implement zero(). In my oppinion this should absolutely coinside
 with MM(0) since everybody will expect it so do so. Hence, it should be
 mutable.

 No it isn't. See the comment in the doc of {{{zero}}} and {{{one}}} in
 their respective category. It has been discussed on sage-devel that
 {{{.zero()}}} and {{{.one()}}} should return an *immutable* matrix. The
 argument of the category framework applies identically to {{{zero}}}
 (vector space) and one (algebra which come actually from monoid).

 > one() is implemented seperatedly and is just one = identity_matrix. In
 my oppinion this is a defect, since according to the framework is normally
 coincides with MM(1). If MatrixSpaces was a ring it would be exactly this.

 Note that my last version of the patch also implement
 {{{
 zero = zero_matrix
 }}}

 > Could I hear your oppinion? If nobody is opposed I will set this to
 positive review tomorrow evening and I will open a follow up which sets
 one = lambda self : self(1) .

 My opinion which coincide with William's and Robert Bradshaw is that one
 and zero should be immutable. It was not discussed whether {{{MM(0)}}} and
 {{{MM(1)}}} should returns something coherent.
 please see http://groups.google.com/group/sage-
 devel/browse_frm/thread/1042edd11b3854b2

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8276#comment:18>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to