Skip to content

Add character_degrees for a given group or character table, or for given invariants of a finite abelian group and finite field#5453

Merged
fingolfin merged 5 commits intooscar-system:masterfrom
ThomasBreuer:TB_character_degrees
Nov 5, 2025
Merged

Add character_degrees for a given group or character table, or for given invariants of a finite abelian group and finite field#5453
fingolfin merged 5 commits intooscar-system:masterfrom
ThomasBreuer:TB_character_degrees

Conversation

@ThomasBreuer
Copy link
Copy Markdown
Member

@ThomasBreuer ThomasBreuer commented Oct 14, 2025

add character_degrees:

  • for a given group or character table, delegate to GAP,
  • for given invariants of a finite abelian group and finite field, use Julia code.

and improve _irred_abelian:

  • add Oscar.DiscLog.element_of_given_order, as suggested by Claus, and use this function in _irred_abelian(G::Oscar.GAPGroup, F::FinField),
  • work with a smaller field L (somehow this idea had been lost in the previous version)

- use `Oscar.DiscLog.element_of_given_order`
- work with a smaller field `L`
  (somehow this idea had been lost in the previous version)
- for a given group of character table, delegate to GAP
- for given invariants of a finite abelian group and finite field,
  use Julia code
@ThomasBreuer ThomasBreuer requested a review from fieker October 14, 2025 12:53
@ThomasBreuer ThomasBreuer added enhancement New feature or request topic: groups release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes labels Oct 14, 2025
@ThomasBreuer
Copy link
Copy Markdown
Member Author

The failures happen with Julia nightly, they are not related to the proposed changes.

@fingolfin fingolfin changed the title add character_degrees Add character_degrees Oct 17, 2025
@fingolfin fingolfin added release notes: use title For PRs: the title of this PR is suitable for direct use in the release notes and removed release notes: not needed PRs introducing changes that are wholly irrelevant to the release notes labels Oct 17, 2025
@fingolfin fingolfin changed the title Add character_degrees Add character_degrees for a given group or character table, or for given invariants of a finite abelian group and finite field Oct 17, 2025
@fingolfin
Copy link
Copy Markdown
Member

Since this adds a new function, I think it should appear in the manual, so I adjusted the labels and title accordingly.

I'll leave it to @fieker to review and approve, as this functionality he requested, I think?

@ThomasBreuer
Copy link
Copy Markdown
Member Author

One question to @fieker is whether MSet is the appropriate type for the result of character_degrees.
Logically, it fits.
Technically, I find it a bit complicated to check equality of MSets (see the tests), and sometimes it is useful to have a sorted version. (The underlying GAP function returns a sorted list of degree/multiplicity pairs.)

Comment thread test/Groups/group_characters.jl Outdated

# for invariant lists of abelian groups, and order of a finite field
D = character_degrees([3, 3, 5], 2)
@test sort(collect(D)) == sort(collect(MSet([1, 2, 4], [1, 4, 9])))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

isn't == defined for MSet s? If not that is the problem... This seems to work as expected:

julia>  ==(MSet([1]), MSet([2]))
false

julia>  ==(MSet([1]), MSet([1]))
true

julia>  ==(MSet([1]), MSet([1,1]))
false

julia>  ==(MSet([1]), MSet([1,1]))
false

julia>  ==(MSet([1,1]), MSet([1,1]))
true

The doc tests are tricky...

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Concerning the comparisons:
What we can do is this.

D = character_degrees([3, 3, 5], 2)
@test D == MSet(ZZRingElem[1, 2, 4], [1, 4, 9])

Concerning the doctests:
If the ordering of the entries in the show result for MSets is not safe then it is better not to show these MSets at all in doctests. (Would it then make sense to introduce a sorted variant for the case that the keys can be sorted?)

@fieker
Copy link
Copy Markdown
Contributor

fieker commented Oct 21, 2025 via email

@fingolfin
Copy link
Copy Markdown
Member

@ThomasBreuer tests still fail

and use the documented `multiset` instead of `MSet`
@fingolfin fingolfin merged commit 64a689f into oscar-system:master Nov 5, 2025
30 of 35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request 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.

3 participants