You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Based on discussion with @fieker and @thofma regarding what we need to implement the Meataxe in char 0:
We need an efficient way to compute the centralizer of $E:=\mathrm{End}_G(M)$, where M is a $G$-module. Of course can do this by computing (as basis of) $E$ first, via GAP.Globals.MTX.BasisModuleEndomorphisms, but actually the code computing the endomorphisms computes the center as a byproduct (at least implicitly). So this is a matter of keeping this information during the computation (possibly if a suitable flag is provided).
So this requires changes to GAP for now.
I'd like to note that the central GAP function for this is SpinHom which has a comment suggesting it dates back to ~1996, and then this nugget:
However, this routine is nowhere near as good as the Magma algorithm, and I do not know how to improve it.
So down the road we should also look into implementing better/newer algorithms in GAP or Julia (hoping that there are papers outlining what they do -- let's collect references here if anyone knows some). Though for now the GAP code for matrices in small characteristic is faster than what we have in OSCAR, so those should be used for now until we get the better linear algebra in OSCAR ready.
The text was updated successfully, but these errors were encountered:
As for sources, I had a look at the "Handbook of Computational Group Theory" which discusses computing Hom_G(V,W) in section 7.5.2. It describes a basic algorithm and then says this at the end of page 241 / start of page 242:
There are better methods available when the dimensions are large, but we shall not discuss them any further here. One such method was proposed by Schneider in [Sch90a], and further unpublished ideas have been proposed by C.R.Leedham-Green, and are used in the MAGMA implementation.
Leedham-Green implemented an unpublished algorithm for computing endomorphism rings, which is included in Magma (Bosma et al., 1994). Smith includes an implementation of a randomized algorithm in the AutAG share package included in GAP version 3.4.4 (Schönert et al., 1995). The algorithm is tuned for modules over group algebras. The comments in the source code state that the algorithm is based on discussions with Leedham-Green, Lux, and Niemeyer, but that its performance is not as good as the implementation in Magma.
Based on discussion with @fieker and @thofma regarding what we need to implement the Meataxe in char 0:
We need an efficient way to compute the centralizer of$E:=\mathrm{End}_G(M)$ , where $G$ -module. Of course can do this by computing (as basis of) $E$ first, via
M
is aGAP.Globals.MTX.BasisModuleEndomorphisms
, but actually the code computing the endomorphisms computes the center as a byproduct (at least implicitly). So this is a matter of keeping this information during the computation (possibly if a suitable flag is provided).So this requires changes to GAP for now.
I'd like to note that the central GAP function for this is
SpinHom
which has a comment suggesting it dates back to ~1996, and then this nugget:So down the road we should also look into implementing better/newer algorithms in GAP or Julia (hoping that there are papers outlining what they do -- let's collect references here if anyone knows some). Though for now the GAP code for matrices in small characteristic is faster than what we have in OSCAR, so those should be used for now until we get the better linear algebra in OSCAR ready.
The text was updated successfully, but these errors were encountered: