Metadata-Version: 2.4
Name: cliquematch
Version: 3.0.2
Summary: Finding correspondence via maximum cliques in large graphs
Home-page: https://github.com/ahgamut/cliquematch
Author-email: Gautham Venkatasubramanian <ahgamut@gmail.com>
License: MIT License
        
        Copyright © 2026 Gautham Venkatasubramanian
        
        Permission is hereby granted, free of charge, to any person obtaining
        a copy of this software and associated documentation files (the "Software"),
        to deal in the Software without restriction, including without limitation
        the rights to use, copy, modify, merge, publish, distribute, sublicense,
        and/or sell copies of the Software, and to permit persons to whom the
        Software is furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included
        in all copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
        EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
        OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
        IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
        DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
        TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
        OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
        
Project-URL: Homepage, https://github.com/ahgamut/cliquematch
Project-URL: Documentation, https://cliquematch.rtfd.io
Project-URL: Issues, https://github.com/ahgamut/cliquematch/issues
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.14
Requires-Dist: pybind11>=2.2
Dynamic: home-page
Dynamic: license-file

# `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.2
```

### 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/
