### Navigation

- index
- modules |
- next |
- previous |
- Combinatorics »
- Combinatorial Species »

# Composition species

class `sage.combinat.species.composition_species.``CompositionSpecies`(F, G, min=None, max=None, weight=None)

  Bases: `sage.combinat.species.species.GenericCombinatorialSpecies`, `sage.structure.unique_representation.UniqueRepresentation`

  Returns the composition of two species.

  EXAMPLES:

      sage: E = species.SetSpecies()
      sage: C = species.CycleSpecies()
      sage: S = E(C)
      sage: S.generating_series().coefficients(5)
      [1, 1, 1, 1, 1]
      sage: E(C) is S
      True

  TESTS:

      sage: E = species.SetSpecies(); C = species.CycleSpecies()
      sage: L = E(C)
      sage: c = L.generating_series().coefficients(3)
      sage: L._check() #False due to isomorphism types not being implemented
      False
      sage: L == loads(dumps(L))
      True

  `weight_ring`()

    Returns the weight ring for this species. This is determined by asking Sage’s coercion model what the result is when you multiply (and add) elements of the weight rings for each of the operands.

    EXAMPLES:

        sage: E = species.SetSpecies(); C = species.CycleSpecies()
        sage: L = E(C)
        sage: L.weight_ring()
        Rational Field

class `sage.combinat.species.composition_species.``CompositionSpeciesStructure`(parent, labels, pi, f, gs)

  Bases: `sage.combinat.species.structure.GenericSpeciesStructure`

  TESTS:

      sage: E = species.SetSpecies(); C = species.CycleSpecies()
      sage: L = E(C)
      sage: a = L.structures(['a','b','c']).random_element()
      sage: a == loads(dumps(a))
      True

  `change_labels`(labels)

    EXAMPLES:

        sage: p = PermutationGroupElement((2,3))
        sage: E = species.SetSpecies(); C = species.CycleSpecies()
        sage: L = E(C)
        sage: S = L.structures(['a','b','c']).list()
        sage: a = S[2]; a
        F-structure: {{'a', 'c'}, {'b'}}; G-structures: [('a', 'c'), ('b')]
        sage: a.change_labels([1,2,3])
        F-structure: {{1, 3}, {2}}; G-structures: [(1, 3), (2)]

  `transport`(perm)

    EXAMPLES:

        sage: p = PermutationGroupElement((2,3))
        sage: E = species.SetSpecies(); C = species.CycleSpecies()
        sage: L = E(C)
        sage: S = L.structures(['a','b','c']).list()
        sage: a = S[2]; a
        F-structure: {{'a', 'c'}, {'b'}}; G-structures: [('a', 'c'), ('b')]
        sage: a.transport(p)
        F-structure: {{'a', 'b'}, {'c'}}; G-structures: [('a', 'c'), ('b')]

`sage.combinat.species.composition_species.``CompositionSpecies_class`

  alias of `CompositionSpecies`

### Navigation

- index
- modules |
- next |
- previous |
- Combinatorics »
- Combinatorial Species »