Skip to content

Commit

Permalink
Fix InvariantQuadraticForm for Omega(-1, 2*d, 2^n)
Browse files Browse the repository at this point in the history
Also add proper tests to check that the quadratic forms are indeed correct
(the existing tests were too weak).
  • Loading branch information
fingolfin authored and ThomasBreuer committed Mar 23, 2021
1 parent 32d9caa commit 379de8b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 6 deletions.
6 changes: 2 additions & 4 deletions grp/classic.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1789,10 +1789,8 @@ BindGlobal( "OmegaMinus", function( d, q )
x[i,d-i+1] := o;
od;
x[m,d-m+1] := -nu - nubar;
if q mod 2 = 1 then
x[m,d-m] := -o;
x[m+1,d-m+1] := xi^( (q+1)/2 );
fi;
x[m,d-m] := -o;
x[m+1,d-m+1] := -xi;
x:= ImmutableMatrix( f, x, true );
SetInvariantQuadraticFormFromMatrix( g, x );

Expand Down
8 changes: 6 additions & 2 deletions tst/testinstall/grp/classic-forms.tst
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,14 @@ gap> CheckBilinearForm := function(G)
> g -> g*M*TransposedMat(g) = M);
> end;;
gap> CheckQuadraticForm := function(G)
> local M, Q;
> local M, Q, V, vecs;
> M := InvariantBilinearForm(G).matrix;
> Q := InvariantQuadraticForm(G).matrix;
> return Q+TransposedMat(Q) = M;
> V := FieldOfMatrixGroup(G)^DegreeOfMatrixGroup(G);
> vecs:=List([1..100], i->Random(V));
> return (Q+TransposedMat(Q) = M) and ForAll(vecs,
> v->ForAll(GeneratorsOfGroup(G),
> g -> v*Q*v = (v*g)*Q*(v*g)));
> end;;
gap> frob := function(g,aut)
> return List(g,row->List(row,x->x^aut));
Expand Down

0 comments on commit 379de8b

Please sign in to comment.