How to obtain libMC

libMC is distributed in the hope that it will be useful but without any warranty. The authors do not accept responsibility to anyone for the consequences of using it for whether it serves any particular purpose or works at all. No warranty is made about the software or its performance.

A gzipped tarball archive can be downloaded here.

In order to run libMC, gcc version 3.4.3 or higher is recommended. Once a copy of the distribution has been downloaded, unpack it and cd into the libMC directory:

> tar xzvf libMC-0.1.1_gcc4_20070908.tgz
> cd libMC

On distribution, libMC should contain three directories: src, examples, and doc. The code comes with a Doxygen documentation, which can be accessed by opening the file docs/html/index.html with any html interpreter. Also, a number of simple example are provided in the examples subdirectory that should help the user understand how to calculate McCormick relaxations and subgradients. In the src directory is code to build the libMC shared library.

Installing libMC

cd into the src directory, and type:

> make

at the command line. This should build the libMC shared library and create symbolic links to this library in the lib directory. A symbolic link to the header file mccormick.h should also be created in the include directory. Note that the code should compile without warning using gcc version 3.4.3 or higher.

In order to clean the distribution, type:

> make clean

from the src directory. This will delete all object code and libraries. It will not, however, delete any files that may have been added in the examples directory.

Running libMC

Change into the examples directory, and select one of the subdirectories, e.g.

> cd examples/exm0

Type:

> make

at the command line, to create the executable file exm0.exe. This executable can then be run by typing:

> exm0.exe

While the authors acknowledge that both the design and implementation of libMC are far from perfect, the source code for this library is provided so that other researcher may understand the exact algorithms employed and use these tools however they see fit. In fact, we openly encourage other researchers to extend and improve upon this code based on their own endeavors. We would very much like to hear about your experience with it!