Skip to content

Specialization to ordinary table#298

Draft
SoongNoonien wants to merge 2 commits intooscar-system:masterfrom
SoongNoonien:ord_char
Draft

Specialization to ordinary table#298
SoongNoonien wants to merge 2 commits intooscar-system:masterfrom
SoongNoonien:ord_char

Conversation

@SoongNoonien
Copy link
Member

This is a first and very crude hack to get an ordinary character table from a generic one. Apparently I'm doing something wrong or the parameter specifications of GL2 are incorrect. This is what I get for $\mathrm{GL}(2,3)$:

julia> g=generic_character_table("GL2")
Generic character table GL2
  of order q^4 - q^3 - q^2 + q
  with 4 irreducible character types
  with 4 class types
  with parameters (i, j, l, k)

julia> get_ordinary(g, 3)
10×10 transpose(::Matrix{GenericCharacterTables.GenericCyclo}) with eltype GenericCharacterTables.GenericCyclo:
 1   1  1   1   -1  -1              1   1   -1              1
 1   1  1   1   1   1               1   1   1               1
 3   3  0   0   -1  1               -1  -1  1               -1
 3   3  0   0   1   -1              -1  -1  -1              -1
 -4  4  -1  1   0   0               0   0   0               0
 -2  2  1   -1  0   -E(8) - E(8)^3  0   2   E(8) + E(8)^3   -2
 2   2  -1  -1  0   0               2   -2  0               -2
 2   2  -1  -1  0   2               -2  -2  2               -2
 -2  2  1   -1  0   E(8) + E(8)^3   0   2   -E(8) - E(8)^3  -2
 2   2  -1  -1  0   -2              -2  -2  -2              -2

There are two additional rows and columns as can be verified here.

@SoongNoonien SoongNoonien requested a review from fingolfin May 28, 2025 14:31
@codecov
Copy link

codecov bot commented May 28, 2025

Codecov Report

Attention: Patch coverage is 0% with 56 lines in your changes missing coverage. Please review.

Project coverage is 89.87%. Comparing base (a044d8c) to head (e048315).

Files with missing lines Patch % Lines
src/GetOrdinary.jl 0.00% 56 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #298      +/-   ##
==========================================
- Coverage   95.10%   89.87%   -5.24%     
==========================================
  Files          14       15       +1     
  Lines         961     1017      +56     
==========================================
  Hits          914      914              
- Misses         47      103      +56     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fingolfin
Copy link
Member

You can also check the table by asking... OSCAR ;-)

julia> character_table(GL(2,3))
Character table of GL(2,3)

  2  4  1  4  1  3            3            3  2
  3  1  1  1  1  .            .            .  .

    1a 6a 2a 3a 4a           8a           8b 2b

X_1  1  1  1  1  1            1            1  1
X_2  1  1  1  1  1           -1           -1 -1
X_3  2 -1  2 -1  2            .            .  .
X_4  2  1 -2 -1  . -z_8^3 - z_8  z_8^3 + z_8  .
X_5  2  1 -2 -1  .  z_8^3 + z_8 -z_8^3 - z_8  .
X_6  3  .  3  . -1            1            1 -1
X_7  3  .  3  . -1           -1           -1  1
X_8  4 -1 -4  1  .            .            .  .

Also note that the first column should have only positive integer entries (those should be the degrees of the corresponding representations). So indeed something is wrong

@SoongNoonien
Copy link
Member Author

You can also check the table by asking... OSCAR ;-)

Of course I should have thought of that...

Also note that the first column should have only positive integer entries (those should be the degrees of the corresponding representations). So indeed something is wrong

Yes, but that's just a convention on the order of the conjugacy classes. My first goal is to obtain a table which is correct up to permutation of columns and rows. I'm not even sure if we can say beforehand which combination of class parameters corresponds to the trivial class.

@SoongNoonien
Copy link
Member Author

Ok, I found the problem. Now the table looks like this:

julia> get_ordinary(g,3)
8×8 transpose(::Matrix{GenericCharacterTables.GenericCyclo}) with eltype GenericCharacterTables.GenericCyclo:
 1   1  1   1   -1  -1              1   -1
 1   1  1   1   1   1               1   1
 3   3  0   0   -1  1               -1  1
 3   3  0   0   1   -1              -1  -1
 -4  4  -1  1   0   0               0   0
 -2  2  1   -1  0   -E(8) - E(8)^3  0   E(8) + E(8)^3
 2   2  -1  -1  0   0               2   0
 -2  2  1   -1  0   E(8) + E(8)^3   0   -E(8) - E(8)^3

@frankluebeck
Copy link

Yes, this way it works "in principle", provided the character parameters and class parameters are correctly described.

But it quickly becomes non-practical because for larger tables and/or parameters you produce far too many rows and columns which are then collapsed afterwords.

With newly created tables I will later provide additional information on the parameter sets, such that each class and each irreducible character is described by a unique parameter specialization.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants