Skip to content

Algorithm and references

Pivoter

Pivoter is an exact clique counting algorithm due to Shweta Jain and C. Seshadhri, described in:

It avoids listing every maximal clique by organizing computation around a Succinct Clique Tree (SCT) and pivoting ideas adapted from classical clique enumeration, with degeneracy-based structure exploited for sparse graphs.

Reference code from the authors:

pivoterpy reimplements that workflow with a Python kernel and a Rust extension; it is not a line-for-line port of the authors’ Julia/C code, but follows the same family of ideas.


Degeneracy ordering

pivoterpy uses a degeneracy ordering of vertices (Batagelj–Završnik style in the current Rust pipeline) as part of the search structure. That choice affects performance and recursion shape, not the final counts for a fixed simple graph.


These are classic touchpoints in maximal clique listing and clique counting; Pivoter sits in the “exact counting with careful pivoting / structure” line.

April 1971 — Bron–Kerbosch

October 2006 — Tomita et al.

2010–2011 — Eppstein, Löffler, Strash


Other Pivoter implementations


Citation

Cite the original Pivoter paper for the algorithm.

If you also want to cite this package:

@software{anderson_pivoterpy_2026,
  author       = {Spencer Anderson},
  title        = {{pivoterpy}},
  year         = {2026},
  version      = {2.1.1},
  url          = {https://github.com/7e6i/pivoterpy}
}