MeatAxe
2.4

zmo Options [g NPerms] [s Seed] Perm Orbits
This program calculates the orbits under a set of permutations. By default, the program works with two permutations which are read from Perm.1 and Perm.2. Using the ‘g’ option you can specify a different number of permutations (using the same file name convention). For example,
zmo g 3 p orbs
reads three permutations from p.1, p.2, and p.3. All permutations must have the same degree.
The result is written to Orbits and consists of two parts:
The algorithm uses a fixed size stack to store points. At the beginning, a seed point is searched which has not yes assigned an orbit number. This point is assigned the next orbit number (beginning with 0) and put on the stack. The main part consists of taking a point from the stack and applying all generators. Any new points obtained in this way are assigned the same orbit number and put on the stack. This step is repeated until the stack is empty, i.e., the orbit is exhausted. Then, the next seed point is seached, and its orbit is calculated, and so on, until all orbits are found. By default, the first seed point is 1. A different seed point may be selected with the "s" option.
The number of permutations must be less than 50. All permutations must fit into memory at the same time. Also the stack size is limited to 100000 positions.