1#######################################################################
2##  Hecke - symmcomb.gd : Combinatorial functions on partitions.     ##
3##                                                                   ##
4##     This file contains most of the combinatorial functions used   ##
5##     by Hecke. Most are standard operations on Young diagrams or   ##
6##     partitions.                                                   ##
7##                                                                   ##
8##     These programs, and the enclosed libraries, are distributed   ##
9##     under the usual licensing agreements and conditions of GAP.   ##
10##                                                                   ##
11##     Dmitriy Traytel                                               ##
12##     (heavily using the GAP3-package SPECHT 2.4 by Andrew Mathas)  ##
13##                                                                   ##
14#######################################################################
15
16## Hecke 1.0: June 2010:
17##   - initial
18
19MakeDispatcherFunc("Lexicographic", [[IsList]],[2],[2]);
20MakeDispatcherFunc("LengthLexicographic", [[IsList]],[2],[2]);
21MakeDispatcherFunc("ReverseDominance", [[IsList]],[2],[2]);
22MakeDispatcherFunc("Dominates", [[IsList]],[2],[2]);
23
24MakeDispatcherFunc("ConjugatePartition", [[]],[1],[1]);
25
26MakeDispatcherFunc("LittlewoodRichardsonRule", [[IsList]],[2],[2]);
27MakeDispatcherFunc("LittlewoodRichardsonCoefficient", [[IsList,IsList]],[3],[3]);
28MakeDispatcherFunc("InverseLittlewoodRichardsonRule", [[]],[1],[1]);
29
30MakeDispatcherFunc("SpechtDimension", [[],[IsHeckeSpecht]],[1,0],[1,1]);
31
32MakeDispatcherFunc("BetaNumbers", [[]],[1],[1]);
33MakeDispatcherFunc("PartitionBetaSet", [[]],[1],[1]);
34
35MakeDispatcherFunc("EAbacusRunners", [[IsInt]],[2],[2]);
36MakeDispatcherFunc("ECore",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
37MakeDispatcherFunc("IsECore",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
38MakeDispatcherFunc("EWeight",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
39MakeDispatcherFunc("EQuotient",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
40MakeDispatcherFunc("EAbacus",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
41MakeDispatcherFunc("CombineEQuotientECore",[[IsInt,IsList],[IsAlgebraObj,IsList]],[3,3],[3,3]);
42MakeDispatcherFunc("IsERegular",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
43MakeDispatcherFunc("ERegularPartitions",[[IsInt,IsInt],[IsAlgebraObj,IsInt]],[0,0],[2,2]);
44
45MakeDispatcherFunc("EResidueDiagram",[[IsInt],[IsAlgebraObj],[IsHeckeSpecht]],[2,2,0],[2,2,1]);
46
47MakeDispatcherFunc("ETopLadder",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
48MakeDispatcherFunc("EHookDiagram",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
49
50MakeDispatcherFunc("HookLengthDiagram",[[]],[1],[1]);
51
52MakeDispatcherFunc("NormalNodes",[[IsInt],[IsAlgebraObj],[IsInt,IsInt],[IsAlgebraObj,IsInt]],[2,2,2,2],[2,2,3,3]);
53MakeDispatcherFunc("RemoveNormalNodes",[[IsInt,IsInt],[IsAlgebraObj,IsInt]],[2,2],[3,3]);
54MakeDispatcherFunc("GoodNodes",[[IsInt],[IsAlgebraObj],[IsInt,IsInt],[IsAlgebraObj,IsInt]],[2,2,2,2],[2,2,3,3]);
55MakeDispatcherFunc("GoodNodeSequence",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
56MakeDispatcherFunc("GoodNodeSequences",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
57MakeDispatcherFunc("PartitionGoodNodeSequence",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
58MakeDispatcherFunc("GoodNodeLatticePath",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
59MakeDispatcherFunc("GoodNodeLatticePaths",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
60MakeDispatcherFunc("LatticePathGoodNodeSequence",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
61
62MakeDispatcherFunc("MullineuxSymbol",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
63MakeDispatcherFunc("PartitionMullineuxSymbol",[[IsInt],[IsAlgebraObj]],[2,2],[2,2]);
64
65MakeDispatcherFunc("RemoveRimHook",[[IsInt,IsInt],[IsList,IsInt,IsInt]],[1,4],[3,4]);
66MakeDispatcherFunc("AddRimHook",[[IsInt,IsInt]],[1],[3]);
67
68