I am looking for a package to generate character tables for symmetric groups $S_n$. At this moment I am using

FiniteGroupData[{"SymmetricGroup", n}, "CharacterTable"]

but it works only for $n\leq 10$. Does there exist a package which can be used to get similar results for larger values of $n$?

  • 3
    $\begingroup$ For reference, GAP can do large groups, for example Display(CharacterTable(SymmetricGroup(30))); $\endgroup$
    – Roman
    May 2, 2021 at 18:28
  • $\begingroup$ How to export these GAP's results into a file which are be imported then in Mathematica? I tried to type in GAP: PrintTo("file1",Display(CharacterTable(SymmetricGroup(4)))); but it does not work. $\endgroup$
    – mikis
    May 2, 2021 at 19:34
  • $\begingroup$ Sorry, your guess is as good as mine. $\endgroup$
    – Roman
    May 2, 2021 at 19:35
  • $\begingroup$ Ok, I asked this question separetely here: stackoverflow.com/questions/67360500/… Nevertheless, I still would like to see if there a direct method to compute this in Mathematica, so I leave this question open. $\endgroup$
    – mikis
    May 2, 2021 at 19:45

1 Answer 1


Expanding a comment: we can use GAP to compute large character tables and then import them to Mathematica.

A simple GAP function based on this solution:

storeSymmetricCharacterTable := function(n, filename)
    local c, f;
    c := CharacterTable("Symmetric", n);
    f := OutputTextFile(filename, false);
    SetPrintFormattingStatus(f, false);
    PrintTo(f, "SymmetricCharacterTable[", n, "] =\n");
    PrintTo(f, "  {\"CharacterParameters\"->");
    PrintTo(f, "{", JoinStringsWithSeparator(List(CharacterParameters(c), x->Concatenation("{",JoinStringsWithSeparator(x[2]),"}"))), "},\n");
    PrintTo(f, "   \"CharacterTable\"->");
    PrintTo(f, "{", JoinStringsWithSeparator(List(Irr(c), x->Concatenation("{",JoinStringsWithSeparator(x),"}"))), "}}\n");

Store this function in a file ssct.gap, then start GAP and run

storeSymmetricCharacterTable(3, "symm_3.txt");

which now contains Mathematica-format data:

SymmetricCharacterTable[3] =

Compare to Mathematica code:

FiniteGroupData[{"SymmetricGroup", 3}, "ConjugacyClassNames"]
(*    {"{1,1,1}", "{2,1}", "{3}"}    *)

FiniteGroupData[{"SymmetricGroup", 3}, "CharacterTable"]
(*    {{1, 1, 1}, {2, 0, -1}, {1, -1, 1}}    *)

Notice that the signs in the character tables differ between Mathematica and GAP.

  • $\begingroup$ Thanks! I was trying to find the source of the difference in signs and couldn't find a good reference for that. Any idea where I can find some information about this? Actually, the ones from Mathematica agree with Jackson's tables published in 1988. $\endgroup$
    – mikis
    May 4, 2021 at 0:51
  • $\begingroup$ Maybe a phase convention? You'd have to ask a real mathematician about the signs. Maybe ask on the math stackexchange? $\endgroup$
    – Roman
    May 4, 2021 at 7:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.