\begin{PageSummary}
\PageName{Downloading \Bonmin}
\PageSection{Obtaining \Bonmin}{sec:obtain}
\PageSection{Obtaining required third party code}{sec:obtain_3rd}
\end{PageSummary}

\begin{quickref}
\quickcitation{Bonmin Wiki Pages}{\linkCoin Bonmin}
\quickcitation{subversion web page}{http://subversion.tigris.org/}
\quickcitation{Using subversion on windows}{http://www.coin-or.org/faqs.html\#q4}
\quickcitation{Linear Algebra PACKage}{http://www.netlib.org/lapack/}
\quickcitation{Basic Linear Algebra Subroutines}{http://www.netlib.org/blas/}
\quickcitation{Harwell Subroutine Library}{http://www.cse.clrc.ac.uk/nag/hsl/contents.shtml}
\quickcitation{Mumps}{http://mumps.enseeiht.fr/}
\quickcitation{AMPL Solver Library}{http://www.ampl.com}
\end{quickref}

\PageTitle{Obtaining \Bonmin}{sec:obtain}



The \Bonmin\ package consists of the source code for the \Bonmin\
project but also source code from other \COINOR\ projects:
\begin{itemize}
\item \BuildTools
\item \Cbc
\item \Cgl
\item \Clp
\item \CoinUtils
\item \Ipopt
\item \Osi
\end{itemize}

When downloading the \Bonmin\ package you will download the source code for all these and
libraries of problems to test the codes.

Before downloading \Bonmin\ you need to know which branch of Bonmin you want to download. 
In particular you need to know if you want to download the latest version from:
\begin{itemize}
    \item the Stable branch, or from
    \item the Released branch. 
\end{itemize}
These different version are made according to the guidelines of COIN-OR. The interpretation of these guidelines for the Bonmin project is explained on the wiki pages of Bonmin.

The main distinction between the Stable and Release branch is that a stable version that we propose to download may evolve over time to include bug fixes while a released version will never change. The released versions present an advantage in particular if you want to make experiments which you want to be able to reproduce the stable version presents the advantage that it is less work for you to update in the event where we fix a bug.

The easiest way to obtain the released version is by downloading a compressed archive from \href{http://www.coin-or.org/Tarballs/Bonmin/}{Bonmin archive directory}.

The only way to obtain one of the stable versions is through \href{http://subversion.tigris.org/}{subversion}.

In Unix\footnote{UNIX is a registered trademark of The Open
Group.}-like environments, to download the latest stable version of Bonmin (\stableVersion) in a sub-directory, say {\tt Bonmin-\stableVersion} 
issue the following command
\begin{center}
\tt \small svn co
https://projects.coin-or.org/svn/Bonmin/stable/\stableVersion\ Bonmin-\stableVersion
\end{center}

\noindent This copies all the necessary COIN-OR files to compile \Bonmin\ to
{\tt Bonmin-\stableVersion}. To download \Bonmin\ using svn on Windows,
follow the instructions provided at
\href{http://www.coin-or.org/faqs.html\#q4}{COIN-OR}.

\subsectionH{Obtaining required third party code}{sec:obtain_3rd}
\Bonmin\ needs a few external packages which are not included in the \Bonmin\ package.
\begin{itemize}
\item Lapack (Linear Algebra PACKage)
\item Blas (Basic Linear Algebra Subroutines)
\item A sparse linear solver.
\item Optionally ASL (the AMPL Solver Library), to be able to use \Bonmin\ from AMPL.
\end{itemize}


Since these third-party software modules are released under licenses
that are incompatible with the EPL, they cannot be included for
distribution with \Bonmin\ from COIN-OR, but you will find scripts
to help you download them in the subdirectory {\tt ThirdParty} of
the \Bonmin\ distribution. In most Linux distributions and
CYGWIN, Lapack and Blas are available as prebuild binary packages in
the distribution (and are probably already installed on your
machine). 

Linear solvers are used by Ipopt. The most up-to-date information regarding the supported linear solvers and how to install them is found in \href{http://www.coin-or.org/Ipopt/documentation/node13.html}{Section 2.2} of the Ipopt manual.

Several options are available for linear solvers: MA27 from the Harwell Subroutine Library (and optionally, but strongly recommended, MC19 to enable automatic scaling in \Ipopt), MA57 or Mumps.
In our experiment MA27 and MA57 usually perform significantly better but they are freely 
available only for non-commercial, academic use. Note that linear solvers can also take advantage of Metis.
