Skip to content

Commit

Permalink
Implement suggestions by @fingolfin
Browse files Browse the repository at this point in the history
  • Loading branch information
TristanPfersdorff committed Nov 6, 2021
1 parent 4ba7bc5 commit 6698815
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 10 deletions.
2 changes: 1 addition & 1 deletion gap/ClassicalMaximals.gi
Original file line number Diff line number Diff line change
Expand Up @@ -839,5 +839,5 @@ function(n, q)

# For each prime divisor of e, there is exactly one of these subgroups,
# so this is sufficient.
return List(PrimeDivisors(e), b -> SubfieldSp(n, p, e, QuoInt(e ,b)));
return List(PrimeDivisors(e), b -> SubfieldSp(n, p, e, QuoInt(e, b)));
end);
22 changes: 13 additions & 9 deletions gap/SubfieldMatrixGroups.gi
Original file line number Diff line number Diff line change
Expand Up @@ -285,19 +285,23 @@ function (d, p, e, f)
local F, q0, b, gens, l, zeta, omega, zetaPower, C, gen;

if IsOddInt(d) then
ErrorNoReturn("<d> must even but ", d, " was given.");
ErrorNoReturn("Dimension <d> must be even.");
fi;

if e mod f <> 0 then
ErrorNoReturn("<f> must be a divisor of <e>");
fi;

F := GF(p ^ e);
q0 := p ^ f;
b := QuoInt(e, f);
gens := List(GeneratorsOfGroup(Sp(d, q0)));

if e mod f <> 0 or not IsPrime(b) then
ErrorNoReturn("<f> must be a divisor of <e> and their quotient must be a prime but <e> = ",
e, " and <f> = ", f);
if not IsPrime(b) then
ErrorNoReturn("The quotient of <f> by <e> must be a prime");
fi;

F := GF(p ^ e);
q0 := p ^ f;
gens := List(GeneratorsOfGroup(Sp(d, q0)));

# In this case the embedding of Sp(d, q0) in Sp(d, q) is already
# the C5-subgroup, so we just need to adjust the base field.
if Gcd(2, b, p - 1) = 1 then
Expand All @@ -312,8 +316,8 @@ function (d, p, e, f)
# This matrix C preserves the form and is constructed to
# have determinant 1, but it is not in Sp(d, q0). Therefore it is
# our missing generator to extend Sp(d, q0) to a C5-subgroup, since
# C is in the Normalizer of Sp(d, q) of Sp(d, q0).
C := DiagonalMat(Concatenation(List([1..l], i -> omega * zetaPower), List([1..l], i -> zetaPower)));
# C is in the normalizer of Sp(d, q0) in Sp(d, q).
C := DiagonalMat(Concatenation(ListWithIdenticalEntries(l, omega * zetaPower), ListWithIdenticalEntries(l, zetaPower)));
Add(gens, C);

# Size according to Table 2.8 in [BHR13]
Expand Down

0 comments on commit 6698815

Please sign in to comment.