### Navigation

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

# Vector Partitions

AUTHORS:

- Amritanshu Prasad (2013): Initial version

`sage.combinat.vector_partition.``IntegerVectorsIterator`(vect, min=None)

  Return an iterator over the list of integer vectors which are componentwise less than or equal to `vect`, and lexicographically greater than or equal to `min`.

  INPUT:

  - `vect` – A list of non-negative integers
  - `min` – A list of non-negative integers dominated elementwise by `vect`

  OUTPUT:

  A list in lexicograohic order of all integer vectors (as lists) which are dominated elementwise by `vect` and are greater than or equal to `min` in lexicographic order.

  EXAMPLES:

      sage: from sage.combinat.vector_partition import IntegerVectorsIterator
      sage: list(IntegerVectorsIterator([1, 1]))
      [[0, 0], [0, 1], [1, 0], [1, 1]]

      sage: list(IntegerVectorsIterator([1, 1], min = [1, 0]))
      [[1, 0], [1, 1]]

class `sage.combinat.vector_partition.``VectorPartition`(parent, vecpar)

  Bases: `sage.combinat.combinat.CombinatorialObject`, `sage.structure.element.Element`

  A vector partition is a multiset of integer vectors.

  `partition_at_vertex`(i)

    Return the partition obtained by sorting the `i`-th elements of the vectors in the vector partition.

    EXAMPLES:

        sage: V = VectorPartition([[1, 2, 1], [2, 4, 1]])
        sage: V.partition_at_vertex(1)
        [4, 2]

  `sum`()

    Return the sum vector as a list.

    EXAMPLES:

        sage: V = VectorPartition([[3, 2, 1], [2, 2, 1]])
        sage: V.sum()
        [5, 4, 2]

class `sage.combinat.vector_partition.``VectorPartitions`(vec, min)

  Bases: `sage.structure.parent.Parent`, `sage.structure.unique_representation.UniqueRepresentation`

  Class of all vector partitions of `vec` with all parts greater than or equal to `min` in lexicographic order.

  A vector partition of `vec` is a list of vectors with non-negative integer entries whose sum is `vec`.

  INPUT:

  - `vec` – a list of non-negative integers.

  EXAMPLES:

  If `min` is not specified, then the class of all vector partitions of `vec` is created:

      sage: VP = VectorPartitions([2, 2])
      sage: for vecpar in VP:
      ....:     print vecpar
      [[0, 1], [0, 1], [1, 0], [1, 0]]
      [[0, 1], [0, 1], [2, 0]]
      [[0, 1], [1, 0], [1, 1]]
      [[0, 1], [2, 1]]
      [[0, 2], [1, 0], [1, 0]]
      [[0, 2], [2, 0]]
      [[1, 0], [1, 2]]
      [[1, 1], [1, 1]]
      [[2, 2]]

  If `min` is specified, then the class consists of only those vector partitions whose parts are all greater than or equal to `min` in lexicographic order:

      sage: VP = VectorPartitions([2, 2], min = [1, 0])
      sage: for vecpar in VP:
      ....:     print vecpar
      [[1, 0], [1, 2]]
      [[1, 1], [1, 1]]
      [[2, 2]]

  `Element`

    alias of `VectorPartition`

`sage.combinat.vector_partition.``find_min`(vect)

  Return a string of `0`‘s with one `1` at the location where the list vect has its last entry which is not equal to `0`.

  INPUT:

  - `vec` – A list of integers

  OUTPUT:

  A list of the same length with `0`‘s everywhere, except for a `1` at the last position where `vec` has an entry not equal to `0`.

  EXAMPLES:

      sage: from sage.combinat.vector_partition import find_min
      sage: find_min([2, 1])
      [0, 1]
      sage: find_min([2, 1, 0])
      [0, 1, 0]

### Navigation

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