Repthy
Repthy is a freeware Java package for finite groups and the characters
of their representations over the complex numbers. It has been
under development since Spring 2003.
Features
- Finds the complete character table of a group. Finds Sylow
p-subgroups for any p. Finds composition series,
and tests for
simplicity. This applies to any finite group, subject to the
32-bit size limitation mentioned below.
- Handles subgroups, direct products, quotient groups, abelian
groups (rewriting them as a product of cyclics), p-groups,
elementary subgroups, permutation groups, orders, conjugacy
classes, centralizers, commutator subgroups, and Hecke algebras.
- Handles homomorphisms as first-class objects. Thus it works in
the category of finite groups. Subgroups, direct products and
quotients use this framework.
- Built-in examples of groups include cyclic groups, dihedral
groups, Sn and An.
The linear groups GL, SL, PGL, and PSL are
supported over the prime fields Z/(p).
- Operations on characters include sum, difference, tensor,
Sym2, Λ2,
dual, induction from subgroups, restriction to subgroups,
inner product, decomposition as a sum of
irreducibles, and kernel.
- Compatible with Java's Collections framework. A group is a Set of
elements, in Java's powerful sense of the word Set.
Limitations
- The order of a group is limited to the 32-bit
int
data type. This
limits it to about two billion.
- Users must have the number theory package GP-Pari on their system. The principal Repthy functions
will call out to Pari in a separate process. This limitation will
be removed in a later release.
- Repthy is far less complete than
Gap or
Cayley/Magma,
and in some cases has less sophisticated algorithms.
Download
Download the Java source code and documentation.
Download repthy.jar, which contains the runtime Java classes.
Here are three ways to learn more about the package.
-
Download
repthy.jar and run the
demo with
java -jar repthy.jar
On Windows and some other operating systems, you can simply
double-click on the repthy.jar icon. (The demo may
fail on non-Windows systems.)
-
Open the documentation at
doc/index.html in a browser.
Start with the articles on Group, GroupElt, GpCharacter and Homomorphism.
-
If you prefer to read source code, start with the
main methods in PSL.java (the demo) or Group.java.