zef man page

zef — convert a matrix to echelon form


zef [Options] <Inp> <Out>


This program reads in a matrix, performs a Gaussian elimination to put the matrix into semi-echelon form, and writes out the result.

A matrix is in semi-echelon form, if the first non-zero entry in each row entry is a 1, and all entries exactly below that 1 are zero. Here is an example:


A matrix is in (full) echelon form if the rows are further permuted so that the first non-zero entry in each row is later than the first non-zero entry in all previous rows.  There is no real need to do this row permutation in the MeatAxe system, and the permutation is not done by this program.

At the end, the matrix may have fewer rows than it started with, since the rows may have been linearly dependent.  The rows of the output matrix are always linearly independent and span the same space as the rows of the input matrix.  A message:

RANK nnn

is printed at the end of the run to notify the operator of the size of the output matrix.  This program may be used to find the rank of matrix, being faster than the null-space program.  There is no need for the input matrix to be square, and the output may also not be square.



Quiet, no messages.


Verbose, more messages.

-T <MaxTime>

Set CPU time limit


Produce output in GAP format.  This option implies -Q.

Input Files


The matrix.

Output Files


The reduced matrix.

Referenced By


2.4.24 MeatAxe User Commands