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.