Miscellaneous functions - Combinatorics

Skip to content
Back to top
View this page
Edit this page

# Miscellaneous functions

sage.combinat.species.misc.accept_size(f)

  The purpose of this decorator is to change calls like species.SetSpecies(size=1) to species.SetSpecies(min=1, max=2). This is to make caching species easier and to restrict the number of parameters that the lower level code needs to know about.

  EXAMPLES:

  Sage

      sage: from sage.combinat.species.misc import accept_size
      sage: def f(*args, **kwds):
      ....:       print("{} {}".format(args, sorted(kwds.items())))
      sage: f = accept_size(f)
      sage: f(min=1)
      () [('min', 1)]
      sage: f(size=2)
      () [('max', 3), ('min', 2)]

  Python

      >>> from sage.all import *
      >>> from sage.combinat.species.misc import accept_size
      >>> def f(*args, **kwds):
      ...       print("{} {}".format(args, sorted(kwds.items())))
      >>> f = accept_size(f)
      >>> f(min=Integer(1))
      () [('min', 1)]
      >>> f(size=Integer(2))
      () [('max', 3), ('min', 2)]

sage.combinat.species.misc.change_support(perm, support, change_perm=None)

  Changes the support of a permutation defined on [1, …, n] to support.

  EXAMPLES:

  Sage

      sage: from sage.combinat.species.misc import change_support
      sage: p = PermutationGroupElement((1,2,3)); p
      (1,2,3)
      sage: change_support(p, [3,4,5])
      (3,4,5)

  Python

      >>> from sage.all import *
      >>> from sage.combinat.species.misc import change_support
      >>> p = PermutationGroupElement((Integer(1),Integer(2),Integer(3))); p
      (1,2,3)
      >>> change_support(p, [Integer(3),Integer(4),Integer(5)])
      (3,4,5)