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:

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.

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.
