Skip to content

Commit 10a6ec2

Browse files
committed
Improve test: generate comparison matrices directly instead of calling old function
1 parent 8e47f93 commit 10a6ec2

1 file changed

Lines changed: 6 additions & 9 deletions

File tree

gap/projective/constructive_recognition/SL/BaseCase.gi

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,7 @@ end;
495495
##
496496
## Some comments:
497497
## - Does not work for q = 2,3,5
498+
##
498499
## - To find short SLP to the nice generators we avoid 'PseudoRandom(g)'
499500
## and instead just start with the trivial element and multiply random
500501
## generators to it.
@@ -724,7 +725,7 @@ RECOG.ConRecogNaturalSL2 := function(G, f)
724725
## retry until RecogNaturalSL2 returns generators matching the standard form
725726
## TODO: Perhaps remove this for-loop
726727
for i in [1..100] do
727-
res := RecogNaturalSL2(G,q);
728+
res := RECOG.RecogNaturalSL2(G,q);
728729
nicegens :=List(res[1],a->ResultOfStraightLineProgram(a,GeneratorsOfGroup(G)));
729730
diag := nicegens[1];
730731
u1 := nicegens[2];
@@ -794,7 +795,7 @@ end;
794795
test_ConRecogNaturalSL2 := function(input)
795796
local i, G, list, qlist, res_old, res, f, q, valid;
796797
if Length(input) = 0 then
797-
qlist := [2^3, 2^5, 3^4, 25, 17^3, 9967];
798+
qlist := [2^3, 2^5, 3^4, 25, 17^3, 9967, 9967^3];
798799
else
799800
qlist := Filtered(input, IsPrimePowerInt);
800801
fi;
@@ -805,18 +806,14 @@ test_ConRecogNaturalSL2 := function(input)
805806
f := GF(q);
806807
list := [];
807808
for i in [1..5] do
808-
Add(list, RandomInvertibleMat(2,f));
809+
Add(list, Random(SL(2,q)));
809810
od;
810811
G := GroupWithGenerators(list);
811-
if IsEvenInt(q) then
812-
res_old := RECOG.RecogniseSL2NaturalEvenChar(G,f,false);
813-
else
814-
res_old := RECOG.RecogniseSL2NaturalOddCharUsingBSGS(G,f);
815-
fi;
816812
res := RECOG.ConRecogNaturalSL2(G,f);
813+
std := RECOG.MakeSL_StdGens(Characteristic(f),DegreeOverPrimeField(f),2,2);
817814
## compare all generators after change of basis
818815
for i in [1..Length(res.all)] do
819-
if res.all[i]^res.basi <> res_old.all[i]^res_old.basi then
816+
if res.all[i]^res.basi <> std.all[i] then
820817
Print("Test failed for q = ", q, ", index i = ", i, " in the list \"all\" failed\n");
821818
valid := false;
822819
fi;

0 commit comments

Comments
 (0)