Metadata-Version: 2.1
Name: cliquematch
Version: 3.0.1
Summary: Finding correspondence via maximum cliques in large graphs
Home-page: https://github.com/ahgamut/cliquematch
Author: Gautham Venkatasubramanian
Author-email: ahgamut@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
License-File: LICENSE

# `cliquematch`
## Finding correspondence via maximum cliques in large graphs

[![pyvers](https://img.shields.io/badge/python-3.5+-blue.svg)][3]
[![ci](https://github.com/ahgamut/cliquematch/actions/workflows/wheels.yml/badge.svg)][6]
[![license](https://img.shields.io/github/license/ahgamut/cliquematch)][4]
[![DOI](https://zenodo.org/badge/196044254.svg)][7]

The `cliquematch` package aims to do two specific things:

1.  Find [maximum cliques][wiki] in large sparse undirected graphs, as quickly and efficiently as possible.
	(`cliquematch` uses C++ internally to implement a really fast maximum clique algorithm).

    * Now `cliquematch` can also find (node-)weighted maximum cliques using the
      `NWGraph` class.

2.  Construct large sparse undirected graphs in-memory for the various applications of the maximum
	clique/clique enumeration problem.

Licensed under MIT License. View the documentation at https://cliquematch.readthedocs.io/  

Note: this is `cliquematch v3`. If you're looking for `v1`, you can go to the [`v1` branch][v1] or
[documentation][v1docs].


## Installation Instructions

### Installing from a wheel

`cliquematch` uses [cibuildwheel][5] to build wheels via [Github Actions][6].

[PyPI][wheels] wheels are available for Linux, Windows, and MacOS. 

```bash
pip install cliquematch>=3.0.1
```

### Installing from source

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

```bash
pip3 install pybind11
```
2. `cliquematch` requires [`Eigen`][2] (v3.3.7 or newer) as part of its setup. 
	
	* You can clone the repo via `git clone --recursive` to get [`Eigen`][2].
	* If you already have an existing version of [`Eigen`][2], or have downloaded it separately,
	set the `EIGEN_DIR` environment variable to the folder containing [`Eigen`][2] before compilation.

3. 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.

[1]: https://github.com/pybind/pybind11/
[2]: https://gitlab.com/libeigen/eigen/-/releases#3.3.7
[3]: https://www.python.org/download/releases/3.5.0/
[4]: https://github.com/ahgamut/cliquematch/blob/master/LICENSE
[5]: https://github.com/pypa/cibuildwheel
[6]: https://github.com/ahgamut/cliquematch/actions
[7]: https://zenodo.org/badge/latestdoi/196044254
[wiki]: https://en.wikipedia.org/wiki/Clique_(graph_theory)#Definitions
[wheels]: https://pypi.org/project/cliquematch/
[v1]: https://www.github.com/ahgamut/cliquematch/tree/v1/
[v1docs]: https://www.cliquematch.readthedocs.io/en/v1/


