* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*                                                                           *
*                  This file is part of the class library                   *
*       SoPlex --- the Sequential object-oriented simPlex.                  *
*                                                                           *
*    Copyright (C) 1996      Roland Wunderling                              *
*                  1996-2011 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!

        For the impatient:

        On systems with GNU gcc4.2
        and greater               :  make COMP=gnu OPT=opt-gcc42
        On systems with GNU g++   :  make COMP=gnu OPT=opt
        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 get and unpack in the check directory the Netlib testset from
        http://soplex.zib.de/download.shtml
        and say make COMP=<as before> OPT=<as before> check
        This should report no fails.

        Now read the documentation!


3.      Compiling SoPlex with GMP to use iterative refinement

        From version 1.7 on, SoPlex provides the new feature iterative
        refinement to compute extended-precision solutions. For details,
        see ZIB report 12-19 available at

        http://opus4.kobv.de/opus4-zib/frontdoor/index/index/docId/1545

        This feature is still in development and deactivated by default.
        To enable iterative refinement, SoPlex requires the GNU Multiple
        Precision library (http://www.gmplib.org/) and must be compiled with
        option GMP=true, e.g., make COMP=<as before> OPT=<as before> GMP=true.

        If you use a different build system than the provided Makefile, you need
        to add the define "-DSOPLEX_WITH_GMP" and link with flags "-lgmp -lgmpxx".
        Note that SoPlex uses the C++ interface of GMP, hence the C library libgmp
        is not sufficient.

        For more help on using iterative refinement, see the section in the
        Doxygen documentation available online at http://soplex.zib.de/.


4.      Compiling SoPlex for usage in SCIP

	In general, in order to use SoPlex as LP solver in SCIP, i.e., to build
        SCIP with make LPS=spx [...], SoPlex should simply have been built
        using the same make options [...] as in SCIP.

        However, care must be taken with GMP support: The new iterative
        refinement feature in SoPlex is still in development and most SCIP
        users will not want to activate it.  They should compile SoPlex without
        GMP, which is the default, see Point 3 above, and SCIP with GMP included
        or not, as wished.

        If SoPlex was built with GMP, then it requires GMP's C++ interface
        library libgmpxx. In this case, if building SCIP with SoPlex, the
        linker flag "-lgmpxx" must be appended to USRLDFLAGS, i.e., SCIP must
        be built with make LPS=spx USRLDFLAGS=-lgmpxx [...].


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 is provided in the files
        'src/soplexmain.cpp' and 'src/simpleexample.cpp'.


6.      Bug reports

        If you find any bugs, or LP-files were SoPlex fails to find the
        optimal solution, please report to koch@zib.de.


7.      Publications

        Any publication for which SoPlex has been used must include an
        acknowledgement and a reference to the Ph.D. thesis:

        Roland Wunderling,
        "Paralleler und Objekt-orientierter Simplex-Algorithmus",
        ZIB technical report TR 96-09, Berlin 1996

        A copy of the thesis can be retreived from
        www.zib.de/Publications/abstracts/TR-96-09/
