On Mon, May 03, 2010 at 10:42:03AM +0100, Sandeep Murthy wrote: > The programs work fine for groups of order n <= 27, but not for n >= 28 - GAP > says that a > loop cannot over a range >= 2^28. Is this an absolute limit, or is this > machine dependent?
Dear Sandeep Murthy, dear Forum, Here are a few general remarks about ranges [a..b] in GAP. These are (currently) implemented with some machine dependend restrictions: The integers a and b and the length of the range must have absolute value < 2^28 if GAP is compiled for 32-bit systems, and < 2^60 if GAP is compiled for 64-bit systems. The reason for this limitation is efficiency of loops over such ranges. So, in your case I suggest two possible solutions: (1) Use the 64-bit version of GAP on a 64-bit system. With a limit of 2^60 you run into other problems before asking for larger ranges. (2) Don't use a range in your loop, e.g.: i := 1; while i < 2^28-1 do od; needs about 40 seconds on my computer compared to for i in [1..2^28-1] do od; which takes about 5 seconds. So, the additional overhead in the while-loop is probably neglectible if the body of your loop is not empty. In the while-loop there is no restriction on the integer you compare to, so 'while i < 2^32 do ...' is no problem. Side remark: Very often it is still sensible to use a 32-bit version of GAP, even on a 64-bit system because it is more memory efficient and often slightly faster (depends on what exactly you are doing), see also the comment at: http://www.math.rwth-aachen.de/RsyncLinuxGAP/index.html#32versus64 Best regards, Frank -- /// 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