Ask Your Question

Order of Irreducible Representation Characters wrong in Sage?

asked 2012-09-06 04:04:45 -0600

LouChaos gravatar image

updated 2012-09-06 04:48:42 -0600

kcrisman gravatar image

I am using Sage to calculate Irreducible Representations (IRR) of symmetry groups of graphs. Most of the time the order of the IRR characters match the order of the conjugacy class representatives. For example the trivial representation characters are the first row of the character table (1,1,1,1,...,1) and the first conjugacy class is ( ), the identity representation. But in the example below for a star graph (one central vertex, the 4 other vertices on spokes from the center) the trivial representation characters are the last row in the character table and the conjugacy class representatives have the identity as the first element.

Example (star graph).

print ct

[ 1 -1  1  1 -1]
[ 3 -1 -1  0  1]
[ 2  0  2 -1  0]
[ 3  1 -1  0 -1]
[ 1  1  1  1  1]  <--- trivial rep. is last

print cc

[(), (1,2), (1,2)(3,4), (1,2,3), (1,2,3,4)]
 ^ trivial class is first

Is this a bug or known issue for Sage? How can I get around it so I know the orders of the characters and representatives match up properly?

edit retag flag offensive close merge delete

3 answers

Sort by ยป oldest newest most voted

answered 2012-09-06 22:34:52 -0600

Volker Braun gravatar image

You are confusing rows and columns of the character table.

  • The rows correspond to the irreducible representations
  • The columns correspond to the conjugacy classes

For example:

sage: G = DihedralGroup(3)
sage: G.character_table()
[ 1 -1  1]
[ 2  0 -1]
[ 1  1  1]

So the last row in the character table is the trivial representation, which is the same ordering as

 sage: G.irreducible_characters()[-1] == G.trivial_character()

We also see that the trivial conjugacy class is the first column in the character table. For this, recall that the character evaluated at the trivial conjugacy class is just the dimension of the representation. As you already remarked, this is the same ordering that Sage (actually, GAP) returns the conjugacy classes in:

sage: G.conjugacy_classes_representatives()
[(), (1,2), (1,2,3)]
edit flag offensive delete link more


Or is it possible that the OP is assuming (incorrectly, I believe) that there is a canonical way to associate characters to conjugacy classes? That was my first thought...

kcrisman gravatar imagekcrisman ( 2012-09-07 17:11:54 -0600 )edit

I think I am mixing things up. Let me sit back and get it straight. Thank you for helping.

LouChaos gravatar imageLouChaos ( 2012-09-10 07:42:41 -0600 )edit

answered 2012-09-06 05:00:40 -0600

kcrisman gravatar image
Definition:     H.conjugacy_classes_representatives(self)
       Returns a complete list of representatives of conjugacy classes in
       a permutation group G. The ordering is that given by GAP.

Definition:     H.character_table(self)
       Returns the matrix of values of the irreducible characters of a
       permutation group G at the conjugacy classes of G. The columns
       represent the conjugacy classes of G and the rows represent the
       different irreducible characters in the ordering given by GAP.

So it seems that the rows correspond to characters only, and perhaps they aren't guaranteed to be in the same order as the conjugacy classes. After all, in your example above, which of the two 3-dimensional reps should correspond to which order 9 conjugacy class? And I do get the same order for the irreducible characters as in the table with H.irreducible_characters().

edit flag offensive delete link more


I used irreducible_characters() and displayed them with [x.values() for x in irr]. The order appears correct now. Thank you.

LouChaos gravatar imageLouChaos ( 2012-09-06 05:19:00 -0600 )edit

Running in Sage both character_table() and irreducible_characters() agree with conjugacy_classes_representatives() order. *But when I run from Python the order of characters from both calls are scrambled in the same way and no longer agree with the order as given in Sage or Python for the conjugacy_classes_representatives. So Python give same conjugacy_classes_representatives order as Sage, but not so for character tables done either way.

LouChaos gravatar imageLouChaos ( 2012-09-06 05:26:54 -0600 )edit

Glad things helped. I'm a little confused by your second comment, though. What do you mean by "run from Python"? Do you mean you used a .py or .sage script to do this? We'd have to see the code - update your question, if there is still a problem.

kcrisman gravatar imagekcrisman ( 2012-09-06 06:36:27 -0600 )edit

answered 2012-09-12 04:01:46 -0600

LouChaos gravatar image

Yes, I made the mistake of confusing IRR characters and conjugacy classes. I'm sorry for the confusion and taking so long to respond. Thanks for the many replies. I have that cleared up now.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-09-06 04:04:45 -0600

Seen: 360 times

Last updated: Sep 12 '12