SharedMeatAxe  1.0
The Shared C MeatAxe


The SharedMeatAxe is a dynamic (shared) library together with a set of programs for working with matrices over finite fields. It is a fork of the C MeatAxe, and differs from it mainly by the implementation of asymptotically fast matrix multiplication and by providing a dynamic (as opposed to static) library and an autotoolised build system.

MeatAxe's primary purpose is the calculation of modular character tables, although it can be used for other purposes, such as investigating subgroup structure, module structure etc. Indeed, there is a set of programs (see The Lattice Programs) to compute automatically the submodule lattice of a given module.

Each of the programs is self-contained, reading its input from files, and writing its output to files. To make the MeatAxe usable, therefore, it is necessary to write operating system commands to run the various programs. This documentation is primarily for the programs, and further documentation is necessary for the various implementations in differing operating environments.

The primitive objects are of two types: matrices and permutations. Permutation objects can be handled, but not as smoothly as you might expect. For example, it is hoped that programs such as split (zsp) and multiply (zmu) will be able to work with mixed types, but at present ZSP is restricted to matrices only, and ZMU can multiply a matrix by a permutation, but not vice versa.


The source tarball can be found here, and then the installation procedure follows the usual pattern:

  • tar -xf shared_meataxe-1.0.tar.gz
  • cd shared_meataxe-1.0
  • ./configure –prefix=/path/to/installation/location
  • make
  • make install
  • make check
    (optional, but recommended)
  • make doc
    (if Doxygen is installed and you want to build the documentation)

See the INSTALL file in the tarball for more details.

Supported platforms

The SharedMeatAxe uses autotools and should thus run on most UNIX platforms including Linux, NetBSD, Ultrix, Solaris, HP-UX.

Users of the SharedMeatAxe on a non-UNIX platform should be aware that their operating system may impose some additional restrictions on the programs. For example, the length and syntax of file names may be more restricted as in UNIX, and CPU time information may not be available or incorrect.

Remarks on the C implementation

Most of the programs (including their documentation) in this package are based on the FORTRAN code written by Richard A. Parker. The translation from FORTRAN to C was done in 1989 and since then both versions have developed independently. The user interface of the C programs has been changed significantly (e.g., command line arguments were introduced) and some new programs have been added which are not available in the FORTRAN MeatAxe.

The objective of this suite of programs is research, so that where simplicity and power are in contention, power is selected. Nevertheless, I have tried to make the programs as straightforward and user-friendly as possible. Moreover, the source code is freely available, so be free to change any parts you are annoyed with.

Some notes on the documentation

The MeatAxe documentation was originally written in LaTeX and is currently being migrated to Doxygen. Until this task is finished the hypertext documentation you are currently reading may be incomplete.

The MeatAxe documentation is split into two parts. The first part (User's Guide) is aimed at users who do not intend to modify the source code nor use the MeatAxe in their own programs.

Users interested in programming with the MeatAxe and MeatAxe internals in general will find the second part, Programmer's Guide.

SharedMeatAxe 1.0 documentation, generated on Sat Dec 30 2017 12:13:34