35#define RB_RANDOM_INTERFACE_DECLARE(prefix) \
36 static void prefix##_init(rb_random_t *, const uint32_t *, size_t); \
37 static unsigned int prefix##_get_int32(rb_random_t *); \
38 static void prefix##_get_bytes(rb_random_t *, void *, size_t)
40#define RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(prefix) \
41 RB_RANDOM_INTERFACE_DECLARE(prefix); \
42 static double prefix##_get_real(rb_random_t *, int)
44#define RB_RANDOM_INTERFACE_DEFINE(prefix) \
49#define RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(prefix) \
50 RB_RANDOM_INTERFACE_DEFINE(prefix), \
53#if defined _WIN32 && !defined __CYGWIN__
55# define RB_RANDOM_PARENT 0
58# define RB_RANDOM_PARENT &rb_random_data_type
61#define RB_RANDOM_DATA_INIT_PARENT(random_data) \
62 rbimpl_random_data_init_parent(&random_data)
79 const void *ret =
t->data;
87#if defined _WIN32 && !defined __CYGWIN__
#define RBIMPL_ASSERT_OR_ASSUME(expr)
This is either RUBY_ASSERT or RBIMPL_ASSUME, depending on RUBY_DEBUG.
#define RBIMPL_SYMBOL_EXPORT_END()
Counterpart of RBIMPL_SYMBOL_EXPORT_BEGIN.
#define RBIMPL_SYMBOL_EXPORT_BEGIN()
Shortcut macro equivalent to RUBY_SYMBOL_EXPORT_BEGIN extern "C" {.
void rb_random_init_func(rb_random_t *, const uint32_t *, size_t)
const rb_data_type_t rb_random_data_type
void rb_random_mark(void *ptr)
void rb_random_get_bytes_func(rb_random_t *, void *, size_t)
const rb_data_type_t rb_random_data_type_t
double rb_random_get_real_func(rb_random_t *, int)
double rb_int_pair_to_real(uint32_t a, uint32_t b, int excl)
void rb_rand_bytes_int32(rb_random_get_int32_func *, rb_random_t *, void *, size_t)
unsigned int rb_random_get_int32_func(rb_random_t *)
void rb_random_base_init(rb_random_t *rnd)
#define RBIMPL_ATTR_NOALIAS()
Wraps (or simulates) __declspec((noalias))
#define RBIMPL_ATTR_PURE_UNLESS_DEBUG()
Enables RBIMPL_ATTR_PURE iff.
rb_random_init_func * init
rb_random_get_int32_func * get_int32
rb_random_get_real_func * get_real
rb_random_get_bytes_func * get_bytes