PS:

On 2013-09-03, Simon King <simon.k...@uni-jena.de> wrote:
> Shouldn't there always be a coercion from the base ring into a
> unital algebra? It seems to me that the underlying problem is that
> matrix spaces do not properly use the new coercion model (in particular,
> they define their own __call__, how nasty!).

Looking at what I wrote later in my previous post, I think this is *not* the
problem. Since the previous post was so long, here is a summary:
- For efficience reasons, we do not want full category initialisation
  during __init__ (please don't change this, unless you want to mess
  with the number theorists...)
  => __init_extra__ of Algebras.ParentMethods is not called
  => one needs to establish an action from the base ring "manually"
- The category *is* initialised for CategoryObject, but just not for Parent.
  It would be a good idea to check whether IntegralDomains() could be
  used in the category, since this is needed for FractionField to be
  defined.
- The usual framework for actions of a base ring on a module relies on
  cpdef methods _rmul_ and _lmul_. Problem: These expect their input of
  a particular type, that is often *not* used in sage.combinat.
- I recommend to *try* (no guarantee it will work) to create a new type
  of action "A" (inherit from sage.categories.action.Action). You need to
  implement its _call_ and _repr_name_, and I think that's all what is to do
  (but perhaps you'll find other examples of Action in Sage, so, try to
  learn from existing code).
  Typically, the _call_ method of the action A._call_(a,b) will rely on
  methods of a and b (in our application, "a" is element of the
  base ring and "b" is a matrix).
  And then, let MatrixSpace._get_action_ return A.

Hope the short version of my post was helpful :)

Best regards,
Simon

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-combinat-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-combinat-devel.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to