📄 ut0rnd.h
字号:
/**********************************************************************Random numbers and hashing(c) 1994, 1995 Innobase OyCreated 1/20/1994 Heikki Tuuri***********************************************************************/#ifndef ut0rnd_h#define ut0rnd_h#include "univ.i"#include "ut0byte.h"/* The 'character code' for end of field or string (usedin folding records */#define UT_END_OF_FIELD 257/************************************************************This is used to set the random number seed. */UNIV_INLINEvoidut_rnd_set_seed(/*============*/ ulint seed); /* in: seed *//************************************************************The following function generates a series of 'random' ulint integers. */UNIV_INLINEulintut_rnd_gen_next_ulint(/*==================*/ /* out: the next 'random' number */ ulint rnd); /* in: the previous random number value *//*************************************************************The following function generates 'random' ulint integers whichenumerate the value space (let there be N of them) of ulint integersin a pseudo-random fashion. Note that the same integer is repeatedalways after N calls to the generator. */UNIV_INLINEulintut_rnd_gen_ulint(void);/*==================*/ /* out: the 'random' number *//************************************************************Generates a random integer from a given interval. */UNIV_INLINEulintut_rnd_interval(/*============*/ /* out: the 'random' number */ ulint low, /* in: low limit; can generate also this value */ ulint high); /* in: high limit; can generate also this value *//*************************************************************Generates a random iboolean value. */UNIV_INLINEiboolut_rnd_gen_ibool(void);/*=================*/ /* out: the random value *//***********************************************************The following function generates a hash value for a ulint integerto a hash table of size table_size, which should be a prime or somerandom number to work reliably. */UNIV_INLINEulintut_hash_ulint(/*=========*/ /* out: hash value */ ulint key, /* in: value to be hashed */ ulint table_size); /* in: hash table size *//*****************************************************************Folds a pair of ulints. */UNIV_INLINEulintut_fold_ulint_pair(/*===============*/ /* out: folded value */ ulint n1, /* in: ulint */ ulint n2); /* in: ulint *//*****************************************************************Folds a dulint. */UNIV_INLINEulintut_fold_dulint(/*===========*/ /* out: folded value */ dulint d); /* in: dulint *//*****************************************************************Folds a character string ending in the null character. */UNIV_INLINEulintut_fold_string(/*===========*/ /* out: folded value */ const char* str); /* in: null-terminated string */ /*****************************************************************Folds a binary string. */UNIV_INLINEulintut_fold_binary(/*===========*/ /* out: folded value */ const byte* str, /* in: string of bytes */ ulint len); /* in: length *//***************************************************************Looks for a prime number slightly greater than the given argument.The prime is chosen so that it is not near any power of 2. */ulintut_find_prime(/*==========*/ /* out: prime */ ulint n); /* in: positive number > 100 */#ifndef UNIV_NONINL#include "ut0rnd.ic"#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -