#include "ruby/ruby.h"
#include "ruby/util.h"
#include <math.h>
#include <float.h>
#include <ctype.h>
#include <assert.h>
Go to the source code of this file.
Data Structures | |
struct | big_div_struct |
Defines | |
#define | BDIGITS(x) (RBIGNUM_DIGITS(x)) |
#define | BITSPERDIG (SIZEOF_BDIGITS*CHAR_BIT) |
#define | BIGRAD ((BDIGIT_DBL)1 << BITSPERDIG) |
#define | DIGSPERLONG (SIZEOF_LONG/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 | BIGZEROP(x) |
#define | RBIGNUM_SET_LEN(b, l) |
#define | bignew(len, sign) bignew_1(rb_cBignum,len,sign) |
#define | QUAD_SIZE 8 |
#define | BNEG(b) (RSHIFT(((BDIGIT*)b)[QUAD_SIZE/SIZEOF_BDIGITS-1],BITSPERDIG-1) != 0) |
#define | ISDIGIT(c) ('0' <= (c) && (c) <= '9') |
#define | conv_digit(c) |
#define | POW2_P(x) (((x)&((x)-1))==0) |
#define | MASK_55 0x55555555UL |
#define | MASK_33 0x33333333UL |
#define | MASK_0f 0x0f0f0f0fUL |
#define | LOG2_KARATSUBA_DIGITS 7 |
#define | KARATSUBA_DIGITS (1L<<LOG2_KARATSUBA_DIGITS) |
#define | MAX_BIG2STR_TABLE_ENTRIES 64 |
#define | KARATSUBA_MUL_DIGITS 70 |
#define | DBL_BIGDIG ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG) |
Functions | |
static int | bigzero_p (VALUE x) |
int | rb_bigzero_p (VALUE x) |
int | rb_cmpint (VALUE val, VALUE a, VALUE b) |
static void | rb_big_realloc (VALUE big, long len) |
void | rb_big_resize (VALUE big, long len) |
static VALUE | bignew_1 (VALUE klass, long len, int sign) |
VALUE | rb_big_new (long len, int sign) |
VALUE | rb_big_clone (VALUE x) |
static void | get2comp (VALUE x) |
void | rb_big_2comp (VALUE x) |
static VALUE | bigtrunc (VALUE x) |
static VALUE | bigfixize (VALUE x) |
static VALUE | bignorm (VALUE x) |
VALUE | rb_big_norm (VALUE x) |
VALUE | rb_uint2big (VALUE n) |
VALUE | rb_int2big (SIGNED_VALUE n) |
VALUE | rb_uint2inum (VALUE n) |
VALUE | rb_int2inum (SIGNED_VALUE n) |
void | rb_big_pack (VALUE val, unsigned long *buf, long num_longs) |
VALUE | rb_big_unpack (unsigned long *buf, long num_longs) |
static int | quad_buf_complement (char *buf, size_t len) |
void | rb_quad_pack (char *buf, VALUE val) |
VALUE | rb_quad_unpack (const char *buf, int sign) |
VALUE | rb_cstr_to_inum (const char *str, int base, int badcheck) |
VALUE | rb_str_to_inum (VALUE str, int base, int badcheck) |
VALUE | rb_cstr2inum (const char *str, int base) |
VALUE | rb_str2inum (VALUE str, int base) |
static VALUE | bigsqr (VALUE x) |
static void | bigdivmod (VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp) |
static int | ones (register unsigned long x) |
static unsigned long | next_pow2 (register unsigned long x) |
static int | floor_log2 (register unsigned long x) |
static int | ceil_log2 (register unsigned long x) |
static void | power_cache_init (void) |
static VALUE | power_cache_get_power0 (int base, int i) |
static VALUE | power_cache_get_power (int base, long n1, long *m1) |
static long | big2str_find_n1 (VALUE x, int base) |
static long | big2str_orig (VALUE x, int base, char *ptr, long len, long hbase, int trim) |
static long | big2str_karatsuba (VALUE x, int base, char *ptr, long n1, long len, long hbase, int trim) |
VALUE | rb_big2str0 (VALUE x, int base, int trim) |
VALUE | rb_big2str (VALUE x, int base) |
static VALUE | rb_big_to_s (int argc, VALUE *argv, VALUE x) |
static VALUE | big2ulong (VALUE x, const char *type, int check) |
VALUE | rb_big2ulong_pack (VALUE x) |
VALUE | rb_big2ulong (VALUE x) |
SIGNED_VALUE | rb_big2long (VALUE x) |
static VALUE | dbl2big (double d) |
VALUE | rb_dbl2big (double d) |
static int | nlz (BDIGIT x) |
static double | big2dbl (VALUE x) |
double | rb_big2dbl (VALUE x) |
static VALUE | rb_big_to_f (VALUE x) |
VALUE | rb_big_cmp (VALUE x, VALUE y) |
static VALUE | big_op (VALUE x, VALUE y, int op) |
static VALUE | big_gt (VALUE x, VALUE y) |
static VALUE | big_ge (VALUE x, VALUE y) |
static VALUE | big_lt (VALUE x, VALUE y) |
static VALUE | big_le (VALUE x, VALUE y) |
VALUE | rb_big_eq (VALUE x, VALUE y) |
static VALUE | rb_big_eql (VALUE x, VALUE y) |
VALUE | rb_big_uminus (VALUE x) |
static VALUE | rb_big_neg (VALUE x) |
static void | bigsub_core (BDIGIT *xds, long xn, BDIGIT *yds, long yn, BDIGIT *zds, long zn) |
static VALUE | bigsub (VALUE x, VALUE y) |
static VALUE | bigadd_int (VALUE x, long y) |
static VALUE | bigsub_int (VALUE x, long y0) |
static void | bigadd_core (BDIGIT *xds, long xn, BDIGIT *yds, long yn, BDIGIT *zds, long zn) |
static VALUE | bigadd (VALUE x, VALUE y, int sign) |
VALUE | rb_big_plus (VALUE x, VALUE y) |
VALUE | rb_big_minus (VALUE x, VALUE y) |
static long | big_real_len (VALUE x) |
static VALUE | bigmul1_single (VALUE x, VALUE y) |
static VALUE | bigmul1_normal (VALUE x, VALUE y) |
static VALUE | bigmul0 (VALUE x, VALUE y) |
static VALUE | bigmul1_balance (VALUE x, VALUE y) |
static void | big_split (VALUE v, long n, volatile VALUE *ph, volatile VALUE *pl) |
static VALUE | bigmul1_karatsuba (VALUE x, VALUE y) |
static VALUE | bigsqr_fast (VALUE x) |
static VALUE | big_sparse_p (VALUE x) |
VALUE | rb_big_mul (VALUE x, VALUE y) |
static VALUE | bigdivrem1 (void *ptr) |
static void | rb_big_stop (void *ptr) |
static VALUE | bigdivrem (VALUE x, VALUE y, volatile VALUE *divp, volatile VALUE *modp) |
static VALUE | rb_big_divide (VALUE x, VALUE y, ID op) |
VALUE | rb_big_div (VALUE x, VALUE y) |
VALUE | rb_big_idiv (VALUE x, VALUE y) |
VALUE | rb_big_modulo (VALUE x, VALUE y) |
static VALUE | rb_big_remainder (VALUE x, VALUE y) |
VALUE | rb_big_divmod (VALUE x, VALUE y) |
static int | bdigbitsize (BDIGIT x) |
static VALUE | big_lshift (VALUE, unsigned long) |
static VALUE | big_rshift (VALUE, unsigned long) |
static VALUE | big_shift (VALUE x, long n) |
static VALUE | big_fdiv (VALUE x, VALUE y) |
VALUE | rb_big_fdiv (VALUE x, VALUE y) |
VALUE | rb_big_pow (VALUE x, VALUE y) |
static VALUE | bit_coerce (VALUE x) |
static VALUE | bigand_int (VALUE x, long y) |
VALUE | rb_big_and (VALUE xx, VALUE yy) |
static VALUE | bigor_int (VALUE x, long y) |
VALUE | rb_big_or (VALUE xx, VALUE yy) |
static VALUE | bigxor_int (VALUE x, long y) |
VALUE | rb_big_xor (VALUE xx, VALUE yy) |
static VALUE | check_shiftdown (VALUE y, VALUE x) |
VALUE | rb_big_lshift (VALUE x, VALUE y) |
VALUE | rb_big_rshift (VALUE x, VALUE y) |
static VALUE | rb_big_aref (VALUE x, VALUE y) |
static VALUE | rb_big_hash (VALUE x) |
static VALUE | rb_big_coerce (VALUE x, VALUE y) |
static VALUE | rb_big_abs (VALUE x) |
static VALUE | rb_big_size (VALUE big) |
static VALUE | rb_big_odd_p (VALUE num) |
static VALUE | rb_big_even_p (VALUE num) |
void | Init_Bignum (void) |
Variables | |
VALUE | rb_cBignum |
const char | ruby_digitmap [] = "0123456789abcdefghijklmnopqrstuvwxyz" |
static VALUE | big2str_power_cache [35][MAX_BIG2STR_TABLE_ENTRIES] |
#define BDIGITS | ( | x | ) | (RBIGNUM_DIGITS(x)) |
Definition at line 29 of file bignum.c.
Referenced by big2dbl(), big2str_orig(), big2ulong(), big_fdiv(), big_lshift(), big_real_len(), big_rshift(), big_sparse_p(), big_split(), bigadd(), bigadd_int(), bigand_int(), bigdivrem(), bigfixize(), bigmul1_balance(), bigmul1_karatsuba(), bigmul1_normal(), bigmul1_single(), bigor_int(), bigsqr_fast(), bigsub(), bigsub_int(), bigtrunc(), bigxor_int(), bigzero_p(), dbl2big(), get2comp(), rb_big_and(), rb_big_aref(), rb_big_clone(), rb_big_cmp(), rb_big_eq(), rb_big_eql(), rb_big_even_p(), rb_big_hash(), rb_big_neg(), rb_big_odd_p(), rb_big_or(), rb_big_pack(), rb_big_unpack(), rb_big_xor(), rb_cstr_to_inum(), rb_quad_pack(), rb_quad_unpack(), and rb_uint2big().
#define BIGDN | ( | x | ) | RSHIFT(x,BITSPERDIG) |
Definition at line 37 of file bignum.c.
Referenced by big_lshift(), bigadd_core(), bigadd_int(), bigand_int(), bigdivrem(), bigdivrem1(), bigmul1_normal(), bigmul1_single(), bigor_int(), bigsqr_fast(), bigsub_core(), bigsub_int(), bigxor_int(), get2comp(), rb_big_aref(), rb_big_unpack(), rb_cstr_to_inum(), and rb_uint2big().
#define BIGLO | ( | x | ) | ((BDIGIT)((x) & (BIGRAD-1))) |
Definition at line 38 of file bignum.c.
Referenced by big_lshift(), big_rshift(), bigadd_core(), bigadd_int(), bigand_int(), bigdivrem(), bigdivrem1(), bigmul1_normal(), bigmul1_single(), bigor_int(), bigsqr_fast(), bigsub_core(), bigsub_int(), bigxor_int(), get2comp(), rb_big_unpack(), rb_cstr_to_inum(), and rb_uint2big().
#define bignew | ( | len, | ||
sign | ||||
) | bignew_1(rb_cBignum,len,sign) |
Definition at line 151 of file bignum.c.
Referenced by big_lshift(), big_rshift(), big_split(), bigadd(), bigadd_int(), bigand_int(), bigdivrem(), bigmul1_balance(), bigmul1_karatsuba(), bigmul1_normal(), bigmul1_single(), bigor_int(), bigsqr_fast(), bigsub(), bigsub_int(), bigxor_int(), dbl2big(), rb_big_and(), rb_big_new(), rb_big_or(), rb_big_unpack(), rb_big_xor(), rb_cstr_to_inum(), rb_quad_unpack(), and rb_uint2big().
#define BIGRAD ((BDIGIT_DBL)1 << BITSPERDIG) |
Definition at line 31 of file bignum.c.
Referenced by big2dbl(), bigdivrem1(), bigor_int(), dbl2big(), and rb_big_or().
#define BIGUP | ( | x | ) | ((BDIGIT_DBL)(x) << BITSPERDIG) |
Definition at line 36 of file bignum.c.
Referenced by big2str_orig(), big2ulong(), big_rshift(), bigdivrem(), bigdivrem1(), and bigfixize().
#define BIGZEROP | ( | x | ) |
(RBIGNUM_LEN(x) == 0 || \ (BDIGITS(x)[0] == 0 && \ (RBIGNUM_LEN(x) == 1 || bigzero_p(x))))
Definition at line 41 of file bignum.c.
Referenced by big2str_find_n1(), big2str_karatsuba(), bigdivmod(), bigdivrem(), bigmul1_karatsuba(), rb_big2str0(), rb_big_pow(), rb_bigzero_p(), and rb_cmpint().
#define BITSPERDIG (SIZEOF_BDIGITS*CHAR_BIT) |
Definition at line 30 of file bignum.c.
Referenced by bdigbitsize(), big2dbl(), big2str_find_n1(), big_lshift(), big_rshift(), bigdivrem(), and rb_big_pack().
#define BNEG | ( | b | ) | (RSHIFT(((BDIGIT*)b)[QUAD_SIZE/SIZEOF_BDIGITS-1],BITSPERDIG-1) != 0) |
Definition at line 514 of file bignum.c.
Referenced by rb_quad_unpack().
#define conv_digit | ( | c | ) |
(!ISASCII(c) ? -1 : \ ISDIGIT(c) ? ((c) - '0') : \ ISLOWER(c) ? ((c) - 'a' + 10) : \ ISUPPER(c) ? ((c) - 'A' + 10) : \ -1)
Referenced by rb_cstr_to_inum().
#define DBL_BIGDIG ((DBL_MANT_DIG + BITSPERDIG) / BITSPERDIG) |
Referenced by big_fdiv().
#define DIGSPERLONG (SIZEOF_LONG/SIZEOF_BDIGITS) |
Definition at line 32 of file bignum.c.
Referenced by big2ulong(), rb_big_aref(), rb_big_pack(), and rb_uint2big().
#define ISDIGIT | ( | c | ) | ('0' <= (c) && (c) <= '9') |
#define KARATSUBA_DIGITS (1L<<LOG2_KARATSUBA_DIGITS) |
Definition at line 894 of file bignum.c.
Referenced by big2str_karatsuba(), power_cache_get_power(), power_cache_get_power0(), and rb_big2str0().
#define MASK_0f 0x0f0f0f0fUL |
#define MASK_33 0x33333333UL |
Referenced by ones().
#define MASK_55 0x55555555UL |
Referenced by ones().
#define MAX_BIG2STR_TABLE_ENTRIES 64 |
Definition at line 895 of file bignum.c.
Referenced by power_cache_get_power().
#define POW2_P | ( | x | ) | (((x)&((x)-1))==0) |
Definition at line 831 of file bignum.c.
Referenced by ceil_log2().
#define QUAD_SIZE 8 |
Definition at line 408 of file bignum.c.
Referenced by rb_quad_pack(), and rb_quad_unpack().
#define RBIGNUM_SET_LEN | ( | b, | ||
l | ||||
) |
((RBASIC(b)->flags & RBIGNUM_EMBED_FLAG) ? \ (void)(RBASIC(b)->flags = \ (RBASIC(b)->flags & ~RBIGNUM_EMBED_LEN_MASK) | \ ((l) << RBIGNUM_EMBED_LEN_SHIFT)) : \ (void)(RBIGNUM(b)->as.heap.len = (l)))
Definition at line 85 of file bignum.c.
Referenced by bigdivrem(), bigmul1_balance(), bignew_1(), rb_big_realloc(), rb_big_resize(), and rb_uint2big().
static int bdigbitsize | ( | BDIGIT | x | ) | [static] |
Definition at line 2641 of file bignum.c.
References BDIGIT, BITSPERDIG, and size.
Referenced by big_fdiv().
static double big2dbl | ( | VALUE | x | ) | [static] |
Definition at line 1305 of file bignum.c.
References BDIGIT, BDIGITS, BIGRAD, bigtrunc(), BITSPERDIG, DBL_MANT_DIG, DBL_MAX_EXP, nlz(), RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by big_fdiv(), rb_big2dbl(), and rb_big_fdiv().
static long big2str_find_n1 | ( | VALUE | x, | |
int | base | |||
) | [static] |
Definition at line 961 of file bignum.c.
References BIGZEROP, BITSPERDIG, CHAR_BIT, FIXNUM_P, LONG_MAX, rb_bug(), rb_eRangeError, rb_raise(), and RBIGNUM_LEN.
Referenced by rb_big2str0().
static long big2str_karatsuba | ( | VALUE | x, | |
int | base, | |||
char * | ptr, | |||
long | n1, | |||
long | len, | |||
long | hbase, | |||
int | trim | |||
) | [static] |
Definition at line 1031 of file bignum.c.
References big2str_orig(), bigdivmod(), BIGZEROP, KARATSUBA_DIGITS, power_cache_get_power(), and rb_big_resize().
Referenced by rb_big2str0().
static long big2str_orig | ( | VALUE | x, | |
int | base, | |||
char * | ptr, | |||
long | len, | |||
long | hbase, | |||
int | trim | |||
) | [static] |
Definition at line 999 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGUP, MEMMOVE, and RBIGNUM_LEN.
Referenced by big2str_karatsuba(), and rb_big2str0().
Definition at line 1143 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGUP, DIGSPERLONG, len, rb_eRangeError, rb_raise(), and RBIGNUM_LEN.
Referenced by rb_big2long(), rb_big2ulong(), rb_big2ulong_pack(), rb_big_aref(), rb_big_lshift(), and rb_big_rshift().
Definition at line 2675 of file bignum.c.
References bdigbitsize(), BDIGITS, big2dbl(), big_shift(), bigdivrem(), bigtrunc(), dbl2big(), DBL2NUM, DBL_BIGDIG, DBL_MANT_DIG, FIX2LONG, INFINITY, rb_bug(), rb_int2big(), RBIGNUM_LEN, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by rb_big_fdiv().
Definition at line 3184 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, BITSPERDIG, RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by big_shift(), rb_big_lshift(), and rb_big_rshift().
Definition at line 1440 of file bignum.c.
References FIX2INT, INT2FIX, isinf(), NIL_P, Qtrue, rb_big2dbl(), rb_big_cmp(), rb_dbl_cmp(), rb_intern, rb_num_coerce_relop(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
static long big_real_len | ( | VALUE | x | ) | [static] |
Definition at line 1953 of file bignum.c.
References BDIGIT, BDIGITS, and RBIGNUM_LEN.
Referenced by bigmul1_balance(), and bigmul1_karatsuba().
Definition at line 3250 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGLO, bignew, BIGUP, BITSPERDIG, get2comp(), INT2FIX, rb_big_clone(), RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by big_shift(), rb_big_lshift(), and rb_big_rshift().
Definition at line 2665 of file bignum.c.
References big_lshift(), and big_rshift().
Referenced by big_fdiv().
Definition at line 2214 of file bignum.c.
References BDIGITS, Qtrue, rb_rand_internal(), and RBIGNUM_LEN.
Referenced by bigmul0().
Definition at line 2051 of file bignum.c.
References BDIGIT, BDIGITS, bignew, MEMCPY, and RBIGNUM_LEN.
Referenced by bigmul1_karatsuba().
Definition at line 1852 of file bignum.c.
References BDIGITS, bigadd_core(), bignew, bigsub(), RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by bigdivmod(), rb_big_minus(), and rb_big_plus().
static void bigadd_core | ( | BDIGIT * | xds, | |
long | xn, | |||
BDIGIT * | yds, | |||
long | yn, | |||
BDIGIT * | zds, | |||
long | zn | |||
) | [static] |
Definition at line 1818 of file bignum.c.
References assert, BDIGIT, BDIGIT_DBL, BIGDN, and BIGLO.
Referenced by bigadd(), bigmul1_balance(), and bigmul1_karatsuba().
Definition at line 1766 of file bignum.c.
References assert, BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by rb_big_minus(), and rb_big_plus().
Definition at line 2850 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), get2comp(), INT2FIX, LONG2NUM, RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by rb_big_and().
Definition at line 2477 of file bignum.c.
References bigadd(), bigdivrem(), BIGZEROP, rb_int2big(), and RBIGNUM_SIGN.
Referenced by big2str_karatsuba(), rb_big_divide(), rb_big_divmod(), and rb_big_modulo().
Definition at line 2362 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, bigdivrem1(), BIGDN, BIGLO, bignew, BIGUP, BIGZEROP, BITSPERDIG, big_div_struct::nx, big_div_struct::ny, rb_big_clone(), rb_big_stop(), RB_GC_GUARD, rb_int2big(), rb_num_zerodiv(), rb_thread_blocking_region(), rb_uint2big(), RBIGNUM_LEN, RBIGNUM_SET_LEN, RBIGNUM_SET_SIGN, RBIGNUM_SIGN, big_div_struct::stop, big_div_struct::yds, and big_div_struct::zds.
Referenced by big_fdiv(), bigdivmod(), and rb_big_remainder().
static VALUE bigdivrem1 | ( | void * | ptr | ) | [static] |
Definition at line 2310 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGIT_DBL_SIGNED, BIGDN, BIGLO, BIGRAD, BIGUP, big_div_struct::nx, big_div_struct::ny, big_div_struct::stop, big_div_struct::yds, and big_div_struct::zds.
Referenced by bigdivrem().
Definition at line 213 of file bignum.c.
References BDIGIT, BDIGITS, BIGUP, INT2FIX, len, LONG2FIX, NEGFIXABLE, POSFIXABLE, RBIGNUM_LEN, RBIGNUM_SIGN, and SIZEOF_BDIGITS.
Referenced by bignorm().
Definition at line 2240 of file bignum.c.
References assert, big_sparse_p(), bigmul1_balance(), bigmul1_karatsuba(), bigmul1_normal(), bigmul1_single(), bigsqr_fast(), KARATSUBA_MUL_DIGITS, and RBIGNUM_LEN.
Referenced by bigmul1_balance(), bigmul1_karatsuba(), bigsqr(), rb_big_mul(), and rb_big_pow().
Definition at line 2014 of file bignum.c.
References assert, BDIGIT, BDIGITS, big_real_len(), bigadd_core(), bigmul0(), bignew, MEMCPY, RBIGNUM_LEN, RBIGNUM_SET_LEN, and RBIGNUM_SIGN.
Referenced by bigmul0().
Definition at line 2078 of file bignum.c.
References BDIGIT, BDIGITS, big_real_len(), big_split(), bigadd_core(), bigmul0(), bignew, bigsub_core(), BIGZEROP, MEMCPY, Qundef, RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by bigmul0().
Definition at line 1980 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, rb_thread_check_ints(), RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by bigmul0().
Definition at line 1962 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, and RBIGNUM_SIGN.
Referenced by bigmul0().
Definition at line 134 of file bignum.c.
References ALLOC_N, BDIGIT, NEWOBJ, OBJSETUP, RBASIC, RBIGNUM, RBIGNUM_EMBED_LEN_MAX, RBIGNUM_SET_LEN, RBIGNUM_SET_SIGN, and T_BIGNUM.
Referenced by rb_big_clone().
Definition at line 241 of file bignum.c.
References bigfixize(), bigtrunc(), FIXNUM_P, T_BIGNUM, and TYPE.
Referenced by bigadd_int(), bigand_int(), bigor_int(), bigsub_int(), bigxor_int(), rb_big_and(), rb_big_divide(), rb_big_divmod(), rb_big_lshift(), rb_big_minus(), rb_big_modulo(), rb_big_mul(), rb_big_neg(), rb_big_norm(), rb_big_or(), rb_big_plus(), rb_big_pow(), rb_big_remainder(), rb_big_rshift(), rb_big_uminus(), rb_big_unpack(), rb_big_xor(), rb_cstr_to_inum(), rb_dbl2big(), and rb_quad_unpack().
Definition at line 2949 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), BIGRAD, get2comp(), RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by rb_big_or().
Definition at line 2767 of file bignum.c.
References bigmul0(), and bigtrunc().
Referenced by power_cache_get_power(), power_cache_get_power0(), and rb_big_pow().
Definition at line 2177 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, and RBIGNUM_LEN.
Referenced by bigmul0().
Definition at line 1680 of file bignum.c.
References BDIGIT, BDIGITS, bignew, bigsub_core(), and RBIGNUM_LEN.
Referenced by bigadd(), and bigsub_int().
static void bigsub_core | ( | BDIGIT * | xds, | |
long | xn, | |||
BDIGIT * | yds, | |||
long | yn, | |||
BDIGIT * | zds, | |||
long | zn | |||
) | [static] |
Definition at line 1654 of file bignum.c.
References assert, BDIGIT_DBL_SIGNED, BIGDN, and BIGLO.
Referenced by bigmul1_karatsuba(), and bigsub().
Definition at line 1716 of file bignum.c.
References BDIGIT, BDIGIT_DBL_SIGNED, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), bigsub(), rb_int2big(), RBIGNUM_LEN, RBIGNUM_SET_SIGN, and RBIGNUM_SIGN.
Referenced by rb_big_minus(), and rb_big_plus().
Definition at line 199 of file bignum.c.
References BDIGIT, BDIGITS, len, rb_big_resize(), and RBIGNUM_LEN.
Referenced by big2dbl(), big_fdiv(), bignorm(), bigsqr(), rb_big_aref(), and rb_big_pow().
Definition at line 3041 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), get2comp(), RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by rb_big_xor().
static int bigzero_p | ( | VALUE | x | ) | [static] |
Definition at line 46 of file bignum.c.
References BDIGIT, BDIGITS, and RBIGNUM_LEN.
Definition at line 2838 of file bignum.c.
References FIXNUM_P, rb_eTypeError, rb_raise(), rb_to_int(), T_BIGNUM, T_FLOAT, and TYPE.
Referenced by rb_big_and(), rb_big_or(), and rb_big_xor().
static int ceil_log2 | ( | register unsigned long | x | ) | [inline, static] |
Definition at line 888 of file bignum.c.
References floor_log2(), and POW2_P.
Referenced by power_cache_get_power().
Definition at line 3136 of file bignum.c.
References INT2FIX, RBIGNUM_LEN, RBIGNUM_SIGN, and SIZEOF_BDIGITS.
Referenced by rb_big_lshift(), and rb_big_rshift().
static VALUE dbl2big | ( | double | d | ) | [static] |
Definition at line 1246 of file bignum.c.
References BDIGIT, BDIGITS, bignew, BIGRAD, isinf(), isnan, POSFIXABLE, rb_eFloatDomainError, and rb_raise().
Referenced by big_fdiv(), and rb_dbl2big().
static int floor_log2 | ( | register unsigned long | x | ) | [inline, static] |
static void get2comp | ( | VALUE | x | ) | [static] |
Definition at line 171 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, rb_big_resize(), and RBIGNUM_LEN.
Referenced by big_rshift(), bigand_int(), bigor_int(), bigxor_int(), rb_big_2comp(), rb_big_and(), rb_big_neg(), rb_big_or(), rb_big_unpack(), and rb_big_xor().
void Init_Bignum | ( | void | ) |
Definition at line 3478 of file bignum.c.
References big_ge(), big_gt(), big_le(), big_lt(), power_cache_init(), rb_big_abs(), rb_big_and(), rb_big_aref(), rb_big_cmp(), rb_big_coerce(), rb_big_div(), rb_big_divmod(), rb_big_eq(), rb_big_eql(), rb_big_even_p(), rb_big_fdiv(), rb_big_hash(), rb_big_idiv(), rb_big_lshift(), rb_big_minus(), rb_big_modulo(), rb_big_mul(), rb_big_neg(), rb_big_odd_p(), rb_big_or(), rb_big_plus(), rb_big_pow(), rb_big_remainder(), rb_big_rshift(), rb_big_size(), rb_big_to_f(), rb_big_to_s(), rb_big_uminus(), rb_big_xor(), rb_cBignum, rb_cInteger, rb_define_class(), and rb_define_method().
static unsigned long next_pow2 | ( | register unsigned long | x | ) | [inline, static] |
static int nlz | ( | BDIGIT | x | ) | [static] |
static int ones | ( | register unsigned long | x | ) | [inline, static] |
Definition at line 834 of file bignum.c.
References MASK_33, and MASK_55.
Referenced by floor_log2().
static VALUE power_cache_get_power | ( | int | base, | |
long | n1, | |||
long * | m1 | |||
) | [static] |
Definition at line 923 of file bignum.c.
References bigsqr(), ceil_log2(), KARATSUBA_DIGITS, MAX_BIG2STR_TABLE_ENTRIES, power_cache_get_power0(), and rb_bug().
Referenced by big2str_karatsuba().
static VALUE power_cache_get_power0 | ( | int | base, | |
int | i | |||
) | [inline, static] |
Definition at line 911 of file bignum.c.
References bigsqr(), INT2FIX, KARATSUBA_DIGITS, NIL_P, rb_big_pow(), rb_gc_register_mark_object(), and rb_int2big().
Referenced by power_cache_get_power().
static void power_cache_init | ( | void | ) | [static] |
Definition at line 900 of file bignum.c.
Referenced by Init_Bignum().
static int quad_buf_complement | ( | char * | buf, | |
size_t | len | |||
) | [static] |
Definition at line 481 of file bignum.c.
Referenced by rb_quad_pack(), and rb_quad_unpack().
double rb_big2dbl | ( | VALUE | x | ) |
Definition at line 1354 of file bignum.c.
References big2dbl(), isinf(), and rb_warning().
Referenced by big_op(), flo_cmp(), flo_div(), flo_divmod(), flo_eq(), flo_ge(), flo_gt(), flo_le(), flo_lt(), flo_minus(), flo_mod(), flo_mul(), flo_plus(), flo_pow(), int_pair_to_real_inclusive(), ole_val2ptr_variant(), ole_val2variant(), rb_big_cmp(), rb_big_divide(), rb_big_eq(), rb_big_fdiv(), rb_big_minus(), rb_big_mul(), rb_big_plus(), rb_big_pow(), rb_big_to_f(), and rb_Float().
SIGNED_VALUE rb_big2long | ( | VALUE | x | ) |
Definition at line 1188 of file bignum.c.
References big2ulong(), LONG_MIN, rb_eRangeError, rb_raise(), RBIGNUM_SIGN, SIGNED_VALUE, and TRUE.
Referenced by rb_num2long().
Definition at line 1108 of file bignum.c.
References rb_big2str0().
Referenced by GetVpValue(), rb_big_to_s(), and rb_str_format().
Definition at line 1062 of file bignum.c.
References big2str_find_n1(), big2str_karatsuba(), big2str_orig(), BIGZEROP, FIXNUM_P, KARATSUBA_DIGITS, len, rb_big_clone(), rb_big_resize(), rb_eArgError, rb_fix2str(), rb_raise(), rb_str_resize(), rb_usascii_str_new(), rb_usascii_str_new2(), RBIGNUM_SET_SIGN, RBIGNUM_SIGN, and RSTRING_PTR.
Referenced by rb_big2str(), and rb_str_format().
Definition at line 1174 of file bignum.c.
References big2ulong(), rb_eRangeError, rb_raise(), RBIGNUM_SIGN, SIGNED_VALUE, and TRUE.
Referenced by rb_num2ulong().
Definition at line 1164 of file bignum.c.
References big2ulong(), FALSE, and RBIGNUM_SIGN.
Referenced by rb_dlcfunc_call().
void rb_big_2comp | ( | VALUE | x | ) |
Definition at line 3400 of file bignum.c.
References rb_big_clone(), RBIGNUM_SET_SIGN, and RBIGNUM_SIGN.
Referenced by Init_Bignum().
Definition at line 2901 of file bignum.c.
References BDIGIT, BDIGITS, bigand_int(), bignew, bignorm(), bit_coerce(), FIX2LONG, FIXNUM_P, get2comp(), rb_big_clone(), RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by fix_and(), and Init_Bignum().
Definition at line 3312 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, big2ulong(), BIGDN, bigtrunc(), DIGSPERLONG, FALSE, INT2FIX, NUM2LONG(), RBIGNUM_LEN, RBIGNUM_SIGN, T_BIGNUM, and TYPE.
Referenced by Init_Bignum().
Definition at line 160 of file bignum.c.
References BDIGIT, BDIGITS, bignew_1(), CLASS_OF, len, MEMCPY, RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by big_rshift(), bigdivrem(), limited_big_rand(), rand_int(), rb_big2str0(), rb_big_abs(), rb_big_and(), rb_big_neg(), rb_big_or(), rb_big_uminus(), rb_big_xor(), and rb_str_format().
Definition at line 1394 of file bignum.c.
References BDIGIT, BDIGITS, FIX2LONG, INT2FIX, isinf(), rb_big2dbl(), rb_dbl_cmp(), rb_int2big(), rb_intern, rb_num_coerce_cmp(), RBIGNUM_LEN, RBIGNUM_SIGN, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by big_op(), fix_cmp(), fix_ge(), fix_gt(), fix_le(), fix_lt(), and Init_Bignum().
Definition at line 3374 of file bignum.c.
References FIX2LONG, FIXNUM_P, rb_assoc_new(), rb_eTypeError, rb_int2big(), rb_obj_classname(), rb_raise(), T_BIGNUM, and TYPE.
Referenced by Init_Bignum().
Definition at line 2534 of file bignum.c.
References rb_big_divide().
Referenced by fix_divide(), and Init_Bignum().
Definition at line 2493 of file bignum.c.
References bigdivmod(), bignorm(), DBL2NUM, div, FIX2LONG, rb_big2dbl(), rb_dbl2big(), rb_int2big(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by rb_big_div(), and rb_big_idiv().
Definition at line 2620 of file bignum.c.
References bigdivmod(), bignorm(), FIX2LONG, rb_assoc_new(), rb_int2big(), rb_intern, rb_num_coerce_bin(), T_BIGNUM, T_FIXNUM, and TYPE.
Referenced by fix_divmod(), Init_Bignum(), and pack_pack().
Definition at line 1557 of file bignum.c.
References BDIGIT, BDIGITS, FIX2LONG, isnan, MEMCMP, Qtrue, rb_big2dbl(), rb_equal(), rb_int2big(), RBIGNUM_LEN, RBIGNUM_SIGN, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by fix_equal(), and Init_Bignum().
Definition at line 1595 of file bignum.c.
References BDIGIT, BDIGITS, MEMCMP, RBIGNUM_LEN, RBIGNUM_SIGN, T_BIGNUM, and TYPE.
Referenced by Init_Bignum().
Definition at line 2734 of file bignum.c.
References big2dbl(), big_fdiv(), DBL2NUM, FIX2LONG, isinf(), isnan, rb_big2dbl(), rb_intern, rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by fix_fdiv(), and Init_Bignum().
Definition at line 3361 of file bignum.c.
References BDIGIT, BDIGITS, INT2FIX, rb_memhash(), RBIGNUM_LEN, and RBIGNUM_SIGN.
Referenced by Init_Bignum().
Definition at line 2547 of file bignum.c.
References rb_big_divide(), and rb_intern.
Referenced by flo_round(), and Init_Bignum().
Definition at line 3153 of file bignum.c.
References big2ulong(), big_lshift(), big_rshift(), bignorm(), check_shiftdown(), FIX2LONG, FIXNUM_P, NIL_P, rb_to_int(), RBIGNUM_SIGN, T_BIGNUM, TRUE, and TYPE.
Referenced by fix_lshift(), Init_Bignum(), and rb_fix_lshift().
Definition at line 1923 of file bignum.c.
References bigadd(), bigadd_int(), bignorm(), bigsub_int(), DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RBIGNUM_SIGN, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by fix_minus(), Init_Bignum(), rand_int(), random_rand(), sub(), and wsub().
Definition at line 2562 of file bignum.c.
References bigdivmod(), bignorm(), FIX2LONG, rb_int2big(), rb_num_coerce_bin(), T_BIGNUM, T_FIXNUM, and TYPE.
Referenced by fix_mod(), Init_Bignum(), and mod().
Definition at line 2283 of file bignum.c.
References bigmul0(), bignorm(), DBL2NUM, FIX2LONG, rb_big2dbl(), rb_int2big(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by fix_mul(), flo_round(), Init_Bignum(), int_pair_to_real_inclusive(), int_pow(), mul(), pack_unpack(), and wmul().
Definition at line 1634 of file bignum.c.
References BDIGIT, BDIGITS, bignorm(), get2comp(), INT2FIX, rb_big_clone(), RBIGNUM_LEN, RBIGNUM_SET_SIGN, RBIGNUM_SIGN, and SIGNED_VALUE.
Referenced by Init_Bignum().
VALUE rb_big_new | ( | long | len, | |
int | sign | |||
) |
Definition at line 154 of file bignum.c.
References bignew.
Referenced by int_pair_to_real_inclusive(), and mt_state().
Definition at line 250 of file bignum.c.
References bignorm().
Referenced by fix_aref(), limited_big_rand(), make_seed_value(), mt_state(), r_object0(), and random_rand().
Definition at line 2992 of file bignum.c.
References BDIGIT, BDIGITS, bignew, bignorm(), bigor_int(), BIGRAD, bit_coerce(), FIX2LONG, FIXNUM_P, get2comp(), rb_big_clone(), RBIGNUM_LEN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by fix_or(), and Init_Bignum().
void rb_big_pack | ( | VALUE | val, | |
unsigned long * | buf, | |||
long | num_longs | |||
) |
Definition at line 325 of file bignum.c.
References BDIGIT, BDIGITS, BITSPERDIG, DIGSPERLONG, FIX2LONG, FIXNUM_P, len, rb_to_int(), RBIGNUM_LEN, and RBIGNUM_NEGATIVE_P.
Referenced by pack_pack().
Definition at line 1886 of file bignum.c.
References bigadd(), bigadd_int(), bignorm(), bigsub_int(), DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RBIGNUM_SIGN, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by add(), fix_plus(), Init_Bignum(), pack_unpack(), random_rand(), and wadd().
Definition at line 2786 of file bignum.c.
References bigmul0(), bignorm(), bigsqr(), bigtrunc(), BIGZEROP, DBL2NUM, FIX2LONG, FIXNUM_MAX, INT2FIX, rb_big2dbl(), rb_complex_raw1, rb_funcall(), rb_intern, rb_num_coerce_bin(), rb_rational_raw1, rb_warn(), RBIGNUM_LEN, RBIGNUM_SIGN, RFLOAT_VALUE, round(), SIGNED_VALUE, T_BIGNUM, T_FIXNUM, T_FLOAT, and TYPE.
Referenced by fix_pow(), Init_Bignum(), int_pow(), and power_cache_get_power0().
static void rb_big_realloc | ( | VALUE | big, | |
long | len | |||
) | [static] |
Definition at line 93 of file bignum.c.
References ALLOC_N, BDIGIT, MEMCPY, RBASIC, RBIGNUM, RBIGNUM_EMBED_FLAG, RBIGNUM_EMBED_LEN_MAX, RBIGNUM_LEN, RBIGNUM_SET_LEN, REALLOC_N, and xfree().
Referenced by rb_big_resize().
Definition at line 2592 of file bignum.c.
References bigdivrem(), bignorm(), FIX2LONG, rb_int2big(), rb_intern, rb_num_coerce_bin(), T_BIGNUM, T_FIXNUM, and TYPE.
Referenced by Init_Bignum().
void rb_big_resize | ( | VALUE | big, | |
long | len | |||
) |
Definition at line 127 of file bignum.c.
References rb_big_realloc(), and RBIGNUM_SET_LEN.
Referenced by big2str_karatsuba(), bigtrunc(), get2comp(), make_seed_value(), r_object0(), and rb_big2str0().
Definition at line 3217 of file bignum.c.
References big2ulong(), big_lshift(), big_rshift(), bignorm(), check_shiftdown(), FIX2LONG, FIXNUM_P, NIL_P, rb_to_int(), RBIGNUM_SIGN, T_BIGNUM, TRUE, and TYPE.
Referenced by Init_Bignum(), int_pair_to_real_inclusive(), and rb_fix_rshift().
Definition at line 3422 of file bignum.c.
References LONG2FIX, RBIGNUM_LEN, and SIZEOF_BDIGITS.
Referenced by Init_Bignum().
static void rb_big_stop | ( | void * | ptr | ) | [static] |
Definition at line 2355 of file bignum.c.
References big_div_struct::stop.
Referenced by bigdivrem().
Definition at line 1378 of file bignum.c.
References DBL2NUM, and rb_big2dbl().
Referenced by Init_Bignum().
Definition at line 1128 of file bignum.c.
References NUM2INT, rb_big2str(), and rb_scan_args().
Referenced by Init_Bignum().
Definition at line 1612 of file bignum.c.
References bignorm(), rb_big_clone(), RBIGNUM_SET_SIGN, and RBIGNUM_SIGN.
Referenced by flo_round(), and Init_Bignum().
VALUE rb_big_unpack | ( | unsigned long * | buf, | |
long | num_longs | |||
) |
Definition at line 367 of file bignum.c.
References BDIGIT, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), get2comp(), INT2FIX, len, LONG2NUM, and RBIGNUM_SET_SIGN.
Referenced by pack_unpack().
Definition at line 3083 of file bignum.c.
References BDIGIT, BDIGITS, bignew, bignorm(), bigxor_int(), bit_coerce(), FIX2LONG, FIXNUM_P, get2comp(), rb_big_clone(), RBIGNUM_LEN, RBIGNUM_SET_SIGN, RBIGNUM_SIGN, and big_div_struct::zds.
Referenced by fix_xor(), and Init_Bignum().
int rb_bigzero_p | ( | VALUE | x | ) |
Definition at line 58 of file bignum.c.
References BIGZEROP.
Referenced by rand_int(), and random_rand().
Definition at line 64 of file bignum.c.
References BIGZEROP, FIX2LONG, FIXNUM_P, INT2FIX, NIL_P, rb_cmperr(), rb_funcall(), RBIGNUM_SIGN, RTEST, T_BIGNUM, and TYPE.
Referenced by cmp(), cmp_eq(), cmp_ge(), cmp_gt(), cmp_le(), cmp_lt(), max_by_i(), max_i(), max_ii(), min_by_i(), min_i(), min_ii(), minmax_by_i(), minmax_by_i_update(), minmax_i(), minmax_i_update(), minmax_ii(), minmax_ii_update(), r_le(), r_lt(), range_max(), range_min(), sort_1(), sort_2(), sort_by_cmp(), time_cmp(), and wcmp().
VALUE rb_cstr2inum | ( | const char * | str, | |
int | base | |||
) |
Definition at line 815 of file bignum.c.
References rb_cstr_to_inum().
Referenced by yaml_org_handler().
VALUE rb_cstr_to_inum | ( | const char * | str, | |
int | base, | |||
int | badcheck | |||
) |
Definition at line 535 of file bignum.c.
References bad, BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, bignorm(), CHAR_BIT, conv_digit, INT2FIX, ISSPACE, len, LONG2FIX, POSFIXABLE, rb_eArgError, rb_invalid_str(), rb_raise(), rb_uint2big(), RBIGNUM_SET_SIGN, result, and STRTOUL.
Referenced by asn1integer_to_num(), ossl_bn_to_i(), parser_yylex(), rb_cstr2inum(), rb_str_to_inum(), and tkstr_to_int().
VALUE rb_dbl2big | ( | double | d | ) |
Definition at line 1278 of file bignum.c.
References bignorm(), and dbl2big().
Referenced by dbl2ival(), fix_divide(), flo_ceil(), flo_floor(), flo_round(), flo_truncate(), float_decode_internal(), rb_big_divide(), rb_convert_to_integer(), and rb_str_format().
VALUE rb_int2big | ( | SIGNED_VALUE | n | ) |
Definition at line 277 of file bignum.c.
References neg, rb_uint2big(), and RBIGNUM_SET_SIGN.
Referenced by big_fdiv(), bigdivmod(), bigdivrem(), bigsub_int(), fix_cmp(), fix_divide(), fix_divmod(), fix_fdiv(), fix_ge(), fix_gt(), fix_le(), fix_lshift(), fix_lt(), fix_minus(), fix_mod(), fix_mul(), fix_pow(), int_pow(), power_cache_get_power0(), rb_big_cmp(), rb_big_coerce(), rb_big_divide(), rb_big_divmod(), rb_big_eq(), rb_big_modulo(), rb_big_mul(), rb_big_remainder(), rb_fix_lshift(), rb_fix_rshift(), rb_int2inum(), rb_quad_pack(), rb_str_format(), and w_object().
VALUE rb_int2inum | ( | SIGNED_VALUE | n | ) |
Definition at line 301 of file bignum.c.
References FIXABLE, LONG2FIX, and rb_int2big().
void rb_quad_pack | ( | char * | buf, | |
VALUE | val | |||
) |
Definition at line 495 of file bignum.c.
References BDIGITS, FIX2LONG, FIXNUM_P, len, quad_buf_complement(), QUAD_SIZE, rb_int2big(), rb_to_int(), RBIGNUM_LEN, and RBIGNUM_NEGATIVE_P.
VALUE rb_quad_unpack | ( | const char * | buf, | |
int | sign | |||
) |
Definition at line 517 of file bignum.c.
References BDIGITS, bignew, bignorm(), BNEG, quad_buf_complement(), QUAD_SIZE, RBIGNUM_SET_SIGN, and SIZEOF_BDIGITS.
Definition at line 821 of file bignum.c.
References rb_str_to_inum().
Referenced by syck_resolver_transfer().
Definition at line 733 of file bignum.c.
References ALLOCA_N, len, MEMCPY, rb_cstr_to_inum(), RSTRING_LEN, RSTRING_PTR, StringValue, and StringValueCStr.
Referenced by obj2int(), obj2subsecx(), obj2vint(), rb_convert_to_integer(), rb_str2inum(), rb_str_format(), rb_str_hex(), rb_str_oct(), rb_str_to_i(), rb_str_upto(), and usec2subsecx().
Definition at line 256 of file bignum.c.
References BDIGIT, BDIGIT_DBL, BDIGITS, BIGDN, BIGLO, bignew, DIGSPERLONG, and RBIGNUM_SET_LEN.
Referenced by bigdivrem(), pack_pack(), pack_unpack(), rb_cstr_to_inum(), rb_int2big(), and rb_uint2inum().
Definition at line 294 of file bignum.c.
References LONG2FIX, POSFIXABLE, and rb_uint2big().
Referenced by do_checksum(), gc_profile_record_get(), rb_zlib_crc_table(), rb_zstream_adler(), rb_zstream_avail_out(), rb_zstream_total_in(), and rb_zstream_total_out().
VALUE big2str_power_cache[35][MAX_BIG2STR_TABLE_ENTRIES] [static] |
Definition at line 23 of file bignum.c.
Referenced by Init_Bignum(), Init_RandomSeed2(), k_bignum_p(), make_seed_value(), r_object0(), and syck_resolver_transfer().
const char ruby_digitmap[] = "0123456789abcdefghijklmnopqrstuvwxyz" |
Definition at line 826 of file bignum.c.
Referenced by rb_fix2str().