-
-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dft for symmetric group algebra when p|n! #37748
dft for symmetric group algebra when p|n! #37748
Conversation
The DFT for the SGA throws a ZeroDivisionError p|n. Uses the idempotents as computed in [Murphy '83] to build the Pierce decomposition of the group algebra over a finite field. The "modular" Fourier transform is the homomorphic projection onto each block via v |--> v*e_i. This change of basis matrix is the modular Fourier transform, and works even when p|n.
attempting to get through lint
remove helper functions in favor of lambda functions
doctest is currently failing. I think that has something to do with the preloaded examples in the comments. I am attempting to build sage locally for the first time to run doctest with the changed |
use p=2, n=3 for a small example.
lowercase m in matrix
the output in the example I had was wrong. that's been corrected. now test modularized distributions is failing with: [sagemath_objects-10.4.beta1] ERROR: Could not find a version that satisfies the requirement cysignals>=1.10.2 (from versions: none) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Admittedly I don't know enough about modular representation theory to check this code mathematically, but here are some programming comments.
Also, the documentation for the .dft
-method should be rewritten a bit to explain the form
argument, to make the explanation of mult
dependent on form = "seminormal"
, and to also explain the different approaches used depending on form
. For the explanation of the modular approach, you can also refer to [Murphy '83], which needs to be formatted as [Mur1983]_
in the docstring to give a hyperlink in the documentation.
if form == "seminormal": | ||
return self._dft_seminormal(mult=mult) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be a good idea to catch the error in the case form
and choose it depending on whether the characteristic divides ._dft_seminormal
always fails in the modular case)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree, at the very least the failing cases p|n should at least be handled with a clear error message. I believe it only fails when p | n! (n was a type - it's the order of the symmetric group, so n!). I've chosen to just remove the standard argument for form and return the modular DFT in that case.
remove the self-reference to .dft(). just state that it's computing the DFT when the characteristic divides the order of the group. Co-authored-by: Sebastian A. Spindler <153911337+S17A05@users.noreply.github.com>
Co-authored-by: Sebastian A. Spindler <153911337+S17A05@users.noreply.github.com>
remove form from argument
Documentation preview for this PR (built with commit 2fa1ab6; changes) is ready! 🎉 |
Accidentally closed this PR when I deleted the fork on my end. Should be reopened. |
The DFT for the SGA throws a ZeroDivisionError when p|n. Uses the idempotents as computed in [Murphy '83] to build the Pierce decomposition of the symmetric group algebra over a finite field. There is a homomorphic projection onto each block via v |--> v*e_i. The change of basis matrix is the modular Fourier transform, and works even when p|n.
📝 Checklist
⌛ Dependencies