Ruby  2.0.0p648(2015-12-16revision53162)
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
random.c File Reference
#include "ruby/ruby.h"
#include <limits.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <math.h>
#include <errno.h>
#include "siphash.c"

Go to the source code of this file.

Data Structures

struct  MT
 
struct  rb_random_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 BDIGITS(x)   (RBIGNUM_DIGITS(x))
 
#define BITSPERDIG   (SIZEOF_BDIGITS*CHAR_BIT)
 
#define BIGRAD   ((BDIGIT_DBL)1 << BITSPERDIG)
 
#define DIGSPERINT   (SIZEOF_INT/SIZEOF_BDIGITS)
 
#define BIGUP(x)   ((BDIGIT_DBL)(x) << BITSPERDIG)
 
#define BIGDN(x)   RSHIFT((x),BITSPERDIG)
 
#define BIGLO(x)   ((BDIGIT)((x) & (BIGRAD-1)))
 
#define BDIGMAX   ((BDIGIT)-1)
 
#define roomof(n, m)   (int)(((n)+(m)-1) / (m))
 
#define numberof(array)   (int)(sizeof(array) / sizeof((array)[0]))
 
#define SIZEOF_INT32   (31/CHAR_BIT + 1)
 
#define id_minus   '-'
 
#define id_plus   '+'
 
#define DEFAULT_SEED_LEN   (DEFAULT_SEED_CNT * (int)sizeof(int))
 
#define USE_DEV_URANDOM   0
 
#define BIG_GET32(big, i)   (RBIGNUM_DIGITS(big)[(i)])
 
#define BIG_SET32(big, i, d)   (RBIGNUM_DIGITS(big)[(i)] = (d))
 
#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, unsigned int init_key[], int key_length)
 
static void next_state (struct MT *mt)
 
static unsigned int genrand_int32 (struct MT *mt)
 
static double genrand_real (struct MT *mt)
 
static double int_pair_to_real_inclusive (unsigned int a, unsigned int b)
 
static double genrand_real2 (struct MT *mt)
 
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 void fill_random_seed (unsigned int seed[DEFAULT_SEED_CNT])
 
static VALUE make_seed_value (const void *ptr)
 
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, struct RBignum *limit)
 
unsigned long rb_genrand_ulong_limited (unsigned long limit)
 
unsigned int rb_random_int32 (VALUE obj)
 
double rb_random_real (VALUE obj)
 
static VALUE ulong_to_num_plus_1 (unsigned long n)
 
unsigned long rb_random_ulong_limited (VALUE obj, unsigned long limit)
 
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 (struct MT *mt, VALUE vmax, int restrictive)
 
static double float_value (VALUE v)
 
static VALUE rand_range (struct MT *mt, VALUE range)
 
static VALUE rand_random (int argc, VALUE *argv, rb_random_t *rnd)
 
static VALUE random_rand (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 VALUE init_randomseed (struct MT *mt, unsigned int initial[DEFAULT_SEED_CNT])
 
void Init_RandomSeed (void)
 
st_index_t rb_hash_start (st_index_t h)
 
st_index_t rb_memhash (const void *ptr, long len)
 
static void Init_RandomSeed2 (void)
 
void rb_reset_random_seed (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
 
static st_index_t hashseed
 
union {
   uint8_t   key [16]
 
   uint32_t   u32 [(16 *sizeof(uint8_t)
      - 1)/sizeof(uint32_t)]
 
sipseed
 

Macro Definition Documentation

◆ BDIGITS

#define BDIGITS (   x)    (RBIGNUM_DIGITS(x))

Definition at line 263 of file random.c.

Referenced by int_pair_to_real_inclusive(), and random_load().

◆ BDIGMAX

#define BDIGMAX   ((BDIGIT)-1)

Definition at line 270 of file random.c.

◆ BIG_ENDIAN

#define BIG_ENDIAN   4321

Definition at line 1363 of file random.c.

◆ BIG_GET32

#define BIG_GET32 (   big,
  i 
)    (RBIGNUM_DIGITS(big)[(i)])

Referenced by limited_big_rand().

◆ BIG_SET32

#define BIG_SET32 (   big,
  i,
 
)    (RBIGNUM_DIGITS(big)[(i)] = (d))

Referenced by limited_big_rand().

◆ BIGDN

#define BIGDN (   x)    RSHIFT((x),BITSPERDIG)

Definition at line 268 of file random.c.

Referenced by mt_state().

◆ BIGLO

#define BIGLO (   x)    ((BDIGIT)((x) & (BIGRAD-1)))

Definition at line 269 of file random.c.

Referenced by mt_state().

◆ BIGRAD

#define BIGRAD   ((BDIGIT_DBL)1 << BITSPERDIG)

Definition at line 265 of file random.c.

◆ BIGUP

#define BIGUP (   x)    ((BDIGIT_DBL)(x) << BITSPERDIG)

Definition at line 267 of file random.c.

◆ BITSPERDIG

#define BITSPERDIG   (SIZEOF_BDIGITS*CHAR_BIT)

Definition at line 264 of file random.c.

Referenced by int_pair_to_real_inclusive(), rand_init(), and random_load().

◆ BYTE_ORDER

#define BYTE_ORDER   LITTLE_ENDIAN

Definition at line 1357 of file random.c.

Referenced by SHA256_Transform(), and SHA512_Transform().

◆ DEFAULT_SEED_CNT

#define DEFAULT_SEED_CNT   4

Definition at line 226 of file random.c.

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

◆ DEFAULT_SEED_LEN

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

Definition at line 479 of file random.c.

Referenced by fill_random_seed(), init_randomseed(), and make_seed_value().

◆ DIGSPERINT

#define DIGSPERINT   (SIZEOF_INT/SIZEOF_BDIGITS)

Definition at line 266 of file random.c.

Referenced by random_load().

◆ genrand_initialized

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

Definition at line 109 of file random.c.

Referenced by rand_start().

◆ id_minus

#define id_minus   '-'

Definition at line 328 of file random.c.

Referenced by range_values().

◆ id_plus

#define id_plus   '+'

Definition at line 329 of file random.c.

Referenced by rand_range().

◆ LITTLE_ENDIAN

#define LITTLE_ENDIAN   1234

Definition at line 1360 of file random.c.

Referenced by SHA256_Transform(), and SHA512_Transform().

◆ LMASK

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

Definition at line 96 of file random.c.

◆ M

#define M   397

Definition at line 93 of file random.c.

Referenced by next_state().

◆ MATRIX_A

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

Definition at line 94 of file random.c.

◆ MIXBITS

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

Definition at line 97 of file random.c.

◆ N

#define N   624

Definition at line 92 of file random.c.

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

◆ numberof

#define numberof (   array)    (int)(sizeof(array) / sizeof((array)[0]))

Definition at line 273 of file random.c.

Referenced by Init_RandomSeed(), mt_state(), rand_init(), random_copy(), and random_load().

◆ roomof

#define roomof (   n,
 
)    (int)(((n)+(m)-1) / (m))

Definition at line 272 of file random.c.

Referenced by int_pair_to_real_inclusive(), rand_init(), and random_load().

◆ sip_hash24

#define sip_hash24   ruby_sip_hash24

Definition at line 1352 of file random.c.

Referenced by rb_memhash().

◆ SIP_HASH_STREAMING

#define SIP_HASH_STREAMING   0

Definition at line 1351 of file random.c.

◆ SIZEOF_INT32

#define SIZEOF_INT32   (31/CHAR_BIT + 1)

Definition at line 274 of file random.c.

Referenced by limited_rand(), mt_state(), rand_init(), and rb_random_bytes().

◆ TWIST

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

Definition at line 98 of file random.c.

Referenced by next_state().

◆ UMASK

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

Definition at line 95 of file random.c.

◆ uninit_genrand

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

Definition at line 110 of file random.c.

Referenced by rb_reset_random_seed().

◆ USE_DEV_URANDOM

#define USE_DEV_URANDOM   0

Definition at line 484 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 89 of file random.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MT_MAX_STATE 

Definition at line 100 of file random.c.

Function Documentation

◆ default_mt()

static struct MT* default_mt ( void  )
static

◆ fill_random_seed()

static void fill_random_seed ( unsigned int  seed[DEFAULT_SEED_CNT])
static

◆ float_value()

static double float_value ( VALUE  v)
inlinestatic

Definition at line 1079 of file random.c.

References INT2FIX, isinf(), isnan, rb_class_new_instance(), rb_eSystemCallError, rb_exc_raise(), RFLOAT_VALUE, and v.

Referenced by rand_random(), and rand_range().

◆ genrand_int32()

static unsigned int genrand_int32 ( struct MT mt)
static

◆ genrand_real()

static double genrand_real ( struct MT mt)
static

Definition at line 199 of file random.c.

References genrand_int32().

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

◆ genrand_real2()

static double genrand_real2 ( struct MT mt)
static

Definition at line 209 of file random.c.

References genrand_int32(), and int_pair_to_real_inclusive().

Referenced by rand_range().

◆ get_rnd()

static rb_random_t* get_rnd ( VALUE  obj)
static

◆ init_by_array()

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

Definition at line 135 of file random.c.

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

Referenced by init_randomseed(), and rand_init().

◆ init_genrand()

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

Definition at line 114 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  )

◆ init_randomseed()

static VALUE init_randomseed ( struct MT mt,
unsigned int  initial[DEFAULT_SEED_CNT] 
)
static

◆ Init_RandomSeed()

void Init_RandomSeed ( void  )

◆ Init_RandomSeed2()

static void Init_RandomSeed2 ( void  )
static

Definition at line 1433 of file random.c.

References default_rand, rb_cBignum, RB_TYPE_P, RBASIC, rb_random_t::seed, and T_BIGNUM.

Referenced by Init_Random().

◆ int_pair_to_real_inclusive()

static double int_pair_to_real_inclusive ( unsigned int  a,
unsigned int  b 
)
static

◆ limited_big_rand()

static VALUE limited_big_rand ( struct MT mt,
struct RBignum 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 815 of file random.c.

Referenced by limited_big_rand(), and limited_rand().

◆ make_seed_value()

static VALUE make_seed_value ( const void *  ptr)
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 161 of file random.c.

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

Referenced by genrand_int32().

◆ rand_init()

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

◆ rand_int()

static VALUE rand_int ( struct MT mt,
VALUE  vmax,
int  restrictive 
)
static

◆ rand_random()

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

◆ rand_range()

static VALUE rand_range ( struct MT mt,
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 381 of file random.c.

References INT2FIX, random_data_type, rb_random_t::seed, and TypedData_Make_Struct.

Referenced by Init_Random().

◆ random_bytes()

static VALUE random_bytes ( VALUE  obj,
VALUE  len 
)
static

Definition at line 990 of file random.c.

References RBignum::len, NUM2LONG, rb_random_bytes(), and rb_to_int().

Referenced by Init_Random().

◆ random_copy()

static VALUE random_copy ( VALUE  obj,
VALUE  orig 
)
static

Definition at line 601 of file random.c.

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

Referenced by Init_Random().

◆ random_dump()

static VALUE random_dump ( VALUE  obj)
static

Definition at line 671 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 Init_Random().

◆ random_equal()

static VALUE random_equal ( VALUE  self,
VALUE  other 
)
static

◆ random_free()

static void random_free ( void *  ptr)
static

Definition at line 340 of file random.c.

References default_rand, and xfree().

◆ random_get_seed()

static VALUE random_get_seed ( VALUE  obj)
static

Definition at line 594 of file random.c.

References get_rnd(), and rb_random_t::seed.

Referenced by Init_Random().

◆ random_init()

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

◆ random_left()

static VALUE random_left ( VALUE  obj)
static

Definition at line 656 of file random.c.

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

Referenced by Init_Random().

◆ random_load()

static VALUE random_load ( VALUE  obj,
VALUE  dump 
)
static

◆ random_mark()

static void random_mark ( void *  ptr)
static

Definition at line 334 of file random.c.

References rb_gc_mark().

◆ random_memsize()

static size_t random_memsize ( const void *  ptr)
static

Definition at line 347 of file random.c.

◆ random_rand()

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

Definition at line 1202 of file random.c.

References argc, argv, get_rnd(), and rand_random().

Referenced by Init_Random().

◆ random_s_left()

static VALUE random_s_left ( VALUE  klass)
static

Definition at line 664 of file random.c.

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

Referenced by Init_Random().

◆ random_s_rand()

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

Definition at line 1346 of file random.c.

References argc, argv, default_rand, rand_random(), and rand_start().

Referenced by Init_Random().

◆ random_s_state()

static VALUE random_s_state ( VALUE  klass)
static

Definition at line 649 of file random.c.

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

Referenced by Init_Random().

◆ random_seed()

static VALUE random_seed ( void  )
static

Definition at line 572 of file random.c.

References buf, DEFAULT_SEED_CNT, fill_random_seed(), and make_seed_value().

Referenced by Init_Random(), rand_start(), random_init(), and rb_f_srand().

◆ random_state()

static VALUE random_state ( VALUE  obj)
static

Definition at line 641 of file random.c.

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

Referenced by Init_Random().

◆ range_values()

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

Definition at line 1028 of file random.c.

References id_minus, NIL_P, Qfalse, rb_funcall2(), 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

Definition at line 1318 of file random.c.

References argc, argv, DBL2NUM, default_mt(), genrand_real(), INT2FIX, NIL_P, Qfalse, rand_int(), rand_range(), rb_scan_args(), rb_to_int(), and v.

Referenced by Init_Random().

◆ 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 250 of file random.c.

References default_mt(), and genrand_int32().

◆ rb_genrand_real()

double rb_genrand_real ( void  )

Definition at line 257 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 908 of file random.c.

References default_mt(), and limited_rand().

Referenced by big_sparse_p().

◆ rb_hash_start()

st_index_t rb_hash_start ( st_index_t  h)

Definition at line 1416 of file random.c.

References hashseed, and st_hash_start.

Referenced by match_hash(), method_hash(), proc_hash(), rb_any_hash(), rb_obj_hash(), and recursive_hash().

◆ rb_memhash()

st_index_t rb_memhash ( const void *  ptr,
long  len 
)

◆ rb_random_bytes()

VALUE rb_random_bytes ( VALUE  obj,
long  n 
)

◆ rb_random_int32()

unsigned int rb_random_int32 ( VALUE  obj)

◆ 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 1443 of file random.c.

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

Referenced by rb_thread_atfork().

◆ 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 949 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

◆ hashseed

st_index_t hashseed
static

Definition at line 1368 of file random.c.

Referenced by Init_RandomSeed(), and rb_hash_start().

◆ id_bytes

ID id_bytes
static

Definition at line 330 of file random.c.

Referenced by Init_Random(), and rb_random_bytes().

◆ id_rand

ID id_rand
static

Definition at line 330 of file random.c.

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

◆ key

uint8_t key[16]

Definition at line 1370 of file random.c.

Referenced by add_direct(), add_packed_direct(), add_refined_method_entry_i(), assoc_i(), cbsubst_get_subst_key(), cdhash_each(), cdhash_set_label_i(), check_deadlock_i(), check_exec_env_i(), check_exec_options_i(), check_exec_options_i_extract(), check_exec_redirect(), check_exec_redirect1(), check_redefined_method(), clear_trace_func_i(), clone_const(), clone_const_i(), clone_method_i(), compare_posix_sh(), constat_delete(), coverage_result_i(), crypt(), cto_i(), cv_i(), cv_list_i(), delete_if_i(), delpair(), des_setkey(), duppair(), each_attr_def(), each_key_i(), each_pair_i(), env_assoc(), env_fetch(), env_has_key(), env_replace_i(), env_select(), env_shift(), env_update_i(), eql_i(), fc_i(), fdbm_clear(), fdbm_delete(), fdbm_delete_if(), fdbm_each_key(), fdbm_each_pair(), fdbm_each_value(), fdbm_empty_p(), fdbm_fetch(), fdbm_has_key(), fdbm_has_value(), fdbm_invert(), fdbm_key(), fdbm_keys(), fdbm_length(), fdbm_select(), fdbm_shift(), fdbm_store(), fdbm_to_a(), fdbm_to_hash(), fdbm_values(), fgdbm_clear(), fgdbm_empty_p(), fgdbm_has_key(), fgdbm_length(), fgdbm_store(), fgdbm_values(), fill_envp_buf_i(), find_entry(), find_packed_index(), find_packed_index_from(), force_chain_object(), foreach_safe_i(), fsdbm_clear(), fsdbm_delete(), fsdbm_delete_if(), fsdbm_each_key(), fsdbm_each_pair(), fsdbm_each_value(), fsdbm_empty_p(), fsdbm_fetch(), fsdbm_has_key(), fsdbm_has_value(), fsdbm_invert(), fsdbm_key(), fsdbm_keys(), fsdbm_length(), fsdbm_select(), fsdbm_shift(), fsdbm_store(), fsdbm_to_a(), fsdbm_to_hash(), fsdbm_values(), generate_json_object(), generic_ivar_remove(), getnext(), getnkey(), getpair(), gvar_i(), hash2named_arg(), hash2ptr_dispparams(), hash_aset_str(), hash_default_value(), hash_each(), hash_foreach_iter(), hash_i(), i_free_name_entry(), i_free_shared_class(), inspect_i(), int_sip_init(), internal_match(), iseq_compile_each(), ivar_i(), keep_if_i(), key2keyname(), key_i(), keys_i(), kwmerge_i(), lep_svar_get(), lep_svar_set(), list_i(), load_unlock(), loaded_features_index_clear_i(), mark_key(), mark_keyvalue(), method_entry_i(), move_refined_method(), new_entry(), NOINSERT_UPDATE_CALLBACK(), obj_ivar_each(), obj_ivar_i(), oletypelib_path(), onig_st_insert_strend(), onig_st_lookup_strend(), ossl_call_client_cert_cb(), ossl_cipher_init(), ossl_cipher_initialize(), ossl_cipher_pkcs5_keyivgen(), ossl_cipher_set_key(), ossl_hmac_initialize(), ossl_hmac_s_digest(), ossl_hmac_s_hexdigest(), ossl_pkcs12_initialize(), ossl_pkcs12_s_create(), ossl_pkcs7_decrypt(), ossl_pkcs7_s_sign(), ossl_pkcs7si_initialize(), ossl_spki_set_public_key(), ossl_spki_sign(), ossl_spki_verify(), ossl_sslctx_setup(), ossl_x509_check_private_key(), ossl_x509_set_public_key(), ossl_x509_sign(), ossl_x509_verify(), ossl_x509crl_sign(), ossl_x509crl_verify(), ossl_x509req_set_public_key(), ossl_x509req_sign(), ossl_x509req_verify(), parse_exp(), parse_keyword_arg_i(), PEM_def_callback(), push_kv(), push_kv_enc(), putpair(), r_leave(), r_object0(), rassoc_i(), rb_ary_assoc(), rb_enc_aliases_enc_i(), rb_exec_arg_addopt(), rb_execarg_addopt(), rb_execarg_fixup(), rb_execarg_run_options(), rb_free_generic_ivar(), rb_gdbm_delete(), rb_gdbm_fetch(), rb_gdbm_fetch2(), rb_gdbm_firstkey(), rb_gdbm_nextkey(), rb_hash_aref(), rb_hash_default(), rb_hash_delete(), rb_hash_delete_key(), rb_hash_fetch(), rb_hash_fetch_m(), rb_hash_has_key(), rb_hash_invert_i(), rb_hash_lookup(), rb_hash_lookup2(), rb_hash_rehash_i(), rb_hash_s_create(), rb_hash_update_block_callback(), rb_hash_update_func_callback(), rb_iseq_parameters(), rb_reserved_word(), rb_struct_each_pair(), rb_thread_key_p(), rb_thread_variable_p(), reachable_object_from_i(), reg_open_vkey(), register_init_ext(), release_thread_shield(), remove_method(), replace_i(), run_exec_dup2(), run_final(), sdbm_delete(), sdbm_fetch(), sdbm_store(), seepair(), select_i(), separate_symbol(), set_state_ivars(), set_zero(), set_zero_i(), setkey(), shift_i(), shift_i_safe(), sip_hash24(), sip_hash_init(), sip_hash_new(), socklist_delete(), splpage(), st_add_direct(), st_delete(), st_delete_safe(), st_delete_wrap(), st_foreach(), st_foreach_check(), st_get_key(), st_insert(), st_insert2(), st_lookup(), st_update(), sv_i(), terminate_atfork_before_exec_i(), terminate_atfork_i(), terminate_i(), thgroup_list_i(), thread_fd_close_i(), thread_keys_i(), thread_list_i(), to_a_i(), to_strkey(), tr_setup_table(), transcode_search_path_i(), type_cclass_hash(), unknown_keyword_error(), unpack_entries(), update_char_offset(), vm_cfp_svar_get(), vm_cfp_svar_set(), vm_getspecial(), vm_mark_each_thread_func(), vm_svar_get(), vm_svar_set(), w_obj_each(), yaml_document_append_mapping_pair(), and zone_str_update().

◆ random_data_type

const rb_data_type_t random_data_type
static
Initial value:
= {
"random",
{
},
}
static void random_mark(void *ptr)
Definition: random.c:334
static void random_free(void *ptr)
Definition: random.c:340
static size_t random_memsize(const void *ptr)
Definition: random.c:347

Definition at line 352 of file random.c.

Referenced by get_rnd(), Init_Random(), random_alloc(), and try_get_rnd().

◆ rb_cRandom

VALUE rb_cRandom

Definition at line 327 of file random.c.

Referenced by Init_Random(), and try_get_rnd().

◆ sipseed

union { ... } sipseed

Referenced by Init_RandomSeed(), and rb_memhash().

◆ u32

Definition at line 1371 of file random.c.