Mercurial > dovecot > core-2.2
view src/lib/primes.c @ 22664:fea53c2725c0
director: Fix director_max_parallel_moves/kicks type
Should be uint, not time.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 09 Nov 2017 12:24:16 +0200 |
parents | 2e2563132d5f |
children | cb108f786fb4 |
line wrap: on
line source
/* Copyright (c) 2013-2017 Dovecot authors, see the included COPYING file */ #include "lib.h" #include "primes.h" static const unsigned int primes[] = { #define PRIME_SKIP_COUNT 3 17, 37, 67, 131, 257, /* next from 2^8 */ 521, 1031, 2053, 4099, 8209, 16411, 32771, 65537, /* next from 2^16 */ 131101, 262147, 524309, 1048583, 2097169, 4194319, 8388617, 16777259, /* next from 2^24 */ 33554467, 67108879, 134217757, 268435459, 536870923, 1073741827, 2147483659U, 4294967291U /* previous from 2^32 */ }; unsigned int primes_closest(unsigned int num) { unsigned int i; for (i = 31; i > PRIME_SKIP_COUNT; i--) { if ((num & (1U << i)) != 0) return primes[i - PRIME_SKIP_COUNT]; } return primes[0]; }