#14543: Implement compositional inverses of cycle index series
------------------------------------------+---------------------------------
       Reporter:  agd                     |         Owner:  sage-combinat
           Type:  enhancement             |        Status:  needs_review 
       Priority:  major                   |     Milestone:  sage-5.11    
      Component:  combinatorics           |    Resolution:               
       Keywords:  species, cycle indices  |   Work issues:               
Report Upstream:  N/A                     |     Reviewers:               
        Authors:                          |     Merged in:               
   Dependencies:                          |      Stopgaps:               
------------------------------------------+---------------------------------

Comment (by agd):

 Replying to [comment:6 darij]:

 > On line 775, when you say `0 + p_{1} + \dots` , does p_{1}  just mean
 the variable X?

 In a `CycleIndexSeries` as implemented in Sage, the coefficient on `x^n`
 is a symmetric function in the power sum basis whose terms are all of
 degree n. Of course, `p_1` is the only such symmetric function for `n=1`,
 so the only actual freedom is the coefficient from the underlying base
 ring. This needs to be non-zero for this inversion method to work;
 assuming that it's 1 makes things much simpler and is, I think, not a
 significant restriction.

 Or perhaps you meant the ''species'' `X`? If so, `p_1` is indeed its cycle
 index series, but this code isn't running at the level of `Species`, so
 `p_1` seemed clearer.

 Either way, if you think there's a better way to write that docstring, I'm
 certainly open to it—I want the meaning to be as clear as possible!

 > I'm surprised that this stuff is in a class named "CycleIndexSeries " --
 I'd expect it to be defined for LazyPowerSeries  in full generality? Of
 course, it makes sense to also have a wrapper in CycleIndexSeries  that
 gives back the answer in the correct type. (I fear this will have to
 depend on #13433 .)

 That would probably make sense; there's nothing about this algorithm that
 obviously depends on working at the level of `CycleIndexSeries` (at least
 to my eye). However, to do that, I'll need some mechanism for determining
 the compositional identity of an arbitrary `LazyPowerSeriesRing`, to stand
 in where `X` is now.

 It's not clear to me how this should be done without some detailed
 knowledge of the specifics of the algebra in question. On the other hand,
 this does seem like information that each `LazyPowerSeriesRing` should
 know about itself. Maybe I should add a `compositional_identity` method to
 `LazyPowerSeriesRing`, move `compositional_inverse` there, and then
 override `compositional_identity` in `CycleIndexSeriesRing`?

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14543#comment:7>
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/groups/opt_out.


Reply via email to