Skip to content

Improve reversion of lazy species in special cases #40112

@mantepse

Description

@mantepse

Problem Description

Reversion of combinatorial species is inherently slow, but at least for the case of the species of non-empty sets the reversion is known.

The same holds for LazySymmetricFunctions. Note that species.generating_series.LogarithmCycleIndexSeries in fact implements a faster version.

Proposed Solution

From #38544:

Note to myself: Labelle 2013 has an explicit expression for molecular expansion of the combinatorial logarithm, i.e., L.Sets().restrict(1).revert(), and also for compositions of this with an arbitrary species.

I don't know yet how to best integrate this into the framework. Maybe revert could detect this special case, or we could learn from this special case how to make revert fast.

Alternatives Considered

Either make revert fast, or implement the special cases.

Additional Information

No response

Is there an existing issue for this?

  • I have searched the existing issues for a bug report that matches the one I want to file, without success.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions