The Power of Hashing with Mersenne Primes
Not on the map. Why?
Abstract (arXiv)
The classic way of computing a k-universal hash function is to use a random degree-(k-1) polynomial over a prime field mathbb Zp. For a fast computation of the polynomial, the prime p is often chosen as a Mersenne prime p=2b-1. In this paper, we show that there are other nice advantages to using Mersenne primes. Our view is that the hash function's output is a b-bit integer that is uniformly distributed in 0, dots, 2b-1, except that p (the all texttt1s value in binary) is missing. Uniform bit strings have many nice properties, such as splitting into substrings which gives us two or more hash functions for the cost of one, while preserving strong theoretical qualities. We call this trick "Two for one" hashing, and we demonstrate it on 4-universal hashing in the classic Count Sketch algorithm for second-moment estimation. We also provide a new fast branch-free code for division and modulus with Mersenne primes. Contrasting our analytic work, this code generalizes to any Pseudo-Mersenne primes p=2b-c for small c.
Key facts. Cited by 1 paper in the map (data through 14 Oct 2026). First posted on arXiv 19 Aug 2020.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2025: 1.
1 paper.
- 2025Sketched Sum-Product Networks for Joinscited by 0
- 2025Sketched Sum-Product Networks for Joins16 Jun 2025