MeatAxe: The C MeatAxe

MeatAxe 2.4

- Main Page
- Related Pages
- Modules
- Data Structures

The C MeatAxe

## Introduction

The MeatAxe is a set of programs for working with matrices over finite fields. Its 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.

## 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.

## Supported platforms

The MeatAxe should run on most UNIX platforms including Linux, NetBSD, Ultrix, Solaris, HP-UX, and on Windows NT. Other platforms as MS-DOS, VM/CMS and VMS are not officially supported, but it should not be too difficult to compile and run the programs on those systems.

Users of the MeatAxe 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.

## Some notes on the documentation

Attention:
  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.