### What's new in
lrslib
May 30, 2024

What's new in Version 7.3

What's new in Version 7.2

What's new in Version 7.1
What's new in Version 6.2
(User's
guide for V6.2 and earlier)
What's new in Version 6.1
What's new in Version 6.0

**What's
new in version 7.3**

1. For H/V conversion lrs is now
multi-threaded (no load balancing) using openMP

2. A minimum representation can be computed: hidden linearities
found and made explicit, all redundancy removed

3. mplrs -minrep does full
parallelization for finding a minimum representation

4. mplrs -fel does full parallel
redundancy removal in one step of Fourier-Motzkin elimination

### What's New in Version 7.2

1. Fourier
elimination is now included in lrs/mplrs

2. lrs now runs in 4 modes depending on presence of options:

default: H/V to V/H conversion

redund:
remove redundant lines in input

extract:
remove linearities for H, extract columns for V

project/eliminate:
fourier elimination

3. checkpred/projred
checks for redundancy of halfspaces in the projection of an
H-representation using an SMT solver

4. mplrs renumbers B# when printcobasis is set in lrs causing
global B# numbers to be output

5. maxdepth lrs option implemented in mplrs

6. various shell scripts are now in the scripts directory

plotB produces a plot from mplrs output showing B#
and height for each new vertex/ray/facet output

7. man pages (groff and html versions) are included for most
lrslib operations

### What's New in Version 7.1

1. All C version replaces Version 7.0 (which was a work in progress
and has been removed from distribution)

2. redund programs are replaced by
an option in mplrs/lrs with parallel version now available

3. hybrid (64bit/128bit/GMP) arithmetic implemented: speedups of
roughly 3-5 times (64bit) and 2 times(128bit) over GMP arithmetic
for problems using small integers.

4. overflow checking for 64/128 bit arithmetic

5. __int128 (gcc v.4.6.0 or later) and FLINT arithmetic now
supported

6. lrsgmp, mplrsgmp uses only GMP
arithmetic, same as lrslib-062

7. lrs/mplrs start in 64 bit
moving to 128 bit and then to gmp arithmetic as necessary

8. single arithmetic versions (64bit/128bit/GMP) of lrs/mplrs available for comparison purposes

9. single arithmetic versions of lrsnash
are available with overflow checking

10. extract option in lrs (only)
can be used to eliminate variables in
H-representation and extract columns
in a V-representation

11. hvref program makes a cross reference list between H and V
representations

12. lponly option
extended to include four different pivot rules: Dantzig, Bland,
random edge and combined Dantzig/random edge

13. Communication between mplrs and lrs is by data structures rather
than temporary files

14. plrs is no longer supported

15. removing the -DSAFE option disables overflow checking in 64/128
bit mode and results are unpredicable if overflow occurs

16. mplrs now prints maximum tree
depth at end and supports printcobasis option in input files

### What's New in Version 6.2

**mplrs:** new command-line options,
improved performance on large-output instances, volume output added

### What's New in Version 6.1

**lrs: **memory leaks fixed
**mplrs:** checkpointing after
restart fixed
**nash:** new version of nash driver and new nash library,
mostly by Terje Lensberg, memory leak and earlier bug in nash
fixed

### What's New in Version 6.0

** mplrs:** C wrapper prepared
by Skip Jordan for lrs that allows for parallelization using the
MPI library over a network of multi-core machines. It is derived
from Gary Roumanis' earlier C++ wrapper **plrs**.
**mplrs **includes many
modifications to ensure load balancing.

Installation and usage are described here.

**plrs** is designed for shared
memory machines and should improve on **lrs**
even on dual core machines. **mplrs**
is designed for machines and/or networks with at least 4
processors. (plrs is discontinued from
Version 7.1)

Some additonal options were added to **lrs** in order to help with load
balancing, in particular maxc