#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.