DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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