-
Notifications
You must be signed in to change notification settings - Fork 3
Home
.
SACK is a command-line program for doing some elementary computations on small finite groups: printing cayley tables, finding element orders and max orders, and so on. I wrote it in grad school, back in 2003-2005 or so, when I found my abstract-algebra courses to be just a little too abstract for my concrete tastes.
More documentation is at http://johnkerl.org/doc/kerl-pyaa.pdf
You can use "sack --help" for on-line help:
shell-prompt $ sack --help
Usage: ./sack {group type} {command} {command arguments ...}
Example: "./sack d:4 center ."
Group types: T a ai cl2 d ispec metacyc modadd modmul pauli q q8 s si spec v4
Commands: abelian add associative caytbl center close closed commutator
conj_classes cyclic cycsgr cycsgrs derived elts eorder exp find_id
has_inverses has_unique_id inverse inverses isgroup max_order mul nilpotent
order orders solvable subgroup
Your $PYTHONPATH
should include the directory where you installed this file.
The group types and commmands are listed above. To get information about the arguments needed for a particular command, omit them. For example:
shell-prompt$ sack s:4 center
center: 1 argument(s) needed; got 0.
Most commands take a "." argument meaning "operate on all group elements". For example (center of dihedral group on four vertices):
shell-prompt$ sack d:4 center .
0,0
2,0
All permutations on four points:
shell-prompt$ sack s:4 elements .
1
1,4
1,3
1,2
2,4
2,3
3,4
1,4,3
1,4,2
1,3,4
1,3,2
1,2,4
1,2,3
2,4,3
2,3,4
1,4:2,3
1,3:2,4
1,2:3,4
1,4,2,3
1,4,3,2
1,3,2,4
1,3,4,2
1,2,4,3
1,2,3,4
Other commands take group elements as arguments. For example, the composition of the permutations (1 2 3) and (2 3 4) is (1 2)(3 4):
shell-prompt$ sack s:4 mul 1,2,3 2,3,4
1,2:3,4
#See also SACK does for small finite groups what RUFFL does for finite fields (https://github.com/johnkerl/ruffl).
The input/output notation are more programmer-friendly than user-friendly; I wrote this program for myself to satisfy (in part) my preference for plain text I/O. Also, I intended this program to be self-educational; for information about how it works I tend to use the code itself as documentation.
I don't expect too many people will find SACK useful -- on the other hand it might happen to be just what you're looking for. Enjoy!
This software is released under the terms of the GNU GPL. Please see LICENSE.txt in the same directory as this file.
John Kerl kerl.john.r@gmail.com 2007-05-31