Node:Integer Random Numbers, Next:, Previous:I/O of Integers, Up:Integer Functions



Random Number Functions

The random number functions of GMP come in two groups; older function that rely on a global state, and newer functions that accept a state parameter that is read and modified. Please see the Random Number Functions for more information on how to use and not to use random number functions.

void mpz_urandomb (mpz_t rop, gmp_randstate_t state, unsigned long int n) Function
Generate a uniformly distributed random integer in the range 0 to 2^n-1, inclusive.

The variable state must be initialized by calling one of the gmp_randinit functions (Random State Initialization) before invoking this function.

void mpz_urandomm (mpz_t rop, gmp_randstate_t state, mpz_t n) Function
Generate a uniform random integer in the range 0 to n-1, inclusive.

The variable state must be initialized by calling one of the gmp_randinit functions (Random State Initialization) before invoking this function.

void mpz_rrandomb (mpz_t rop, gmp_randstate_t state, unsigned long int n) Function
Generate a random integer with long strings of zeros and ones in the binary representation. Useful for testing functions and algorithms, since this kind of random numbers have proven to be more likely to trigger corner-case bugs. The random number will be in the range 0 to 2^n-1, inclusive.

The variable state must be initialized by calling one of the gmp_randinit functions (Random State Initialization) before invoking this function.

void mpz_random (mpz_t rop, mp_size_t max_size) Function
Generate a random integer of at most max_size limbs. The generated random number doesn't satisfy any particular requirements of randomness. Negative random numbers are generated when max_size is negative.

This function is obsolete. Use mpz_urandomb or mpz_urandomm instead.

void mpz_random2 (mpz_t rop, mp_size_t max_size) Function
Generate a random integer of at most max_size limbs, with long strings of zeros and ones in the binary representation. Useful for testing functions and algorithms, since this kind of random numbers have proven to be more likely to trigger corner-case bugs. Negative random numbers are generated when max_size is negative.

This function is obsolete. Use mpz_rrandomb instead.