/* Computes the locally free class group and the kernel group for many small groups G. We do not consider abelian groups. We also do not consider orders o with "large" prime factors, because in this case we will have large character fields. We print "ALARM", if the D-group is trivial and G is not dihedral, because by [CR, (50.29)] we know exactly the groups G for which D is trivial. */ orders := [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,18,20,21,22,24,25,26,27,28, 30,32,33,34,35,36,38,39,40,42,44,45,48,49,50, 52, 54, 55, 56, 60, 63, 64,72]; DB := SmallGroupDatabase(); filename := "SmallGroups.out"; for o in orders do for i:=1 to NumberOfSmallGroups(o) do G := SmallGroup(DB, o, i) ; if not IsAbelian(G) then C := LocallyFreeClassgroup(G, false); A := C`cl; D := C`D; fprintf filename, "o = %o, i = %o: cl(ZG) = %o\n D = %o\n\n", o, i, A, D; if #A eq 1 and not IsDihedral(G) then fprintf filename, "!!!!!!!!!!!!!!!!ALARM,ALARM,ALARM!!!!!!!!!!!!!!"; end if; if not (#A eq #D) then fprintf filename, "D NOT EQUAL clA\n"; end if; fprintf filename, "******************************************************\n"; end if; end for; end for;