summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cmap.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cmap.h b/cmap.h
index e12f7e4e..9e5bcb88 100644
--- a/cmap.h
+++ b/cmap.h
@@ -216,6 +216,7 @@ typedef Value cmap_##tag##_value_t
#define FIBONACCI_DECL size_t fib1 = 0, fib2 = 1, fibx
#define FIBONACCI_NEXT (fibx = fib1 + fib2, fib1 = fib2, fib2 = fibx)
+// https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction/
static inline uint32_t cmap_reduce(uint32_t x, uint32_t N) {
return ((uint64_t) x * (uint64_t) N) >> 32 ;
}