DenseQMC: an efficient bit-slice implementation of the Quine-McCluskey algorithm
Aleksei Udovenko

TL;DR
This paper introduces DenseQMC, an efficient bit-slice implementation of the Quine-McCluskey algorithm for dense Boolean functions, capable of handling up to 23-27 variables on standard hardware, and discusses common implementation mistakes.
Contribution
It presents DenseQMC, a novel optimized bit-slice implementation for the Quine-McCluskey algorithm, and corrects a widespread implementation error.
Findings
DenseQMC efficiently handles up to 23 variables on laptops.
It can process up to 27 variables on servers with 1 TiB RAM.
A common quadratic slowdown mistake is identified and corrected.
Abstract
This note describes a new efficient bit-slice implementation DenseQMC of the Quine-McCluskey algorithm for finding all prime implicants of a Boolean function in the dense case. It is practically feasible for n <= 23 when run on a common laptop or for n <= 27 when run on a server with 1 TiB RAM. This note also outlines a very common mistake in the implementations of the Quine-McCluskey algorithm, leading to a quadratic slowdown. An optimized corrected implementation of the classic approach is also given (called SparseQMC). The implementation is freely available at https://github.com/hellman/Quine-McCluskey .
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAlgorithms and Data Compression · Coding theory and cryptography · Quantum Computing Algorithms and Architecture
