SoPlex Doxygen Documentation
Installation

Prerequisites

You need the following programs to compile SoPlex:

After receiving SoPlex you have to uncompress it with gzip (http://www.gnu.org/software/gzip) and unpack it with tar (http://www.gnu.org/software/tar) into a directory. Then change to that directory.

Linux/x86, Linux/AXP, Darwin, Tru64, Solaris, IRIX, HP-UX

If you are working under one those OSes you should try the following:

gmake COMP=xxx OPT=yyy

with xxx being one of gnu, intel, sun, hp, sgi, compaq or ibm and yyy one of dbg (if you want the debug version) or opt (if you want the optimized version).

This should generate a binary in the bin subdirectory.

If the previous section was not for you

First the Makefile tries to find out the OS and the architecture by using the uname command. If your OS or architecture is missing, please update the Makefile and submit the change to me.

Then a submakefile from make/make.OS.ARCH.COMP.OPT is included in the main Makefile. You should adapt the compiler flags as needed. Be especially careful with the AR setting since some C++ compilers do not like using the standard ar program together with code that uses templates.

If this all does not work, change to the src directory and type

CC *.cpp

This should do the trick. Adding -DNDEBUG gives you a non debugging version. Add flags as needed.

Testing the Binary

After you compiled the binary you should download the Netlib LP files at http://www.zib.de/Optimization/Software/Soplex/netlib.tar.gz and unpack them in the check directory. Then you can try

gmake COMP=xxx OPT=dbg quick

gmake COMP=xxx OPT=opt quick

gmake COMP=xxx OPT=opt check

Use the check target together with OPT=dbg only if you have really a lot of time. quick should run in a few minutes and check will need between less than one hour and a day, depending on your machine.

quick should report no fails at all. check should report no fails in the LC and EC columns and in the LR and ER columns only with the instances greenbea, greenbeb, pilot-ja or pilot87. One or two fails is normal, above four is probably a problem with the compiler. Look how big the error is. Try again with less optimization. Our results are available at http://www.zib.de/Optimization/Software/Soplex/results to compare with.

Generating the documentation

If you have doxygen (and dot) installed, you just can say

gmake doc

After that the documentation should be in doc/html.

Installation

The binary is in the bin directory, the library in lib and all headers are in src. Feel free to install them at a suitable place.

Naming of the OPT Variable

  • dbg (debugging) -DNDEBUG is not set. Optimization is mostly off and debugging info is generated.
  • std (standard) -DNDEBUG is set. All optimizations may be switched on that do not alter the floating point behaviour or may otherwise by result in wrong code.
  • opt (optimized) -DNDEBUG is set. All optimizations may be switched on, as long as the code seems to run correctly. The code should run on the relevant architectures. Best is something like -fast that uses the right optimizations for the architecture that is used.
  • opt-XXX (optimized for XXX) like opt-p4. This includes optimization for a specific processor.
  • prf (profile) like opt, but generate profile data.
  • XXX-ld (long-double) same as XXX but with long doubles.