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 ] ;
794795test_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