'\" t
.\" Title: LRSLIB
.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 06/10/2020
.\" Manual: lrslib 0.42b
.\" Source: July 2009(rev. June 2020)
.\" Language: English
.\"
.TH "LRSLIB" "1" "2020.06.10" "July 2009" "lrslib 7\&.1"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
lrslib: Convert between representations of convex polyhedra, remove redundant inequalities,
convex hull computation, solve linear programs in exact precision,
compute Nash-equibria in 2-person games\&.
.SH "SYNOPSIS"
.HP \w'\fBlrs\fR\ [input-file] [output-file]\ 'u
\fBlrs\fR\ \fI[input-file] [output-file]\fR
.HP \w'\fBredund\fR\ [input-file] [output-file]\ 'u
\fBredund\fR\ \fI[input-file] [output-file]\fR
.HP \w'\fBmpirun\fR -np \fInum_proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options...]\fR\ 'u
\fBmpirun\fR -np \fInum-proc\fR \fBmplrs\fR\ \fIinput-file [output-file] [options]\fR
.HP \w'\fBlrsnash\fR\ [input-file] \ 'u
\fBlrsnash\fR\ \fI[options] [input-file] \fR
.HP \w'\fBhvref/xref\fR\ [input-file] \ 'u
\fBhvref/xvref\fR\ \fI[input-file]\fR
.SH "DESCRIPTION"
.PP
A polyhedron can be described by a list of inequalities (\fIH\-representation)\fR
or as by a list of its vertices and extreme rays (\fIV\-representation)\fR\&.
\fIlrslib\fR is a C library containing programs to manipulate these representations.
All computations are done in exact arithmetic.
.PP
\fIlrs\fR
converts an H\-representation of a polyhedron to its V\-representation and vice versa,
known respectively as the
\fIvertex enumeration\fR
and
\fIfacet enumeration\fR problems\& (see Example (1) below).
lrs can also be used to solve a linear program, remove linearities from a system,
and extract a subset of columns.
.PP
\fIredund\fR
removes redundant inequalities in an input H-representation and outputs the remaining inequalities\&.
For a V-representation input it
outputs all extreme points and extreme rays. Both outputs can be piped directly into \fIlrs\fR.
\fIredund\fR is a link to \fIlrs\fR which performs these functions via
the \fBredund\fR and \fBredund_list\fR options.
.PP
\fImplrs\fR
is Skip Jordan's parallel wrapper for \fIlrs/redund\fR.
.PP
\fIlrsnash\fR
is Terje Lensberg's application of \fIlrs\fR for finding Nash-equilibria
in 2-person games\&.
.PP
\fIhvref/xvref\fR\ produce a cross reference list between H- and V-representations.
.SH "ARITHMETIC"
From version 7.1 \fIlrs/redund/mplrs\fR use hybrid arithmetic with overflow checking,
starting in 64bit integers, moving to 128bit (if available) and then GMP.
Overflow checking is conservative to improve performance:
eg. with 64 bit arithmetic, a*b triggers overflow if either a or b is at least 2^31,
and a+b triggers an overflow if either a or b is at least 2^62.
Typically problems that can be solved in 64bits run 3-4 times faster than with GMP
and inputs solvable in 128bits run twice as fast as GMP.
.PP
Various arithmetic versions are available
and can be built from the makefile:
.SH "NOTES"
.PP
User's guide for lrslib
.RS 4
\%http://cgm.cs.mcgill.ca/~avis/C/lrslib/USERGUIDE.html
.RE
.SH AUTHOR
David Avis
.SH "SEE ALSO"
.BR lrs (1),
.BR mplrs (1),
.BR lrsnash (1),