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