# zev man page

zev — compute matrix eigenvalues

## Synopsis

**zev** [Options] *<Matrix>* [*<Poly>* [*<Group>*]]

## Description

This program reads a matrix from *Matrix* and a list of polynomials from *Poly* (or from the standard input). For each input polynomial, it evaluates that function of the input matrix, calculates the nullity, and puts out this nullity, divided by the degree, along with a text from the input.

The program was specifically designed to assist in the calculation of the Brauer characters of diagonalizable matrices, with the text giving the complex number which is the Brauer character of the companion matrix for that polynomial. Usually the polynomials have been prepared in a separate data file and are fed into **zev** by giving the file name or by redirecting its input. The preparation of the input polynomials is generally a time-consuming task if it is done by hand, but there are data files available for the most commonly used fields. These files should be located in the library directory. They are distributed with this release of the C MeatAxe. If the user is familiar with the computer program system GAP, he will find it easy to create his own data files.

If the nullity is not a multiple of the degree, **zev** prints a warning message.

### Polynomial File Format

The data file contains the polynomials in text form. Several polynomials can be comprised in a group, and the data file can contain any number of groups of polynomials. This allows several sets of polynomials to be kept in one data file (for example, all polynomials for a given field), the appropriate polynomials being selected through the *Group* argument on the command line.

The file is read and interpreted line by line. There are three types of lines:

- ·
- Comment lines, beginning with a "#". These lines are simply ignored by
**zev**, as are empty lines. - ·
- Group headers. Each line beginning with a non-space character is interpreted as the beginning of a new group of polynomials. Such lines contain only one text field, the name of the group (up to 1023 characters).
- ·
Lines beginning with a space are interpreted as polynomials. The format is:

[space]

*Name Coefficients*where

*Name*is any text (up to 1023 characters), and*Coefficients*are the coefficients of the polynomial (in free format). Note that the first character must be an ordinary space charcter, a TAB is not allowed! The coefficients must use the names as specified by the arithmetic — usually 0, 1, ..., q-1. The one exception is -1, which the program treats specially as "0-1" so that the cyclotomic polynomials can be used over all fields. The coefficients are in decreasing degree, starting with the coefficient of the highest power of x and continuing, ending up with the constant term.

Here is an example:

# Sample input file for zev

# Some polynomials over GF(5)

#

p11b11

1 1 4

b11 1 4 4 1 3 4

-1-b11 1 2 4 1 1 4

p13c13

1 1 4

c13 1 3 0 3 1

c13*3 1 1 4 1 1

c13*9 1 2 1 2 1

This file contains 7 polynomials in two groups. The polynomial "b11" in group "p11b11" is x^5+4x^4+4x^3+x^2+3x+4.

### Output Format

There are two output formats. By default the nullities are printed in tabular form giving group, name, degree and multiplicity (i.e., nullity divided by degree) for each polynomial. If the -G option is given, **zev** prints an algebraic expression which can be read from GAP. Here is an example with an 8 by 8 matrix over GF(3), polynomials being read from "poly3":

$ zev mat poly3 p8i2

p8i2 1 1 1

p8i2 -1 1 4

p8i2 0 2 2

p8i2 i2 2 0

p8i2 -i2 2 1

$ zev -G mat poly3 p8i2

MeatAxe.BrauerChar := 1*(1) + 4*(-1) + 2*(0) + 1*(-i2);

Note that "i2" does not appear in the expression because its coefficient is zero.

## Options

**-Q**- Quiet, no messages.
**-V**- Verbose, more messages.
**-T***<MaxTime>*- Set CPU time limit
**-G**,**--gap**- Produce output in GAP format. This option implies -Q.

## Implementation Details

There must be enough memory to hold the input matrix and two more matrices of the same size. Lines in the polynomial input file must not be longer than 1023 characters.

It is not checked that the input file is a matrix. TAB characters at the beginning of a line are not interpreted as space.

## Input Files

*Matrix*- A square matrix.
*Poly*- Polynomial definition file; read from standard input by default.