Since it was ported from FORTRAN to C in 1989 the MeatAxe has been freely available, including source code, under the terms of the GNU general public license.
Users are encouraged to extend or modify the programs as needed. Indeed, most of the recent improvements and additions to the MeatAxe are the result of users' reports, requests, and experiments.
This documentation is intended to provide the information you need to write your own MeatAxe programs or to modify existing ones. Since the software is changing continuously the documentation is necessarily incomplete and not everywhere correct. So, even with this manual, you should be prepared to look in the source code, which is always the ultimate reference. Starting with release 2.3 I have tried to merge documentation and source code, which should help to keep the documentation more up-to-date.
Internally, the MeatAxe is built in several layers where each layer uses services provided by the lower layers.
- Layer 1 - Kernel
- Layer 2 - Objects
- This layer encapsulates low-level functionality in "objects" like matrices, permutations, and polynomials. It also provides the elementary operations with these objects like, for example, matrix multiplication.
- Layer 3 - Algorithms
- This layer provides more complex operations which typically involve several objects. The spin-up and split functions are examples for this layer.
Throughout this documentation, layers 1 to 3 are referred to as the "MeatAxe library". Indeed, these layers are implemented as a static library.
- The program layer
- The top layer includes the MeatAxe programs and shell scripts like zad, zmu, chop, ... See Program Index for detailed descriptions.