Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 21 additions & 11 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,8 @@ Otherwise, read on.
Prerequisites
=============

CyLP depends on Numpy (www.numpy.org) and Scipy (www.scipy.org). Please note that
Numpy does need to be installed prior to installing CyLP,
even though it is listed as a dependency in the `setup.py` file.
CyLP depends on `NumPy <https://numpy.org>`_ and `Cython <https://cython.org/`_
as prerequisites for building from source (`build-system requires`).

You will also need to install binaries for Cbc. The version should be 2.10 (recommended) or earlier
(current master branch of Cbc will not work with this version of CyLP).
Expand All @@ -39,11 +38,11 @@ or by building yourself from source using `coinbrew <https://github.com/coin-or/

``$ conda create -n cbc coin-or-cbc numpy pkg-config -c conda-forge``

#. On OS X, it is easiest to install Cbc with homebrew:
#. On macOS, it is easiest to install Cbc with homebrew:

``$ brew install cbc pkg-config``

Cbc is also available on OS X through conda with
Cbc is also available on macOS through conda with

``$ conda create -n cbc coin-or-cbc numpy pkg-config -c conda-forge``

Expand All @@ -54,16 +53,20 @@ above recipes applies to you. If you do need to build from source, please go to
project page and follow the instructions there. After building and installing, make sure to
either set the `COIN_INSTALL_DIR` variable to point to the installation or set `PKG_CONFIG_PATH` to point to
the directory where the `.pc` files are installed. You may also need to set either `LD_LIBRARY_PATH` (Linux)
or `DYLD_LIBRARY_PATH` (OS X).
or `DYLD_LIBRARY_PATH` (macOS).

Installation
============

If you are building against the `coin-or-cbc` package installed by conda, be sure to conda install `pkg-config`,
which is needed to find the Cbc libraries installed by conda. Once Numpy and Cbc are installed, simply do::
which is needed to find the Cbc libraries installed by conda. Once Cbc is installed, simply do::

$ python -m pip install cylp

This will build CyLP in an isolated environment that provides the build prerequisites
and install it together with its runtime dependencies (`install-requires`),
NumPy and `SciPy <https://scipy.org>`.

Optional step:
If you want to run the doctests (i.e. ``make doctest`` in the ``doc`` directory)
you should also define::
Expand Down Expand Up @@ -138,17 +141,24 @@ You may access CyLP's documentation:
1. *Online* : Please visit http://coin-or.github.io/CyLP/

2. *Offline* : To install CyLP's documentation in your repository, you need
Sphinx (http://sphinx-doc.org/). You can generate the documentation by
Sphinx (https://www.sphinx-doc.org/). You can generate the documentation by
going to cylp/doc and run ``make html`` or ``make latex`` and access the
documentation under cylp/doc/build. You can also run ``make doctest`` to
perform all the doctest.

Who uses CyLP
==============
CyLP is being used in a wide range of practical and research fields. Some of the users include:

#. PyArt, The Python ARM Radar Toolkit, used by Atmospheric Radiation Measurement
(U.S. Department of energy). https://github.com/ARM-DOE/pyart
The following software packages make use of CyLP:
#. `CVXPY <https://www.cvxpy.org/>`_, a Python-embedded modeling language for
convex optimization problems, uses CyLP for interfacing to CBC, which is one
of the `supported mixed-integer solvers
<https://www.cvxpy.org/tutorial/advanced/index.html#mixed-integer-programs>`_.

CyLP has been used in a wide range of practical and research fields. Some of the users include:

#. `PyArt <https://github.com/ARM-DOE/pyart>`_, The Python ARM Radar Toolkit,
used by Atmospheric Radiation Measurement (U.S. Department of energy).
#. Meteorological Institute University of Bonn.
#. Sherbrooke university hospital (Centre hospitalier universitaire de Sherbrooke): CyLP is used for nurse scheduling.
#. Maisonneuve-Rosemont hospital (L'hôpital HMR): CyLP is used for physician scheduling with preferences.
Expand Down