1
/*******************************************************************
2
Random numbers and hashing
4
(c) 1994, 1995 Innobase Oy
6
Created 5/11/1994 Heikki Tuuri
7
********************************************************************/
15
/* These random numbers are used in ut_find_prime */
16
#define UT_RANDOM_1 1.0412321
17
#define UT_RANDOM_2 1.1131347
18
#define UT_RANDOM_3 1.0132677
21
ulint ut_rnd_ulint_counter = 65654363;
23
/***************************************************************
24
Looks for a prime number slightly greater than the given argument.
25
The prime is chosen so that it is not near any power of 2. */
31
ulint n) /* in: positive number > 100 */
39
while (pow2 * 2 < n) {
43
if ((double)n < 1.05 * (double)pow2) {
44
n = (ulint) ((double)n * UT_RANDOM_1);
49
if ((double)n > 0.95 * (double)pow2) {
50
n = (ulint) ((double)n * UT_RANDOM_2);
57
/* Now we have n far enough from powers of 2. To make
58
n more random (especially, if it was not near
59
a power of 2), we then multiply it by a random number. */
61
n = (ulint) ((double)n * UT_RANDOM_3);