Ruby  2.4.2p198(2017-09-14revision59899)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
random.c File Reference
#include "internal.h"
#include <limits.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <math.h>
#include <errno.h>
#include "ruby_atomic.h"
#include "siphash.c"
Include dependency graph for random.c:

Go to the source code of this file.

Data Structures

struct  MT
 
struct  rb_random_t
 
struct  seed_keys_t
 

Macros

#define N   624
 
#define M   397
 
#define MATRIX_A   0x9908b0dfU /* constant vector a */
 
#define UMASK   0x80000000U /* most significant w-r bits */
 
#define LMASK   0x7fffffffU /* least significant r bits */
 
#define MIXBITS(u, v)   ( ((u) & UMASK) | ((v) & LMASK) )
 
#define TWIST(u, v)   ((MIXBITS((u),(v)) >> 1) ^ ((v)&1U ? MATRIX_A : 0U))
 
#define genrand_initialized(mt)   ((mt)->next != 0)
 
#define uninit_genrand(mt)   ((mt)->next = 0)
 
#define DEFAULT_SEED_CNT   4
 
#define SIZEOF_INT32   (31/CHAR_BIT + 1)
 
#define id_minus   '-'
 
#define id_plus   '+'
 
#define DEFAULT_SEED_LEN   (DEFAULT_SEED_CNT * (int)sizeof(int32_t))
 
#define USE_DEV_URANDOM   0
 
#define fill_random_bytes_urandom(seed, size)   -1
 
#define fill_random_bytes_syscall(seed, size, need_secure)   -1
 
#define SIP_HASH_STREAMING   0
 
#define sip_hash24   ruby_sip_hash24
 
#define BYTE_ORDER   LITTLE_ENDIAN
 
#define LITTLE_ENDIAN   1234
 
#define BIG_ENDIAN   4321
 

Typedefs

typedef int int_must_be_32bit_at_least[sizeof(int) *CHAR_BIT< 32 ? -1 :1]
 

Enumerations

enum  { MT_MAX_STATE = N }
 

Functions

static void init_genrand (struct MT *mt, unsigned int s)
 
static void init_by_array (struct MT *mt, const uint32_t init_key[], int key_length)
 
static void next_state (struct MT *mt)
 
static unsigned int genrand_int32 (struct MT *mt)
 
static double int_pair_to_real_exclusive (uint32_t a, uint32_t b)
 
static double genrand_real (struct MT *mt)
 
static double int_pair_to_real_inclusive (uint32_t a, uint32_t b)
 
static VALUE rand_init (struct MT *mt, VALUE vseed)
 
static VALUE random_seed (void)
 
static rb_random_trand_start (rb_random_t *r)
 
static struct MTdefault_mt (void)
 
unsigned int rb_genrand_int32 (void)
 
double rb_genrand_real (void)
 
static void random_mark (void *ptr)
 
static void random_free (void *ptr)
 
static size_t random_memsize (const void *ptr)
 
static rb_random_tget_rnd (VALUE obj)
 
static rb_random_ttry_get_rnd (VALUE obj)
 
static VALUE random_alloc (VALUE klass)
 
static VALUE random_init (int argc, VALUE *argv, VALUE obj)
 
static int fill_random_bytes (void *seed, size_t size, int need_secure)
 
static void fill_random_seed (uint32_t *seed, size_t cnt)
 
static VALUE make_seed_value (uint32_t *ptr, size_t len)
 
static VALUE random_raw_seed (VALUE self, VALUE size)
 
static VALUE random_get_seed (VALUE obj)
 
static VALUE random_copy (VALUE obj, VALUE orig)
 
static VALUE mt_state (const struct MT *mt)
 
static VALUE random_state (VALUE obj)
 
static VALUE random_s_state (VALUE klass)
 
static VALUE random_left (VALUE obj)
 
static VALUE random_s_left (VALUE klass)
 
static VALUE random_dump (VALUE obj)
 
static VALUE random_load (VALUE obj, VALUE dump)
 
static VALUE rb_f_srand (int argc, VALUE *argv, VALUE obj)
 
static unsigned long make_mask (unsigned long x)
 
static unsigned long limited_rand (struct MT *mt, unsigned long limit)
 
static VALUE limited_big_rand (struct MT *mt, VALUE limit)
 
unsigned long rb_genrand_ulong_limited (unsigned long limit)
 
static VALUE obj_random_bytes (VALUE obj, void *p, long n)
 
static unsigned int random_int32 (rb_random_t *rnd)
 
unsigned int rb_random_int32 (VALUE obj)
 
static double random_real (VALUE obj, rb_random_t *rnd, int excl)
 
double rb_random_real (VALUE obj)
 
static VALUE ulong_to_num_plus_1 (unsigned long n)
 
static unsigned long random_ulong_limited (VALUE obj, rb_random_t *rnd, unsigned long limit)
 
unsigned long rb_random_ulong_limited (VALUE obj, unsigned long limit)
 
static VALUE random_ulong_limited_big (VALUE obj, rb_random_t *rnd, VALUE vmax)
 
static VALUE genrand_bytes (rb_random_t *rnd, long n)
 
static VALUE random_bytes (VALUE obj, VALUE len)
 
VALUE rb_random_bytes (VALUE obj, long n)
 
static VALUE range_values (VALUE vmax, VALUE *begp, VALUE *endp, int *exclp)
 
static VALUE rand_int (VALUE obj, rb_random_t *rnd, VALUE vmax, int restrictive)
 
 NORETURN (static void domain_error(void))
 
static void domain_error (void)
 
 NORETURN (static void invalid_argument(VALUE))
 
static void invalid_argument (VALUE arg0)
 
static VALUE check_random_number (VALUE v, const VALUE *argv)
 
static double float_value (VALUE v)
 
static VALUE rand_range (VALUE obj, rb_random_t *rnd, VALUE range)
 
static VALUE rand_random (int argc, VALUE *argv, VALUE obj, rb_random_t *rnd)
 
static VALUE random_rand (int argc, VALUE *argv, VALUE obj)
 
static VALUE rand_random_number (int argc, VALUE *argv, VALUE obj)
 
static VALUE random_equal (VALUE self, VALUE other)
 
static VALUE rb_f_rand (int argc, VALUE *argv, VALUE obj)
 
static VALUE random_s_rand (int argc, VALUE *argv, VALUE obj)
 
static void init_seed (struct MT *mt)
 
st_index_t rb_hash_start (st_index_t h)
 
st_index_t rb_memhash (const void *ptr, long len)
 
void Init_RandomSeedCore (void)
 
static VALUE init_randomseed (struct MT *mt)
 
static VALUE Init_Random_default (void)
 
void rb_reset_random_seed (void)
 
void InitVM_Random (void)
 
void Init_Random (void)
 

Variables

static rb_random_t default_rand
 
VALUE rb_cRandom
 
static ID id_rand
 
static ID id_bytes
 
static const rb_data_type_t random_data_type
 
union {
   seed_keys_t   key
 
   uint32_t   u32 [type_roomof(seed_keys_t,
      uint32_t)]
 
seed
 

Macro Definition Documentation

◆ BIG_ENDIAN

#define BIG_ENDIAN   4321

Definition at line 1471 of file random.c.

◆ BYTE_ORDER

#define BYTE_ORDER   LITTLE_ENDIAN

Definition at line 1465 of file random.c.

Referenced by SHA256_Transform(), and SHA512_Transform().

◆ DEFAULT_SEED_CNT

#define DEFAULT_SEED_CNT   4

Definition at line 240 of file random.c.

Referenced by init_randomseed(), Init_RandomSeedCore(), and random_seed().

◆ DEFAULT_SEED_LEN

#define DEFAULT_SEED_LEN   (DEFAULT_SEED_CNT * (int)sizeof(int32_t))

Definition at line 423 of file random.c.

Referenced by init_randomseed(), Init_RandomSeedCore(), and random_seed().

◆ fill_random_bytes_syscall

#define fill_random_bytes_syscall (   seed,
  size,
  need_secure 
)    -1

Definition at line 535 of file random.c.

Referenced by fill_random_bytes().

◆ fill_random_bytes_urandom

#define fill_random_bytes_urandom (   seed,
  size 
)    -1

Definition at line 461 of file random.c.

Referenced by fill_random_bytes().

◆ genrand_initialized

#define genrand_initialized (   mt)    ((mt)->next != 0)

Definition at line 112 of file random.c.

Referenced by rand_start().

◆ id_minus

#define id_minus   '-'

Definition at line 302 of file random.c.

Referenced by range_values().

◆ id_plus

#define id_plus   '+'

Definition at line 303 of file random.c.

Referenced by rand_range().

◆ LITTLE_ENDIAN

#define LITTLE_ENDIAN   1234

Definition at line 1468 of file random.c.

Referenced by SHA256_Transform(), and SHA512_Transform().

◆ LMASK

#define LMASK   0x7fffffffU /* least significant r bits */

Definition at line 99 of file random.c.

◆ M

#define M   397

Definition at line 96 of file random.c.

Referenced by next_state().

◆ MATRIX_A

#define MATRIX_A   0x9908b0dfU /* constant vector a */

Definition at line 97 of file random.c.

◆ MIXBITS

#define MIXBITS (   u,
 
)    ( ((u) & UMASK) | ((v) & LMASK) )

Definition at line 100 of file random.c.

◆ N

#define N   624

Definition at line 95 of file random.c.

Referenced by init_by_array(), init_genrand(), and next_state().

◆ sip_hash24

#define sip_hash24   ruby_sip_hash24

Definition at line 1460 of file random.c.

Referenced by rb_memhash().

◆ SIP_HASH_STREAMING

#define SIP_HASH_STREAMING   0

Definition at line 1459 of file random.c.

◆ SIZEOF_INT32

#define SIZEOF_INT32   (31/CHAR_BIT + 1)

Definition at line 277 of file random.c.

Referenced by genrand_bytes(), limited_rand(), and rand_init().

◆ TWIST

#define TWIST (   u,
 
)    ((MIXBITS((u),(v)) >> 1) ^ ((v)&1U ? MATRIX_A : 0U))

Definition at line 101 of file random.c.

Referenced by next_state().

◆ UMASK

#define UMASK   0x80000000U /* most significant w-r bits */

Definition at line 98 of file random.c.

◆ uninit_genrand

#define uninit_genrand (   mt)    ((mt)->next = 0)

Definition at line 113 of file random.c.

Referenced by rb_reset_random_seed().

◆ USE_DEV_URANDOM

#define USE_DEV_URANDOM   0

Definition at line 428 of file random.c.

Typedef Documentation

◆ int_must_be_32bit_at_least

typedef int int_must_be_32bit_at_least[sizeof(int) *CHAR_BIT< 32 ? -1 :1]

Definition at line 92 of file random.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MT_MAX_STATE 

Definition at line 103 of file random.c.

Function Documentation

◆ check_random_number()

static VALUE check_random_number ( VALUE  v,
const VALUE argv 
)
static

Definition at line 1181 of file random.c.

References invalid_argument(), NUM2LONG, Qfalse, and Qnil.

Referenced by random_rand(), and random_s_rand().

◆ default_mt()

static struct MT* default_mt ( void  )
static

Definition at line 258 of file random.c.

References rb_random_t::mt, and rand_start().

Referenced by rb_genrand_int32(), rb_genrand_real(), and rb_genrand_ulong_limited().

◆ domain_error()

static void domain_error ( void  )
static

◆ fill_random_bytes()

static int fill_random_bytes ( void *  seed,
size_t  size,
int  need_secure 
)
static

Definition at line 539 of file random.c.

References fill_random_bytes_syscall, and fill_random_bytes_urandom.

Referenced by fill_random_seed(), and random_raw_seed().

◆ fill_random_seed()

static void fill_random_seed ( uint32_t seed,
size_t  cnt 
)
static

◆ float_value()

static double float_value ( VALUE  v)
inlinestatic

Definition at line 1194 of file random.c.

References domain_error(), isinf(), isnan, and RFLOAT_VALUE.

Referenced by rand_random(), rand_range(), rb_str_format(), and sum_iter().

◆ genrand_bytes()

static VALUE genrand_bytes ( rb_random_t rnd,
long  n 
)
static

◆ genrand_int32()

static unsigned int genrand_int32 ( struct MT mt)
static

◆ genrand_real()

static double genrand_real ( struct MT mt)
static

Definition at line 203 of file random.c.

References genrand_int32(), and int_pair_to_real_exclusive().

Referenced by rb_f_rand(), rb_genrand_real(), and rb_random_real().

◆ get_rnd()

static rb_random_t* get_rnd ( VALUE  obj)
static

◆ init_by_array()

static void init_by_array ( struct MT mt,
const uint32_t  init_key[],
int  key_length 
)
static

Definition at line 138 of file random.c.

References init_genrand(), N, and MT::state.

Referenced by init_randomseed(), Init_RandomSeedCore(), and rand_init().

◆ init_genrand()

static void init_genrand ( struct MT mt,
unsigned int  s 
)
static

Definition at line 117 of file random.c.

References MT::left, N, MT::next, and MT::state.

Referenced by init_by_array(), and rand_init().

◆ Init_Random()

void Init_Random ( void  )

Definition at line 1633 of file random.c.

References id_bytes, id_rand, InitVM, and rb_intern.

◆ Init_Random_default()

static VALUE Init_Random_default ( void  )
static

◆ init_randomseed()

static VALUE init_randomseed ( struct MT mt)
static

◆ Init_RandomSeedCore()

void Init_RandomSeedCore ( void  )

◆ init_seed()

static void init_seed ( struct MT mt)
static

Definition at line 1487 of file random.c.

References genrand_int32(), numberof, and seed.

Referenced by Init_RandomSeedCore().

◆ InitVM_Random()

void InitVM_Random ( void  )

◆ int_pair_to_real_exclusive()

static double int_pair_to_real_exclusive ( uint32_t  a,
uint32_t  b 
)
static

Definition at line 211 of file random.c.

References genrand_int32(), and int_pair_to_real_inclusive().

Referenced by genrand_int32(), genrand_real(), and random_real().

◆ int_pair_to_real_inclusive()

static double int_pair_to_real_inclusive ( uint32_t  a,
uint32_t  b 
)
static

Definition at line 280 of file random.c.

Referenced by int_pair_to_real_exclusive(), and random_real().

◆ invalid_argument()

static void invalid_argument ( VALUE  arg0)
static

Definition at line 1175 of file random.c.

References PRIsVALUE, rb_eArgError, and rb_raise().

Referenced by check_random_number(), domain_error(), and rand_random_number().

◆ limited_big_rand()

static VALUE limited_big_rand ( struct MT mt,
VALUE  limit 
)
static

◆ limited_rand()

static unsigned long limited_rand ( struct MT mt,
unsigned long  limit 
)
static

◆ make_mask()

static unsigned long make_mask ( unsigned long  x)
static

Definition at line 792 of file random.c.

Referenced by limited_big_rand(), and limited_rand().

◆ make_seed_value()

static VALUE make_seed_value ( uint32_t ptr,
size_t  len 
)
static

◆ mt_state()

static VALUE mt_state ( const struct MT mt)
static

◆ next_state()

static void next_state ( struct MT mt)
static

Definition at line 164 of file random.c.

References MT::left, M, N, MT::next, MT::state, and TWIST.

Referenced by genrand_int32(), and parser_yylex().

◆ NORETURN() [1/2]

NORETURN ( static void   domain_errorvoid)

Referenced by domain_error(), and rand_int().

◆ NORETURN() [2/2]

NORETURN ( static void   invalid_argumentVALUE)

◆ obj_random_bytes()

static VALUE obj_random_bytes ( VALUE  obj,
void *  p,
long  n 
)
static

◆ rand_init()

static VALUE rand_init ( struct MT mt,
VALUE  vseed 
)
static

◆ rand_int()

static VALUE rand_int ( VALUE  obj,
rb_random_t rnd,
VALUE  vmax,
int  restrictive 
)
static

◆ rand_random()

static VALUE rand_random ( int  argc,
VALUE argv,
VALUE  obj,
rb_random_t rnd 
)
static

◆ rand_random_number()

static VALUE rand_random_number ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 1348 of file random.c.

References invalid_argument(), NIL_P, rand_random(), and try_get_rnd().

Referenced by InitVM_Random().

◆ rand_range()

static VALUE rand_range ( VALUE  obj,
rb_random_t rnd,
VALUE  range 
)
inlinestatic

◆ rand_start()

static rb_random_t* rand_start ( rb_random_t r)
static

◆ random_alloc()

static VALUE random_alloc ( VALUE  klass)
static

Definition at line 356 of file random.c.

References INT2FIX, rb_random_t::seed, and TypedData_Make_Struct.

Referenced by InitVM_Random().

◆ random_bytes()

static VALUE random_bytes ( VALUE  obj,
VALUE  len 
)
static

Definition at line 1074 of file random.c.

References genrand_bytes(), get_rnd(), NUM2LONG, and rb_to_int().

Referenced by InitVM_Random().

◆ random_copy()

static VALUE random_copy ( VALUE  obj,
VALUE  orig 
)
static

Definition at line 644 of file random.c.

References get_rnd(), MT::left, rb_random_t::mt, MT::next, numberof, OBJ_INIT_COPY, and MT::state.

Referenced by InitVM_Random().

◆ random_dump()

static VALUE random_dump ( VALUE  obj)
static

Definition at line 700 of file random.c.

References get_rnd(), INT2FIX, MT::left, rb_random_t::mt, mt_state(), rb_ary_new2, rb_ary_push(), and rb_random_t::seed.

Referenced by InitVM_Random().

◆ random_equal()

static VALUE random_equal ( VALUE  self,
VALUE  other 
)
static

◆ random_free()

static void random_free ( void *  ptr)
static

Definition at line 314 of file random.c.

References xfree().

◆ random_get_seed()

static VALUE random_get_seed ( VALUE  obj)
static

Definition at line 637 of file random.c.

References get_rnd(), and rb_random_t::seed.

Referenced by InitVM_Random().

◆ random_init()

static VALUE random_init ( int  argc,
VALUE argv,
VALUE  obj 
)
static

◆ random_int32()

static unsigned int random_int32 ( rb_random_t rnd)
static

Definition at line 915 of file random.c.

References genrand_int32(), and rb_random_t::mt.

Referenced by random_real(), and rb_random_int32().

◆ random_left()

static VALUE random_left ( VALUE  obj)
static

Definition at line 685 of file random.c.

References get_rnd(), INT2FIX, MT::left, and rb_random_t::mt.

Referenced by InitVM_Random().

◆ random_load()

static VALUE random_load ( VALUE  obj,
VALUE  dump 
)
static

◆ random_mark()

static void random_mark ( void *  ptr)
static

Definition at line 308 of file random.c.

References rb_gc_mark(), and seed.

◆ random_memsize()

static size_t random_memsize ( const void *  ptr)
static

Definition at line 321 of file random.c.

◆ random_rand()

static VALUE random_rand ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 1311 of file random.c.

References check_random_number(), get_rnd(), and rand_random().

Referenced by InitVM_Random().

◆ random_raw_seed()

static VALUE random_raw_seed ( VALUE  self,
VALUE  size 
)
static

Definition at line 613 of file random.c.

References buf, FALSE, fill_random_bytes(), NUM2ULONG, Qnil, rb_str_new(), and RSTRING_PTR.

Referenced by InitVM_Random().

◆ random_real()

static double random_real ( VALUE  obj,
rb_random_t rnd,
int  excl 
)
static

◆ random_s_left()

static VALUE random_s_left ( VALUE  klass)
static

Definition at line 693 of file random.c.

References INT2FIX, MT::left, and rb_random_t::mt.

Referenced by InitVM_Random().

◆ random_s_rand()

static VALUE random_s_rand ( int  argc,
VALUE argv,
VALUE  obj 
)
static

Definition at line 1452 of file random.c.

References check_random_number(), Qnil, rand_random(), and rand_start().

Referenced by InitVM_Random().

◆ random_s_state()

static VALUE random_s_state ( VALUE  klass)
static

Definition at line 678 of file random.c.

References rb_random_t::mt, and mt_state().

Referenced by InitVM_Random().

◆ random_seed()

static VALUE random_seed ( void  )
static

◆ random_state()

static VALUE random_state ( VALUE  obj)
static

Definition at line 670 of file random.c.

References get_rnd(), rb_random_t::mt, and mt_state().

Referenced by InitVM_Random().

◆ random_ulong_limited()

static unsigned long random_ulong_limited ( VALUE  obj,
rb_random_t rnd,
unsigned long  limit 
)
static

Definition at line 987 of file random.c.

References buf, CHAR_BIT, limited_rand(), rb_random_t::mt, nlz_long(), obj_random_bytes(), u32, and val.

Referenced by rand_int(), and rand_range().

◆ random_ulong_limited_big()

static VALUE random_ulong_limited_big ( VALUE  obj,
rb_random_t rnd,
VALUE  vmax 
)
static

◆ range_values()

static VALUE range_values ( VALUE  vmax,
VALUE begp,
VALUE endp,
int *  exclp 
)
static

Definition at line 1117 of file random.c.

References id_minus, NIL_P, Qfalse, rb_funcallv, rb_range_values(), and rb_respond_to().

Referenced by rand_range().

◆ rb_f_rand()

static VALUE rb_f_rand ( int  argc,
VALUE argv,
VALUE  obj 
)
static

◆ rb_f_srand()

static VALUE rb_f_srand ( int  argc,
VALUE argv,
VALUE  obj 
)
static

◆ rb_genrand_int32()

unsigned int rb_genrand_int32 ( void  )

Definition at line 264 of file random.c.

References default_mt(), and genrand_int32().

◆ rb_genrand_real()

double rb_genrand_real ( void  )

Definition at line 271 of file random.c.

References default_mt(), and genrand_real().

◆ rb_genrand_ulong_limited()

unsigned long rb_genrand_ulong_limited ( unsigned long  limit)

Definition at line 893 of file random.c.

References default_mt(), and limited_rand().

Referenced by bary_sparse_p().

◆ rb_hash_start()

st_index_t rb_hash_start ( st_index_t  h)

◆ rb_memhash()

st_index_t rb_memhash ( const void *  ptr,
long  len 
)

◆ rb_random_bytes()

VALUE rb_random_bytes ( VALUE  obj,
long  n 
)

Definition at line 1107 of file random.c.

References genrand_bytes(), NULL, obj_random_bytes(), and try_get_rnd().

◆ rb_random_int32()

unsigned int rb_random_int32 ( VALUE  obj)

Definition at line 921 of file random.c.

References obj_random_bytes(), random_int32(), and try_get_rnd().

◆ rb_random_real()

double rb_random_real ( VALUE  obj)

◆ rb_random_ulong_limited()

unsigned long rb_random_ulong_limited ( VALUE  obj,
unsigned long  limit 
)

◆ rb_reset_random_seed()

void rb_reset_random_seed ( void  )

Definition at line 1560 of file random.c.

References default_rand, INT2FIX, rb_random_t::mt, rb_random_t::seed, and uninit_genrand.

Referenced by rb_thread_start_timer_thread().

◆ try_get_rnd()

static rb_random_t* try_get_rnd ( VALUE  obj)
static

◆ ulong_to_num_plus_1()

static VALUE ulong_to_num_plus_1 ( unsigned long  n)
inlinestatic

Definition at line 974 of file random.c.

References INT2FIX, rb_big_plus(), and ULONG2NUM.

Referenced by rb_random_ulong_limited().

Variable Documentation

◆ default_rand

rb_random_t default_rand
static

Definition at line 242 of file random.c.

Referenced by Init_Random_default(), rb_f_srand(), and rb_reset_random_seed().

◆ id_bytes

ID id_bytes
static

Definition at line 304 of file random.c.

Referenced by Init_Random(), and obj_random_bytes().

◆ id_rand

ID id_rand
static

Definition at line 304 of file random.c.

Referenced by Init_Random(), rb_random_real(), and rb_random_ulong_limited().

◆ key

Definition at line 1482 of file random.c.

◆ random_data_type

const rb_data_type_t random_data_type
static
Initial value:
= {
"random",
{
},
}
#define RUBY_TYPED_FREE_IMMEDIATELY
Definition: ruby.h:1145
static void random_mark(void *ptr)
Definition: random.c:308
static void random_free(void *ptr)
Definition: random.c:314
static size_t random_memsize(const void *ptr)
Definition: random.c:321

Definition at line 326 of file random.c.

◆ rb_cRandom

VALUE rb_cRandom

Definition at line 301 of file random.c.

Referenced by Init_Random_default(), InitVM_Random(), and try_get_rnd().

◆ seed

union { ... } seed

◆ u32

Definition at line 1483 of file random.c.

Referenced by random_ulong_limited().