Copyright (C) 2000-2012 |
GNU Info (gmp.info)Random State InitializationRandom 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. - 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 >= SIZE/2. 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: 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'. 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 `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. - Function: void gmp_randclear (gmp_randstate_t STATE) Free all memory occupied by STATE. automatically generated by info2www version 1.2.2.9 |