On Fri, Feb 24, 2012 at 04:39:04PM -0600, Goodson, Joshua E wrote: > Dear Forum, > > I wanted to thank everyone for there wonderful suggestions. I am afraid I > forgot to mention > that when I count the orbits I also wish to count the orbits of any > particular size. For example, > I would want to count the number of regular orbits. My apologies for not > mentioning that before. > Will these methods allow me to count orbits of any size. > > Thank you and again I apologize for my lack of specificity. > > ~Joshua Goodson
Dear Joshua Goodson, dear Forum, Finding the multiplicities of the orbit lengths seems much more difficult. But your particular example is not so big, the vector space GF(7)^9 has only about 40 million vectors. Below I append some lines to the code from my last mail that computes what you want in a few minutes while GAPs memory consumption stays small. Use GAP's help system to understand what the code does. Note that the code from my last mail to find the total number of orbits using the character table also works for considerably larger groups and vector spaces (which is not true for the new code below). With best regards, Frank Lübeck # we already had this part to find the total number of orbits: g := ExtraspecialGroup(3^5,'+'); r := IrreducibleRepresentations(g,GF(7));; List(r, h-> DimensionOfMatrixGroup(Image(h))); g1 := Image(r[1]); one := One(g1); numorbs := 1/Size(g1) * Sum(ConjugacyClasses(g1), c-> Size(c) * 7^(9-RankMat(Representative(c)-one))); # now we find the orbits with explicit enumeration, but with some bookkeeping # such that we never have more than about |g| vectors in memory vsp := GF(7)^9; enum := Enumerator(vsp); found := BlistList([1..Size(vsp)], []);; sizes := 0*[1..Size(g1)];; for i in [1..Size(vsp)] do if not found[i] then orb := Orbit(g1, enum[i]); for v in orb do found[NumberFFVector(v,7)+1] := true; od; sizes[Length(orb)] := sizes[Length(orb)] + 1; fi; # show progress and stop when numorb orbits were found if i mod 100000 = 0 then if Sum(sizes) = numorbs then break; fi; Print(i/100000, " (",Sum(sizes),") \c"); fi; od; # result, numbers of orbits of size 1, 3, 9, 27, 81, 243 sizes{List([0..5],i->3^i)}; ## PS: The result is ## '+' case: [ 1, 0, 0, 80, 400, 165922 ] ## '-' case: [ 1, 0, 0, 8, 154, 166012 ] -- /// Dr. Frank Lübeck, Lehrstuhl D für Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: frank.lueb...@math.rwth-aachen.de /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum