LoadPackage("orb"); LoadPackage("genss"); ComputeStabiliserMC := function(g,x,op,N) local h,i,l,o,p,pr,w,y; Print("Enumerating orbit...\n"); o := Orb(g,x,op,rec( treehashsize := 100000, report := 100000, schreier := true )); Enumerate(o); Print("done, computing generators for stabiliser...\n"); pr := ProductReplacer(g); l := []; for i in [1..N] do h := Next(pr); y := op(x,h); p := Position(o,y); if p <> 1 then w := TraceSchreierTreeForward(o,p); Add(l,h / Product(GeneratorsOfGroup(g){w})); else Add(l,h); fi; od; Print("done.\n"); return l; end;