Skip to content

Export/document character_table_complex_reflection_group#4821

Merged
fingolfin merged 4 commits intooscar-system:masterfrom
ThomasBreuer:TB_complex_reflection_group
May 2, 2025
Merged

Export/document character_table_complex_reflection_group#4821
fingolfin merged 4 commits intooscar-system:masterfrom
ThomasBreuer:TB_complex_reflection_group

Conversation

@ThomasBreuer
Copy link
Copy Markdown
Member

@ThomasBreuer ThomasBreuer commented Apr 23, 2025

see #4797

Also fix the GAP to Oscar conversion of class/character parameters:
Up to now, only the parameter format from the generic character tables from the table library was supported.
The function GAPWrap.CharacterTableWreathSymmetric, which is used in character_table_complex_reflection_group, creates other parameters.

Comment thread src/Groups/group_characters.jl Outdated
Up to now, only the parameter format from the generic character tables
from the table library was supported.
The function `GAPWrap.CharacterTableWreathSymmetric` creates other
parameters.
@ThomasBreuer ThomasBreuer requested a review from ulthiel April 24, 2025 15:04
@lgoettgens lgoettgens added the release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes label Apr 24, 2025
@lgoettgens lgoettgens changed the title export/document character_table_complex_reflection_group Export/document character_table_complex_reflection_group Apr 24, 2025
Copy link
Copy Markdown
Member

@fingolfin fingolfin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me but of course it'd be nice if @ulthiel could have a quick look.

@ulthiel
Copy link
Copy Markdown
Contributor

ulthiel commented Apr 25, 2025

Can someone post an example (e.g. for (3,1,2)) so that I can see how this looks like? I am especially interested in the labeling of classes and characters. Is this compatible with Chevie?

@ThomasBreuer
Copy link
Copy Markdown
Member Author

Can someone post an example (e.g. for (3,1,2)) so that I can see how this looks like? I am especially interested in the labeling of classes and characters. Is this compatible with Chevie?

julia> t = character_table_complex_reflection_group(3,1,2)
C3wrS2

  2  1        .        .         1  .         1  1        1        1
  3  2        2        2         2  2         2  1        1        1
                                                                    
    1a       3a       3b        3c 3d        3e 2a       6a       6b
 2P 1a       3b       3a        3e 3d        3c 1a       3c       3e
 3P 1a       1a       1a        1a 1a        1a 2a       2a       2a
                                                                    
X_1  1        1        1         1  1         1 -1       -1       -1
X_2  2  z_3 + 1     -z_3      2z_3 -1 -2z_3 - 2  .        .        .
X_3  2     -z_3  z_3 + 1 -2z_3 - 2 -1      2z_3  .        .        .
X_4  1      z_3 -z_3 - 1  -z_3 - 1  1       z_3 -1     -z_3  z_3 + 1
X_5  2       -1       -1         2 -1         2  .        .        .
X_6  1 -z_3 - 1      z_3       z_3  1  -z_3 - 1 -1  z_3 + 1     -z_3
X_7  1        1        1         1  1         1  1        1        1
X_8  1      z_3 -z_3 - 1  -z_3 - 1  1       z_3  1      z_3 -z_3 - 1
X_9  1 -z_3 - 1      z_3       z_3  1  -z_3 - 1  1 -z_3 - 1      z_3

julia> character_parameters(t)
9-element Vector{Vector{Vector{Int64}}}:
 [[1, 1], [], []]
 [[1], [1], []]
 [[1], [], [1]]
 [[], [1, 1], []]
 [[], [1], [1]]
 [[], [], [1, 1]]
 [[2], [], []]
 [[], [2], []]
 [[], [], [2]]

julia> class_parameters(t)
9-element Vector{Vector{Vector{Int64}}}:
 [[1, 1], [], []]
 [[1], [1], []]
 [[1], [], [1]]
 [[], [1, 1], []]
 [[], [1], [1]]
 [[], [], [1, 1]]
 [[2], [], []]
 [[], [2], []]
 [[], [], [2]]

In the examples I have looked at, the ordering of the parameters/labels coincides with that in Chevie.jl.

@ulthiel
Copy link
Copy Markdown
Contributor

ulthiel commented Apr 25, 2025

Can you summarize and document how the character table is computed? I assume this will be some general yada in GAP for characters of a wreath product? I assume like in Curtis & Reiner (1981), §13 (page 331). Then how do you associate from there the corresponding multipartition? I think https://arxiv.org/pdf/2501.04432v1 p.3 maybe a short reference. Do you use the Murnaghan-Nakayama rule?

@ThomasBreuer
Copy link
Copy Markdown
Member Author

ThomasBreuer commented Apr 25, 2025

The underlying GAP function CharacterTableWreathSymmetric( t, n ) takes the character table t of some group G and computes the character table of the wreath product of G with the symmetric group on n points. The implementation follows Chapter 4 in "The Representation Theory of the Symmetric Group" by James and Kerber. (The abovementioned arXiv paper also refers to James/Kerber.) In particular, this approach explains the labeling of classes and characters by s-tuples of partitions whose parts sum up to n, where s is the number of conjugacy classes of G.

The code/documentation of GAP does not contain this reference.
If we want to add this reference to Oscar then it would be more natural to add a wrapper to the more general function CharacterTableWreathSymmetric to Oscar, to put the reference to this function, and to add a cross-reference from character_table_complex_reflection_group to this function.

And if we want to document the labels then should the labels better be multipartition objects? (This would be a breaking change in the sense that the function character_table_complex_reflection_group was available for a long time, but since it was not documented, we could change the type of the labels.)

@ulthiel
Copy link
Copy Markdown
Contributor

ulthiel commented Apr 25, 2025

Ok, great. I would definitely like to see this in the documentation of character_table_complex_reflection_group. About whether the labels should be multipartition objects: 1) are there multipartitions in OSCAR already? I lost track of this. 2) I think it would be nicer to get this as multipartitions but I'm sure there will be a constructor for arrays as well, so it doesn't matter I would say. Maybe people more deeply involved with OSCAR structures should decide.

@ThomasBreuer
Copy link
Copy Markdown
Member Author

Thanks @ulthiel, I will update the pull request.

@fingolfin
Copy link
Copy Markdown
Member

Yes multipartitions are in Oscar (we recently imported your old code, Uli -- or rather, @mjrodgers did it)

refer to [JK81] for the implementation (in GAP),
refer from `character_table_complex_reflection_group`
to `character_table_wreath_symmetric`
@fingolfin
Copy link
Copy Markdown
Member

@ulthiel OK to merge this now? (Bear in mind that we can of course tweak it further later on)

@fingolfin fingolfin added triage and removed triage labels Apr 30, 2025
@ulthiel
Copy link
Copy Markdown
Contributor

ulthiel commented Apr 30, 2025

Yes, looks OK to me. Does it work for @RaphaelPaegelow?

@fingolfin
Copy link
Copy Markdown
Member

I think we should merge this ASAP because this also contains fixes which probably @RaphaelPaegelow will need to effectively use this ...

@fingolfin fingolfin enabled auto-merge (squash) May 2, 2025 01:07
@fingolfin fingolfin merged commit 143bd97 into oscar-system:master May 2, 2025
30 of 32 checks passed
@RaphaelPaegelow
Copy link
Copy Markdown
Contributor

Yes, looks OK to me. Does it work for @RaphaelPaegelow?

Works great for me too. I will use this in #4797.

@ThomasBreuer ThomasBreuer deleted the TB_complex_reflection_group branch May 9, 2025 09:03
fieker pushed a commit that referenced this pull request May 16, 2025
* export/document `character_table_complex_reflection_group`

* fix the conversion of class/character parameters

Up to now, only the parameter format from the generic character tables
from the table library was supported.
The function `GAPWrap.CharacterTableWreathSymmetric` creates other
parameters.

* add `character_table_wreath_symmetric`

refer to [JK81] for the implementation (in GAP),
refer from `character_table_complex_reflection_group`
to `character_table_wreath_symmetric`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes topic: groups

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants