1gap> #morphisms: BaseChangeToCanonical
2gap> gf := GF(3);
3GF(3)
4gap> gram := [
5> [0,0,0,1,0,0],
6> [0,0,0,0,1,0],
7> [0,0,0,0,0,1],
8> [-1,0,0,0,0,0],
9> [0,-1,0,0,0,0],
10> [0,0,-1,0,0,0]] * One(gf);;
11gap> form := BilinearFormByMatrix( gram, gf );
12< bilinear form >
13gap> b := BaseChangeToCanonical( form );;
14gap> Display( b * gram * TransposedMat(b) );
15 . 1 . . . .
16 2 . . . . .
17 . . . 1 . .
18 . . 2 . . .
19 . . . . . 1
20 . . . . 2 .
21gap> quit;
22