Main Branches

Downloads  Installation  Overview  Data Libraries  Packages  Documentation  Contacts  FAQ  GAP 3 

Frequently Asked Questions

General Obtaining GAP Installation Hardware/OS Usage Complaints Computing with GAP Programming GAP

6. Complaints

6.3: My calculation with matrix groups is slow/runs out of memory.

GAP currently translates essentially every calculation with matrix groups to an isomorphic permutation group. Two possible bottlenecks are:

  1. Intermediate results might get transferred back to matrix form and are immediately converted again in a permutation: Because of this it is often quicker to work in the isomorphic permutation group (obtained via `IsomorphismPermGroup' see the section 'Computing a Permutation Representation' of the GAP reference manual) and only to translate the final result back to matrix form, using the same homomorphism.
  2. GAP finds a permutation representation by acting on a set of vectors. There is no optimal heuristics for choosing these vectors (a necessary condition for faithfulness is that the vectors comprise a basis, but there are many choices). Note that `IsomorphismPermGroup' for matrix groups internally already uses `SmallerDegreePermutationRepresentation' (unless the matrix group is known to contain SL), thus this operation cannot be used to reduce the degree further. If the group is very large, it can be rather beneficial to try to choose such a set of vectors yourself and use `ActionHomomorphism' (see the section  'The Permutation Image of an Action'  of the GAP reference manual) to build the permutation representation.