Goto Chapter: Top 1 2 3 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

1 The Ferret Package
 1.1 Replacing Built-in functionality
 1.2 Using 'Solve' to solve problems directly

1 The Ferret Package

This chapter describes the GAP package Ferret. Ferret implements highly efficient implementations of a range of search algorithms on permutation groups. If you are interested in if Ferret can be applied to another problem, please contact the authors, who will be happy to look into if your problem can be solved with Ferret.

1.1 Replacing Built-in functionality

Ferret automatically installs methods which replace GAP's a number of GAP's built-in functionality:

If you would like to disable this functionality, you can use 1.1-1.

1.1-1 EnableFerretOverloads
‣ EnableFerretOverloads( [active] )( function )

if active (a bool) is true, then enable Ferret specialisations of Intersection and Stabilizer. Call with active false to disable.

1.1-2 FerretOverloadsEnabled
‣ FerretOverloadsEnabled( )( function )

Return if Ferret specialisations of Intersection and Stabilizer are currently enabled.

1.2 Using 'Solve' to solve problems directly

The main method of using Ferret's functionality is the Solve (2.1-3) method. This method intersects a list of permutation groups. The unusual feature is that these permutation groups can be represented in a variety of ways. They can be usual GAP permutation groups given as a list of generators, or they can be the group which is the stabilizer of combinatorial object under some action. Larger problems are then composed from these pieces. For example, the stabilizer of a set S under a group G can be expressed as the intersection of the group which stabilizes the set S and the group G. For this problem, there would be no point using Solve (2.1-3), as GAP's built in 'Stabilizer' function provides the same functionality. However, with Solve (2.1-3) we can intersect any number of groups at the same time, for example finding the intersection of two groups G and H, the stabilizer of a set S and the stabilizer of a set of sets T, with the following code:

gap> Solve([ConInGroup(G), ConInGroup(H), 
> ConStabilize(S, OnSets), ConStabilize(T, OnSetSets)])

The currently allowed arguments to Solve (2.1-3) are:

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 Ind

generated by GAPDoc2HTML