---
name: "zimpl"
section: "1"
platform: "linux"
package: "zimpl"
version: "3.3.6-1"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/zimpl"
---

# zimpl(1)

Zuse Institute Mathematical Programming Language

## NAME

zimpl - Zuse Institute Mathematical Programming Language

## SYNOPSIS

**zimpl \[ -b \] \[ -D** *name=value* **\] \[ -f \] \[ -F** *filter* **\] \[ -h \] \[ -m \] \[ -l** *length* **\[ -n** *cm\|cn\|cf* **\] \[ -o** *outfile* **\] \[ -O \] \[ -P** *filter* **\[ -r \] \[ -t** *lp\|mps\|hum\|rlp\|pip* **\] \[ -s** *seed* **\] \[ -v** *0-5* **\] \[ -V \]** *file* **...**

## DESCRIPTION

**Zimpl** is a little language to translate the mathematical model of a problem into a linear or (mixed-)integer mathematical program expressed in LPF or MPS file format which can be read by a LP or MIP solver.

None of the options is necessary. All input files in  **zpl** format that are given are concatenated and processed as if they are one big file. This makes is possible to combine different parts of a model on the command line. In this case the first filename given will be used as basename for the output files in absence of an  **-o** option.

The  **-t** option is to select the output format.  **mps** can be read by every solver.  **lpf** is a CPLEX format, but can also read by several solvers. BE aware that for example Range-rows can not be expressed in  **lpf .** If you would like to inspected the output yourself,  **hum** format is a variant of  **lpf** with no name mangeling whatever, but unfortunately this violates several format restrictions, so no solver will read this in. If **rlp** is specified the output is in  **lpf** format, but rows and columns are randomly permuted.

## OPTIONS

- \-b

  Enable  [**bison**(1)](/bison/1.md) debugging output.

- \-D name=value

  Sets the parameter *name* to the specified value. This is equivalent with having this line in the Zimpl program: param name:=val .

- \-f

  Enable [**flex**(1)](/flex/1.md) debugging output.

- \-F filter

  The output is piped through a filter. A %s in the string is replaced by the output filename. For example:  -F "gzip -c \>%s.gz" would compress all the  output files.

- \-h

  Show program help.

- \-l length

  Sets the maximum length for variable names in LPF output files.

- \-m

  Write a CPLEX .mst Mip STart file.

- \-n cm\|cn\|cf

  Select the format for the generation of constraint names. Can be either  *cm* which will number them  1 ... n with a \`c' in front.  *cn* will use the name supplied in the subto statement and  number them 1 ... n within the statement.  *cf* will use the name given with the subto, then a 1 .. n number like in  *cm* and then append all the local variables from the forall statements.

- \-o outfile

  Sets the base-name for the output files. Default is the name of the input file without extension.

- \-O

  Optimize the generated LP by doing some presolve analysis (experimental).

- \-P filter

  The input is piped through a filter. A %s in the string is replaced by the input filename. For example:  -F "cpp -DWITH\_C1 %s" would pass the input file through the C-preprocessor.

- \-r

  Write a CPLEX .ord branching order file.

- \-s seed

  Set the random number generator seed.

- \-t lp\|mps\|hum\|rlp\|pip

  Selects the output format. Can be either  *lp* which is default, or  *mps* , or *hum* , which is (only) human readable, or  *rlp* , which is randomly permuted, or *pip* , which means polynimial IP.

- \-v 0-5

  Set the verbosity level. 0 is quiet, 1 is default, 2 is verbose, 3 is chatter, and 5 is debug.

- \-V

  Prints the version number.

## DIAGNOSTICS

The following diagnostics may be issued on stderr:

101 Bad filename

The name given with the  **-o option** is either missing, a directory name, or starts with a dot.

175 Illegal syntax for command line define -- ignored

The parameter of a  **-D** option was either not of the form  *name=value* or the name was not a legal identifier.

There are about a hundred other possible error messages, but these are either about the contend of the input file, or system messages.

## BUGS

Please report any bug to the author.

## AUTHOR

Thorsten Koch \<koch@zib.de\>

## WEBSITE

The lastest version of Zimpl is always available at \<http://zimpl.zib.de\>.

## SEE ALSO

The Zimpl User Guide at \<http://zimpl.zib.de/download/zimpl.pdf\>.
