#18756: Use coerce actions in the category framework
-------------------------------------+-------------------------------------
       Reporter:  SimonKing          |        Owner:
           Type:  defect             |       Status:  new
       Priority:  major              |    Milestone:  sage-6.8
      Component:  coercion           |   Resolution:
       Keywords:  cython, coercion,  |    Merged in:
  actions, categories                |    Reviewers:
        Authors:                     |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  e1111c346a82639bb41161469754d45008117801
  u/SimonKing/combinatorial_free_module_cython_coercion|     Stopgaps:
   Dependencies:                     |
-------------------------------------+-------------------------------------

Comment (by nborie):

 Hello,

 I don't know if the following point is partially/not/completely related
 with this ticket. But you will be my heroes for three or four years if you
 solve that :

 Matrix and MatrixSpace over ALL rings (not using RingElement...) #15160

 sorry for the noise, to precise that, I would add a quote from an old
 topic from sage-devel : What we are unable to do right now ?

 ********************************************
 Hello,

 Computing the inverse of the identity matrix is not possible. Ok, it
 works for rings using RingElement class for the elements (like ZZ, QQ,
 RR, CC, ...).

     {{{
     sage: SF = SymmetricFunctions(QQ).schur(); SF
     Symmetric Functions over Rational Field in the Schur basis
     sage: one = SF.one()
     sage: zero = SF.zero()
     sage: M = Matrix([[one, zero], [zero, one]])
     sage: M
     [s[]   0]
     [  0 s[]]
     sage: M.det()
     s[]
     sage: M.is_invertible()
     True
     sage: M.inverse()
     ...
     AttributeError: 'SymmetricFunctionAlgebra_schur_with_category' object
     has no attribute 'fraction_field'
     sage: M = Matrix([[one]])
     ...
     AttributeError: 'tuple' object has no attribute 'parent'
     sage: M*M
     [s[]   0]
     [  0 s[]]
     sage: SteenrodAlgebra(7)
     mod 7 Steenrod algebra, milnor basis
     sage: A = SteenrodAlgebra(7)
     sage: M = Matrix([[A.one(), A.zero()], [A.zero(), A.one()]])
     sage: M^2
     [1 0]
     [0 1]
     sage: M.inverse()
     AttributeError: 'SteenrodAlgebra_generic_with_category' object has no
     attribute 'fraction_field'
     }}}

 For the curious, defining a fraction_field for these rings is not
 enought. The good fix should be more serious than that.
 ********************************************

 Fixing the scalar multiplication will perhaps fix linear algebra... Its
 works when I defined my own action of the coefficients on linear
 combination but It did break the rest of Sage (all parts of Sage using the
 RingElement class).

 Currently I manage linear algebra on Combinatorial Free Modules just with
 horrible hacks.

 Good chance since It goes further than my current skills with Sage core
 features...

--
Ticket URL: <http://trac.sagemath.org/ticket/18756#comment:20>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to