* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* This file is part of the class library *
* SoPlex --- the Sequential object-oriented simPlex. *
* *
* Copyright (C) 1996 Roland Wunderling *
* 1996-2017 Konrad-Zuse-Zentrum *
* fuer Informationstechnik Berlin *
* *
* SoPlex is distributed under the terms of the ZIB Academic Licence. *
* *
* You should have received a copy of the ZIB Academic License *
* along with SoPlex; see the file COPYING. If not email to soplex@zib.de. *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
1. All the documentation is available online at
http://soplex.zib.de
You can also generate it, if you have Doxygen installed by
typing 'make doc'. It will then be in doc/html/index.html.
On some systems, it might be necessary to use 'gmake' instead
of 'make'.
2. Compiling
Read the documentation!
a) New CMake system:
CMake is the recommended build system. It should configure your
build automatically according to your environment and the available
third-party libraries.
Follow the guidelines of a typical CMake project (http://cmake.org/):
create a build directory:
`mkdir build`
configure the build from within that directory (cd build):
`cmake <SoPlex-root>`
compile according to the set options:
`make` or `cmake --build .`
List available options and corresponding descriptions for CMake:
cmake <SoPlex-root> -LH
b) Old Makefile system:
On systems with GNU g++ : make COMP=gnu OPT=opt (default)
Linux/x86 with Intel C++ : make COMP=intel OPT=opt
Tru64 with Compaq C++ : make COMP=compaq OPT=opt
Solaris with SUN Forte C++: make COMP=sun OPT=opt
IRIX with SGI Mips Pro C++: make COMP=sgi OPT=opt
HP-UX with HP aCC : make COMP=hp OPT=opt
AIX with VisualAge C++ : make COMP=ibm OPT=opt
Then type make COMP=<as before> OPT=<as before> test.
This should report no fails. (Requires a basic Python installation.)
If ZLIB is not available, building may fail. In this case try
make COMP=<as before> OPT=<as before> ZLIB=false
which will deactivate the possibility to read gzipped LP and MPS files.
3. Working with the 1.x interface / Compiling without the C++11 standard
We use the feature of explicit conversion operators introduced by the
C++11 standard. If your compiler does not support this, or if for other
reasons you wish to use the old SoPlex 1.x interface, you can build with
make COMP=<as before> OPT=<as before> LEGACY=true
or define "SOPLEX_LEGACY" for the compiler preprocessor. Note that this will
deactivate iterative refinement, see point 4.
4. Compiling SoPlex with GMP
For using SoPlex as an exact rational LP solver, SoPlex must be compiled
with support for the GNU Multiple Precision library (http://www.gmplib.org/)
for this. If GMP is not available, you can deactivate it by building with
make COMP=<as before> OPT=<as before> GMP=false.
If you use a different build system than the provided Makefile and
want to build with GMP support, you need to define "SOPLEX_WITH_GMP"
for the preprocessor and link with the GMP callable library.
On some MAC systems, GMP is installed under /sw/include and /sw/lib.
If these are not contained in your library and include paths, you have
to add them explicitly.
Note for building SCIP with SoPlex: If SoPlex was built with GMP=true,
then SCIP also needs to be built with the same option GMP=true (default).
5.1 Using SoPlex standalone
Start one of the binaries in the bin directory with the -h flag.
5.2 Using the library
Examples on how to use the SoPlex library are provided in the files
'src/soplexmain.cpp' and 'src/example.cpp'.
6. Bug reports
If you find any bugs, or LP-files where SoPlex fails to find the
optimal solution, please report to {gleixner,miltenberger,koch}@zib.de.
7. Publications
Any publication for which SoPlex has been used must include an
acknowledgement and a reference to the latest SCIP Optimization Suite report:
Maher et al.
"The SCIP Optimization Suite 4.0",
http://www.optimization-online.org/DB_HTML/2017/03/5895.html
If you use SoPlex as an exact rational LP solver, please cite
the references
Ambros M. Gleixner, Daniel E. Steffy, Kati Wolter,
"Improving the Accuracy of Linear Programming Solvers with Iterative
Refinement",
Proc. of ISSAC '12, pages 187--194, 2012, available as ZIB-Report 12-19
under http://nbn-resolving.de/urn:nbn:de:0297-zib-15451
Ambros M. Gleixner, Daniel E. Steffy, Kati Wolter.
"Iterative Refinement for Linear Programming",
ZIB-Report 15-15, Zuse Institute Berlin, 2015, available under
http://nbn-resolving.de/urn/resolver.pl?urn:nbn:de:0297-zib-55118