# zcf man page

zcf — change field

## Synopsis

**zcf** [Options] *<Field> <Input> <Output>*

## Description

This program converts between various data types. Currently there are two kinds of conversions available:

- ·
- If
*Input*is a matrix, then*Field*is changed to GF(*q*). The current field of the input file must be a subfield or a superfield of GF(*q*). In the latter case, all matrix entries must be in GF(*q*). - ·
- If
*Input*is a permutation of degree n, it is converted into the corresponding n times n permutation matrix over GF(*q*).

In either case, the result is written to *Output*.

## Options

**-Q**- Quiet, no messages.
**-V**- Verbose, more messages.
**-T***<MaxTime>*- Set CPU time limit

## Implementation Details

For matrices, the conversion is done in two steps. First, all entries of the matrix are converted to integers. Then, they are mapped to the new field and reassembled into rows. The result is written out row by row.

In case of permutations the output matrix is generated row by row by inserting ones at the positions specified by the permutation.

If the input is a matrix, the whole matrix must fit into memory. Additionally, the program needs n·m·s bytes of memory, where m and n are the dimensions of the input matrix and s=1 for the small arithmetic version and s=2 for the big version. In case of permutations, the input permutation and one row of the output file must fit into memory.