Set Species

sage.combinat.species.set_species.SetSpecies(*args, **kwds)

Create a cached version of a function, which only recomputes values it hasn’t already computed. Synonyme: cached_function

INPUT:

  • f – a function
  • name (optional string) – name that the cached version of f should be provided with.

If f is a function, do either g = CachedFunction(f) or g = cached_function(f) to make a cached version of f, or put @cached_function right before the definition of f (i.e., use Python decorators):

@cached_function
def f(...):
    ....

The inputs to the function must be hashable.

EXAMPLES:

sage: @cached_function
... def mul(x, y=2):
...     return x*y
...
sage: mul(3)
6

We demonstrate that the result is cached, and that, moreover, the cache takes into account the various ways of providing default arguments:

sage: mul(3) is mul(3,2)
True
sage: mul(3,y=2) is mul(3,2)
True

The user can clear the cache:

sage: a = mul(4)
sage: mul.clear_cache()
sage: a is mul(4)
False

It is also possible to explicitly override the cache with a different value:

sage: mul.set_cache('foo',5)
sage: mul(5,2)
'foo'
class sage.combinat.species.set_species.SetSpeciesStructure(parent, labels, list)

Bases: sage.combinat.species.structure.GenericSpeciesStructure

EXAMPLES:

sage: from sage.combinat.species.structure import GenericSpeciesStructure
sage: a = GenericSpeciesStructure(None, [2,3,4], [1,2,3])
sage: a
[2, 3, 4]
sage: a.parent() is None
True
sage: a == loads(dumps(a))
True
automorphism_group()

Returns the group of permutations whose action on this set leave it fixed. For the species of sets, there is only one isomorphism class, so every permutation is in its automorphism group.

EXAMPLES:

sage: F = species.SetSpecies()
sage: a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
sage: a.automorphism_group()
Symmetric group of order 3! as a permutation group
canonical_label()

EXAMPLES:

sage: S = species.SetSpecies()
sage: a = S.structures(["a","b","c"]).random_element(); a
{'a', 'b', 'c'}
sage: a.canonical_label()
{'a', 'b', 'c'}
transport(perm)

Returns the transport of this set along the permutation perm.

EXAMPLES:

sage: F = species.SetSpecies()
sage: a = F.structures(["a", "b", "c"]).random_element(); a
{'a', 'b', 'c'}
sage: p = PermutationGroupElement((1,2))
sage: a.transport(p)
{'a', 'b', 'c'}
class sage.combinat.species.set_species.SetSpecies_class(min=None, max=None, weight=None)

Bases: sage.combinat.species.species.GenericCombinatorialSpecies

EXAMPLES:

sage: S = species.SetSpecies()
sage: c = S.generating_series().coefficients(3)
sage: S._check()
True
sage: S == loads(dumps(S))
True

Previous topic

Linear-order Species

Next topic

Subset Species

This Page