Installing cliquematch

cliquematch uses pybind11 to provide Python wrappers. Internally, the core clique search algorithm is implemented in C++11, simple template classes are used to provide flexibility for applications, and Eigen is used to provide fast access to numpy arrays.

Installing from a wheel

PyPI wheels are available for Linux and Windows.

MacOS builds are tested but wheels are not provided.

pip install cliquematch<2.0.0

Installing from source

  1. cliquematch requires pybind11 (v2.2 or newer) for its setup:

pip3 install pybind11
  1. cliquematch requires Eigen (v3.3.7 or newer) as part of its setup.

    • You can clone the Github repo via git clone --recursive to get Eigen.

    • If you already have an existing version of Eigen or have downloaded it separately, set the EIGEN_DIR environment variable to the folder containing Eigen before compilation.

  2. A C++11 compatible compiler must be available for the installation:

    • On Linux, gcc is called with --std=c++11 (builds with gcc 4.8.2 for manylinux1 wheels).

    • On Windows, Visual Studio 2015 Update 3 (MSVC 14.0 runtime) or later is needed.

    • Note: Installing under Windows+MinGW has not been tested.

  3. (Advanced) Compilation Flags: setup.py compiles the cliquematch extension with two additional flags.

    • STACK_DFS (1 by default): If nonzero, cliquematch uses an explicit stack for the depth-first clique search; otherwise it uses recursive function calls. Primarily for debugging purposes.

    • BENCHMARKING (0 by default): Set to 1 when benchmarking the core cliquematch algorithm.