The functions described below, used in various parts of the **CHEVIE**
package, sometimes duplicate or have similar functions to some functions
in other packages (like the SPECHT package). It is hoped that a review
of this area will be done in the future.

The combinatorial objects dealt with here are **partitions**, **beta-sets** and
**symbols**. A partition in **CHEVIE** is a decreasing list of strictly
positive integers *p _{1} ≥ p_{2} ≥ ... p_{n}>0*, represented as a

A symbol is a tuple *S=[S _{1},..,S_{n}]* of beta-sets, taken modulo the
equivalence relation generated by two elementary equivalences: the
simultaneous shift of all lists, and the cyclic permutation of the tuple
(in the particular case where

`List(S,Length)`

; when `Length(S[1])-Length(S[2])`

, called the
`Sum(S,Sum)-QuoInt((Sum(S,Length)-1)*(Sum(S,Length)-Length(S)+1),2*Length(S))`

Partitions and pairs of partitions are parameters for characters of the Weyl groups of classical types, and tuples of partitions are parameters for characters of imprimitive complex reflection groups. Symbols with two lines are parameters for the unipotent characters of classical Chevalley groups, and more general symbols for the unipotent characters of Spetses associated to complex reflection groups. The rank of the symbol is the semi-simple rank of the corresponding Chevalley group or Spetses.

Symbols of rank *n* and defect *0* parameterize characters of the Weyl
group of type *D _{n}*, and symbols of rank

- Compositions
- PartBeta
- ShiftBeta
- PartitionTupleToString
- Tableaux
- DefectSymbol
- RankSymbol
- Symbols
- SymbolsDefect
- CycPolGenericDegreeSymbol
- CycPolFakeDegreeSymbol
- LowestPowerGenericDegreeSymbol
- HighestPowerGenericDegreeSymbol

`Compositions( `

`n`[,`i`] )

Returns the list of compositions of the integer `n` (the compositions with
`i` parts if a second argument `i` is given).

gap> Compositions(4); [ [ 1, 1, 1, 1 ], [ 2, 1, 1 ], [ 1, 2, 1 ], [ 3, 1 ], [ 1, 1, 2 ], [ 2, 2 ], [ 1, 3 ], [ 4 ] ] gap> Compositions(4,2); [ [ 3, 1 ], [ 2, 2 ], [ 1, 3 ] ]

`PartBeta( `

`b` )

Here `b` is an increasing list of integers representing a beta-set.
`PartBeta`

returns corresponding the partition (see the introduction of the
section for definitions).

gap> PartBeta([0,4,5]); [ 3, 3 ]

`ShiftBeta( `

`b`, `n` )

Here `b` is an increasing list of integers representing a beta-set.
`ShiftBeta`

returns the set shifted by `n` (see the introduction of the
section for definitions).

gap> ShiftBeta([4,5],3); [ 0, 1, 2, 7, 8 ]

`PartitionTupleToString( `

`tuple` )

converts the partition tuple `tuple` to a string where the partitions
are separated by a dot.

gap> d:=PartitionTuples(3,2); [ [ [ 1, 1, 1 ], [ ] ], [ [ 1, 1 ], [ 1 ] ], [ [ 1 ], [ 1, 1 ] ], [ [ ], [ 1, 1, 1 ] ], [ [ 2, 1 ], [ ] ], [ [ 1 ], [ 2 ] ], [ [ 2 ], [ 1 ] ], [ [ ], [ 2, 1 ] ], [ [ 3 ], [ ] ], [ [ ], [ 3 ] ] ] gap> for i in d do > Print( PartitionTupleToString( i )," "); > od; Print("\n"); 111. 11.1 1.11 .111 21. 1.2 2.1 .21 3. .3

`Tableaux(`

`partition tuple` or `partition`)

returns the list of standard tableaux associated to the partition tuple
`tuple`, that is a filling of the associated young diagrams with the
numbers `[1..Sum(`

such that the numbers increase across the
rows and down the columns. If the imput is a single partition, the standard
tableaux for that partition are returned.
`tuple`,Sum)]

gap> Tableaux([[2,1],[1]]); [ [ [ [ 2, 4 ], [ 3 ] ], [ [ 1 ] ] ], [ [ [ 1, 4 ], [ 3 ] ], [ [ 2 ] ] ], [ [ [ 1, 4 ], [ 2 ] ], [ [ 3 ] ] ], [ [ [ 2, 3 ], [ 4 ] ], [ [ 1 ] ] ], [ [ [ 1, 3 ], [ 4 ] ], [ [ 2 ] ] ], [ [ [ 1, 2 ], [ 4 ] ], [ [ 3 ] ] ], [ [ [ 1, 3 ], [ 2 ] ], [ [ 4 ] ] ], [ [ [ 1, 2 ], [ 3 ] ], [ [ 4 ] ] ] ] gap> Tableaux([2,2]); [ [ [ 1, 3 ], [ 2, 4 ] ], [ [ 1, 2 ], [ 3, 4 ] ] ]

`DefectSymbol( `

`s` )

Let `s``=[S,T]`

be a symbol given as a pair of lists (see the
introduction to the section). `DefectSymbol`

returns the defect of `s`,
equal to `Length(S)-Length(T)`

.

gap> DefectSymbol([[1,2],[1,5,6]]); -1

`RankSymbol( `

`s` )

Let `s`*=[S _{1},..,S_{n}]* be a symbol given as a tuple of lists (see the
introduction to the section).

`RankSymbol`

returns the rank of

gap> RankSymbol([[1,2],[1,5,6]]); 11

`Symbols( `

`n`, `d` )

Returns the list of all two-line symbols of defect `d` and rank `n` (see
the introduction for definitions). If *d=0* the symbols with equal entries
are returned twice, represented as the first entry, followed by the
repetition factor 2 and an ordinal number 0 or 1, so that `Symbols(`

returns a set of parameters for the characters of the Weyl group of type
`n`, 0)*D _{n}*.

gap> Symbols(2,1); [ [ [ 1, 2 ], [ 0 ] ], [ [ 0, 2 ], [ 1 ] ], [ [ 0, 1, 2 ], [ 1, 2 ] ], [ [ 2 ], [ ] ], [ [ 0, 1 ], [ 2 ] ] ] gap> Symbols(4,0); [ [ [ 1, 2 ], 2, 0 ], [ [ 1, 2 ], 2, 1 ], [ [ 0, 1, 3 ], [ 1, 2, 3 ] ], [ [ 0, 1, 2, 3 ], [ 1, 2, 3, 4 ] ], [ [ 1, 2 ], [ 0, 3 ] ], [ [ 0, 2 ], [ 1, 3 ] ], [ [ 0, 1, 2 ], [ 1, 2, 4 ] ], [ [ 2 ], 2, 0 ], [ [ 2 ], 2, 1 ], [ [ 0, 1 ], [ 2, 3 ] ], [ [ 1 ], [ 3 ] ], [ [ 0, 1 ], [ 1, 4 ] ], [ [ 0 ], [ 4 ] ] ]

`SymbolsDefect( `

`e`, `r`, `def` , `inh`)

Returns the list of symbols defined by Malle for Unipotent characters of
imprimitive Spetses. Returns `e`-symbols of rank `r`, defect `def` (equal
to 0 or 1) and content equal to `inh` modulo `e`. Thus the symbols for
unipotent characters of `G(d,1,r)`

are given by `SymbolsDefect(d,r,0,1)`

and those for unipotent characters of `G(e,e,r)`

by
`SymbolsDefect(e,r,0,0)`

.

gap> SymbolsDefect(3,2,0,1); [ [ [ 1, 2 ], [ 0 ], [ 0 ] ], [ [ 0, 2 ], [ 1 ], [ 0 ] ], [ [ 0, 2 ], [ 0 ], [ 1 ] ], [ [ 0, 1, 2 ], [ 1, 2 ], [ 0, 1 ] ], [ [ 0, 1 ], [ 1 ], [ 1 ] ], [ [ 0, 1, 2 ], [ 0, 1 ], [ 1, 2 ] ], [ [ 2 ], [ ], [ ] ], [ [ 0, 1 ], [ 2 ], [ 0 ] ], [ [ 0, 1 ], [ 0 ], [ 2 ] ], [ [ 1 ], [ 0, 1, 2 ], [ 0, 1, 2 ] ], [ [ ], [ 0, 2 ], [ 0, 1 ] ], [ [ ], [ 0, 1 ], [ 0, 2 ] ], [ [ 0 ], [ ], [ 0, 1, 2 ] ], [ [ 0 ], [ 0, 1, 2 ], [ ] ] ] gap> List(last,StringSymbol); [ "(12,0,0)", "(02,1,0)", "(02,0,1)", "(012,12,01)", "(01,1,1)", "(012,01,12)", "(2,,)", "(01,2,0)", "(01,0,2)", "(1,012,012)", "(,02,01)", "(,01,02)", "(0,,012)", "(0,012,)" ] gap> SymbolsDefect(3,3,0,0); [ [ [ 1 ], [ 1 ], [ 1 ] ], [ [ 0, 1 ], [ 1, 2 ], [ 0, 2 ] ], [ [ 0, 1 ], [ 0, 2 ], [ 1, 2 ] ], [ [ 0, 1, 2 ], [ 0, 1, 2 ], [ 1, 2, 3 ] ], [ [ 0 ], [ 1 ], [ 2 ] ], [ [ 0 ], [ 2 ], [ 1 ] ], [ [ 0, 1 ], [ 0, 1 ], [ 1, 3 ] ], [ [ 0 ], [ 0 ], [ 3 ] ], [ [ 0, 1, 2 ], [ ], [ ] ], [ [ 0, 1, 2 ], [ 0, 1, 2 ], [ ] ] ] gap> List(last,StringSymbol); [ "(1,1,1)", "(01,12,02)", "(01,02,12)", "(012,012,123)", "(0,1,2)", "(0,2,1)", "(01,01,13)", "(0,0,3)", "(012,,)", "(012,012,)" ]

`CycPolGenericDegreeSymbol( `

`s` )

Let `s`*=[S _{1},..,S_{n}]* be a symbol given as a tuple of lists (see the
introduction to the section).

`CycPolGenericDegreeSymbol`

returns as a
`CycPol`

the generic degree of the unipotent character parameterized by

gap> CycPolGenericDegreeSymbol([[1,2],[1,5,6]]); 1/2q^13P5P6P7P8^2P9P10P11P14P16P18P20P22

`CycPolFakeDegreeSymbol( `

`s` )

Let `s`*=[S _{1},..,S_{n}]* be a symbol given as a tuple of lists (see the
introduction to the section).

`CycPolFakeDegreeSymbol`

returns as a
`CycPol`

the fake degree of the unipotent character parameterized by

gap> CycPolFakeDegreeSymbol([[1,5,6],[1,2]]); q^16P5P7P8P9P10P11P14P16P18P20P22

`LowestPowerGenericDegreeSymbol( `

`s` )

Let `s``=[S1,..,Sn]`

be a symbol given as a pair of lists (see the
introduction to the section). `LowestPowerGenericDegreeSymbol`

returns
the valuation of the generic degree of the unipotent character
parameterized by `s`.

gap> LowestPowerGenericDegreeSymbol([[1,2],[1,5,6]]); 13

`HighestPowerGenericDegreeSymbol( `

`s` )

Let `s``=[S1,..,Sn]`

be a symbol given as a pair of lists (see
the introduction to the section). `HighestPowerGenericDegreeSymbol`

returns the degree of the generic degree of the unipotent character
parameterized by `s`.

gap> HighestPowerGenericDegreeSymbol([[1,5,6],[1,2]]); 91

gap3-jm

19 Feb 2018