(gmp.info.gz) Random State Initialization
Info Catalog
(gmp.info.gz) Random Number Functions
(gmp.info.gz) Random Number Functions
(gmp.info.gz) Random State Seeding
Random State Initialization
===========================
- Function: void gmp_randinit_default (gmp_randstate_t STATE)
Initialize STATE with a default algorithm. This will be a
compromise between speed and randomness, and is recommended for
applications with no special requirements. Currently this is
`gmp_randinit_mt'.
- Function: int gmp_randinit_mt (gmp_randstate_t STATE)
Initialize STATE for a Mersenne Twister algorithm. This algorithm
is fast and has good randomness properties.
- Function: void gmp_randinit_lc_2exp (gmp_randstate_t STATE, mpz_t A,
unsigned long C, unsigned long M2EXP)
Initialize STATE with a linear congruential algorithm X = (A*X +
C) mod 2^M2EXP.
The low bits of X in this algorithm are not very random. The least
significant bit will have a period no more than 2, and the second
bit no more than 4, etc. For this reason only the high half of
each X is actually used.
When a random number of more than M2EXP/2 bits is to be generated,
multiple iterations of the recurrence are used and the results
concatenated.
- Function: int gmp_randinit_lc_2exp_size (gmp_randstate_t STATE,
unsigned long SIZE)
Initialize STATE for a linear congruential algorithm as per
`gmp_randinit_lc_2exp'. A, C and M2EXP are selected from a table,
chosen so that SIZE bits (or more) of each X will be used, ie.
M2EXP/2 >= SIZE.
If successful the return value is non-zero. If SIZE is bigger
than the table data provides then the return value is zero. The
maximum SIZE currently supported is 128.
- Function: int gmp_randinit_set (gmp_randstate_t ROP, gmp_randstate_t
OP)
Initialize ROP with a copy of the algorithm and state from OP.
- Function: void gmp_randinit (gmp_randstate_t STATE,
gmp_randalg_t ALG, ...)
*This function is obsolete.*
Initialize STATE with an algorithm selected by ALG. The only
choice is `GMP_RAND_ALG_LC', which is `gmp_randinit_lc_2exp_size'
described above. A third parameter of type `unsigned long' is
required, this is the SIZE for that function.
`GMP_RAND_ALG_DEFAULT' or 0 are the same as `GMP_RAND_ALG_LC'.
`gmp_randinit' sets bits in the global variable `gmp_errno' to
indicate an error. `GMP_ERROR_UNSUPPORTED_ARGUMENT' if ALG is
unsupported, or `GMP_ERROR_INVALID_ARGUMENT' if the SIZE parameter
is too big. It may be noted this error reporting is not thread
safe (a good reason to use `gmp_randinit_lc_2exp_size' instead).
- Function: void gmp_randclear (gmp_randstate_t STATE)
Free all memory occupied by STATE.
Info Catalog
(gmp.info.gz) Random Number Functions
(gmp.info.gz) Random Number Functions
(gmp.info.gz) Random State Seeding
automatically generated byinfo2html