BCP is a collection of classes and functions handling the enumeration tree, constraints, and variables. It needs an LP solver, but the LP solver is not part of BCP. The interface between BCP and the solver is handled by the COIN Osi (Open Solver Interface) library. The advantage of using Osi is that replacing an LP solver by another one requires only small (ideally zero) changes in the code. The example is written to run with the LP solver named CLP. All the code that you need is included when you download the BAC tar ball from the COIN repository [1].
BCP handles only minimization problems.
BCP can be used for developing applications running on parallel machines. This comes with an additional cost for dealing with the passing of messages between processors (the ``packing'' and ``unpacking'' procedures present in many BCP classes). Since different processors are not assumed to share memory, it is impossible to use pointers to pass information between them. However, if the application runs only on a non parallel machine, the code can be simplified by the use of pointers in the packing and unpacking procedures. This is what is done in this example, and thus the example will not run on parallel machines. See other examples from the COIN repository for proper ``parallel'' packing and unpacking procedures.
The source files are split into a number of subdirectories: