Ruby
2.1.10p492(2016-04-01revision54464)
|
#include "ruby/ruby.h"
#include "ruby/encoding.h"
#include "ruby/util.h"
#include "internal.h"
#include "id.h"
#include <ctype.h>
#include <math.h>
#include <stdio.h>
Go to the source code of this file.
Macros | |
#define | FLT_RADIX 2 |
#define | FLT_ROUNDS 1 |
#define | DBL_MIN 2.2250738585072014e-308 |
#define | DBL_MAX 1.7976931348623157e+308 |
#define | DBL_MIN_EXP (-1021) |
#define | DBL_MAX_EXP 1024 |
#define | DBL_MIN_10_EXP (-307) |
#define | DBL_MAX_10_EXP 308 |
#define | DBL_DIG 15 |
#define | DBL_MANT_DIG 53 |
#define | DBL_EPSILON 2.2204460492503131e-16 |
#define | NUMERR_TYPE 1 |
#define | NUMERR_NEGATIVE 2 |
#define | NUMERR_TOOLARGE 3 |
#define | method_basic_p(klass) rb_method_basic_definition_p(klass, mid) |
#define | LONG_MIN_MINUS_ONE ((double)LONG_MIN-1) |
#define | LONG_MAX_PLUS_ONE (2*(double)(LONG_MAX/2+1)) |
#define | ULONG_MAX_PLUS_ONE (2*(double)(ULONG_MAX/2+1)) |
#define | LONG_MIN_MINUS_ONE_IS_LESS_THAN(n) |
#define | int_succ rb_int_succ |
#define | int_pred rb_int_pred |
#define | SQRT_LONG_MAX ((SIGNED_VALUE)1<<((SIZEOF_LONG*CHAR_BIT-1)/2)) |
#define | FIT_SQRT_LONG(n) (((n)<SQRT_LONG_MAX)&&((n)>=-SQRT_LONG_MAX)) |
#define | rb_intern(str) rb_intern_const(str) |
Variables | |
const union bytesequence4_or_float | rb_infinity = {{0x00, 0x00, 0x80, 0x7f}} |
const union bytesequence4_or_float | rb_nan = {{0x00, 0x00, 0xc0, 0x7f}} |
static ID | id_coerce |
static ID | id_to_i |
static ID | id_eq |
static ID | id_div |
static ID | id_cmp |
VALUE | rb_cNumeric |
VALUE | rb_cFloat |
VALUE | rb_cInteger |
VALUE | rb_cFixnum |
VALUE | rb_eZeroDivError |
VALUE | rb_eFloatDomainError |
static ID | id_to |
static ID | id_by |
#define DBL_DIG 15 |
Definition at line 67 of file numeric.c.
Referenced by BigDecimal_add(), BigDecimal_coerce(), BigDecimal_divide(), BigDecimal_divremain(), BigDecimal_DoDivmod(), BigDecimal_mult(), BigDecimal_new(), BigDecimal_power(), BigDecimal_sub(), BigDecimalCmp(), BigMath_s_exp(), BigMath_s_log(), flo_round(), flo_to_s(), GetVpValueWithPrec(), Init_Numeric(), rb_cstr_to_dbl(), rmpd_double_figures(), and ruby_strtod().
#define DBL_EPSILON 2.2204460492503131e-16 |
Definition at line 73 of file numeric.c.
Referenced by Init_Numeric(), and ruby_float_step_size().
#define DBL_MANT_DIG 53 |
Definition at line 70 of file numeric.c.
Referenced by flo_to_s(), and Init_Numeric().
#define DBL_MAX 1.7976931348623157e+308 |
Definition at line 52 of file numeric.c.
Referenced by Init_Numeric().
#define DBL_MAX_10_EXP 308 |
Definition at line 64 of file numeric.c.
Referenced by BigDecimal_to_f(), Init_Numeric(), and ruby_strtod().
#define DBL_MAX_EXP 1024 |
Definition at line 58 of file numeric.c.
Referenced by big2dbl(), Init_Numeric(), math_log(), math_log10(), math_log2(), ruby_hdtoa(), and ruby_strtod().
#define DBL_MIN 2.2250738585072014e-308 |
Definition at line 49 of file numeric.c.
Referenced by Init_Numeric().
#define DBL_MIN_10_EXP (-307) |
Definition at line 61 of file numeric.c.
Referenced by BigDecimal_to_f(), and Init_Numeric().
#define DBL_MIN_EXP (-1021) |
Definition at line 55 of file numeric.c.
Referenced by Init_Numeric().
#define FIT_SQRT_LONG | ( | n | ) | (((n)<SQRT_LONG_MAX)&&((n)>=-SQRT_LONG_MAX)) |
#define FLT_RADIX 2 |
Definition at line 43 of file numeric.c.
Referenced by float_to_r(), Init_Numeric(), rb_flt_rationalize(), and ruby_strtod().
#define FLT_ROUNDS 1 |
Definition at line 46 of file numeric.c.
Referenced by Init_Numeric().
#define int_pred rb_int_pred |
Definition at line 2520 of file numeric.c.
Referenced by Init_Numeric().
#define int_succ rb_int_succ |
Definition at line 2495 of file numeric.c.
Referenced by Init_Numeric().
#define LONG_MAX_PLUS_ONE (2*(double)(LONG_MAX/2+1)) |
Definition at line 2030 of file numeric.c.
Referenced by rb_num2long().
#define LONG_MIN_MINUS_ONE_IS_LESS_THAN | ( | n | ) |
Definition at line 2032 of file numeric.c.
Referenced by rb_num2long(), and rb_num2ulong_internal().
#define method_basic_p | ( | klass | ) | rb_method_basic_definition_p(klass, mid) |
Definition at line 162 of file numeric.c.
Referenced by negative_int_p(), and positive_int_p().
#define NUMERR_NEGATIVE 2 |
Referenced by rb_num_to_uint().
#define NUMERR_TOOLARGE 3 |
Referenced by rb_num_to_uint().
#define NUMERR_TYPE 1 |
Referenced by rb_num_to_uint().
#define rb_intern | ( | str | ) | rb_intern_const(str) |
Referenced by fix_and(), fix_divmod(), fix_fdiv(), fix_ge(), fix_idiv(), fix_le(), fix_or(), fix_pow(), fix_xor(), flo_cmp(), flo_divmod(), flo_ge(), flo_le(), flo_pow(), Init_Numeric(), int_round_0(), num_abs(), num_div(), num_modulo(), and num_nonzero_p().
#define SQRT_LONG_MAX ((SIGNED_VALUE)1<<((SIZEOF_LONG*CHAR_BIT-1)/2)) |
#define ULONG_MAX_PLUS_ONE (2*(double)(ULONG_MAX/2+1)) |
Definition at line 2031 of file numeric.c.
Referenced by rb_num2ulong_internal().
Definition at line 3304 of file numeric.c.
References coerce_failed(), do_coerce(), err, FALSE, FIXNUM_P, RB_TYPE_P, T_BIGNUM, and TRUE.
Referenced by fix_and(), fix_or(), fix_xor(), and rb_num_coerce_bit().
|
static |
Definition at line 2217 of file numeric.c.
References rb_out_of_short().
Referenced by rb_fix2short(), and rb_num2short().
|
static |
Definition at line 2225 of file numeric.c.
References rb_eRangeError, and rb_raise().
Referenced by rb_fix2ushort(), and rb_num2ushort().
Definition at line 230 of file numeric.c.
References id_coerce, and rb_funcall().
Referenced by do_coerce().
Definition at line 237 of file numeric.c.
References BUILTIN_TYPE, PRIsVALUE, rb_eTypeError, rb_inspect(), rb_obj_class(), rb_raise(), SPECIAL_CONST_P, and T_FLOAT.
Referenced by bit_coerce(), and coerce_rescue().
Definition at line 250 of file numeric.c.
References coerce_failed(), and Qnil.
Referenced by do_coerce().
|
static |
Definition at line 952 of file numeric.c.
References FIXABLE, LONG2FIX, rb_dbl2big(), and round().
Referenced by fix_divmod(), flo_divmod(), and flo_round().
Definition at line 257 of file numeric.c.
References coerce_body(), coerce_rescue(), err, FALSE, id_coerce, RARRAY_AREF, RARRAY_LEN, rb_eTypeError, rb_raise(), rb_rescue(), rb_respond_to(), RB_TYPE_P, T_ARRAY, and TRUE.
Referenced by bit_coerce(), num_uminus(), rb_num_coerce_bin(), rb_num_coerce_cmp(), and rb_num_coerce_relop().
Definition at line 3534 of file numeric.c.
References FIX2LONG, and LONG2NUM.
Referenced by Init_Numeric().
Definition at line 3333 of file numeric.c.
References bit_coerce(), FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_and(), rb_funcall(), rb_intern, RB_TYPE_P, T_BIGNUM, TRUE, and val.
Referenced by Init_Numeric().
Definition at line 3477 of file numeric.c.
References CHAR_BIT, FIX2LONG, FIXNUM_P, INT2FIX, rb_big_norm(), rb_to_int(), RBIGNUM_SIGN, and val.
Referenced by Init_Numeric().
Definition at line 3168 of file numeric.c.
References FIX2LONG, FIXNUM_P, id_cmp, INT2FIX, rb_big_cmp(), rb_int2big(), rb_integer_float_cmp(), rb_num_coerce_cmp(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 2890 of file numeric.c.
References DBL2NUM, div, FIX2LONG, fixdivmod(), FIXNUM_P, LONG2NUM, rb_big_div(), rb_dbl2big(), rb_int2big(), rb_num_coerce_bin(), rb_num_zerodiv(), rb_rational_reciprocal(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FLOAT, and T_RATIONAL.
Referenced by fix_div(), and fix_idiv().
Definition at line 2991 of file numeric.c.
References dbl2ival(), DBL2NUM, div, FIX2LONG, fixdivmod(), FIXNUM_P, flodivmod(), LONG2NUM, mod, rb_assoc_new(), rb_big_divmod(), rb_int2big(), rb_intern, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3140 of file numeric.c.
References FIXNUM_P, num_equal(), Qfalse, Qtrue, rb_big_eq(), rb_integer_float_eq(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3818 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 2873 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, rb_big_fdiv(), rb_int2big(), rb_intern, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3220 of file numeric.c.
References FIX2INT, FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_int2big(), rb_integer_float_cmp(), rb_intern, rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3194 of file numeric.c.
References FIX2INT, FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_int2big(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 2948 of file numeric.c.
References fix_divide(), and rb_intern.
Referenced by Init_Numeric().
Definition at line 3272 of file numeric.c.
References FIX2INT, FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_int2big(), rb_integer_float_cmp(), rb_intern, rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
|
static |
Definition at line 3419 of file numeric.c.
References CHAR_BIT, LONG2NUM, rb_big_lshift(), rb_int2big(), ULONG2NUM, and val.
Referenced by rb_fix_lshift(), and rb_fix_rshift().
Definition at line 3246 of file numeric.c.
References FIX2INT, FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_int2big(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 2754 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_minus(), rb_int2big(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 2964 of file numeric.c.
References DBL2NUM, FIX2LONG, fixdivmod(), FIXNUM_P, LONG2NUM, mod, rb_big_modulo(), rb_int2big(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, ruby_float_mod(), T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 2793 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXABLE, FIXNUM_P, LONG2FIX, MUL_OVERFLOW_FIXNUM_P, rb_big_mul(), rb_int2big(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3802 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 3356 of file numeric.c.
References bit_coerce(), FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_or(), rb_funcall(), rb_intern, RB_TYPE_P, T_BIGNUM, TRUE, and val.
Referenced by Init_Numeric().
Definition at line 2721 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_plus(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 3074 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, INFINITY, INT2FIX, int_even_p(), int_pow(), negative_int_p(), rb_big_pow(), rb_complex_raw1, rb_funcall(), rb_int2big(), rb_intern, rb_num_coerce_bin(), rb_rational_raw1, RB_TYPE_P, RFLOAT_VALUE, round(), T_BIGNUM, and T_FLOAT.
Referenced by Init_Numeric().
|
static |
Definition at line 3452 of file numeric.c.
References CHAR_BIT, INT2FIX, LONG2FIX, and val.
Referenced by rb_fix_lshift(), and rb_fix_rshift().
Definition at line 2465 of file numeric.c.
References FIX2LONG, and LONG2NUM.
Referenced by Init_Numeric().
Definition at line 2697 of file numeric.c.
References argc, argv, NUM2INT, rb_fix2str(), and rb_scan_args().
Referenced by Init_Numeric().
Definition at line 2647 of file numeric.c.
References FIX2LONG, and LONG2NUM.
Referenced by Init_Numeric().
Definition at line 3379 of file numeric.c.
References bit_coerce(), FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_xor(), rb_funcall(), rb_intern, RB_TYPE_P, T_BIGNUM, TRUE, and val.
Referenced by Init_Numeric().
|
static |
Definition at line 2835 of file numeric.c.
References div, mod, and rb_num_zerodiv().
Referenced by fix_divide(), fix_divmod(), and fix_mod().
Definition at line 1389 of file numeric.c.
References DBL2NUM, RFLOAT_VALUE, and val.
Referenced by Init_Numeric().
Definition at line 1524 of file numeric.c.
References f, FIXABLE, LONG2FIX, rb_dbl2big(), RFLOAT_VALUE, and val.
Referenced by Init_Numeric(), and num_ceil().
Definition at line 1156 of file numeric.c.
References FIX2INT, FIXNUM_P, id_cmp, INT2FIX, isinf(), isnan, Qnil, Qundef, rb_check_funcall(), rb_cmpint(), rb_dbl_cmp(), rb_integer_float_cmp(), rb_intern, rb_num_coerce_cmp(), RB_TYPE_P, RFLOAT_VALUE, RTEST, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 743 of file numeric.c.
References rb_assoc_new(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 841 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 972 of file numeric.c.
References dbl2ival(), DBL2NUM, div, FIX2LONG, flodivmod(), mod, rb_assoc_new(), rb_big2dbl(), rb_intern, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1085 of file numeric.c.
References isnan, num_equal(), Qfalse, Qtrue, rb_integer_float_eq(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1349 of file numeric.c.
References isnan, Qfalse, Qtrue, RB_TYPE_P, RFLOAT_VALUE, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1499 of file numeric.c.
References f, FIXABLE, LONG2FIX, rb_dbl2big(), RFLOAT_VALUE, and val.
Referenced by Init_Numeric(), and num_floor().
Definition at line 1235 of file numeric.c.
References FIX2INT, FIXNUM_P, isnan, Qfalse, Qtrue, rb_integer_float_cmp(), rb_intern, rb_num_coerce_relop(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1198 of file numeric.c.
References FIX2INT, FIXNUM_P, isnan, Qfalse, Qtrue, rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1116 of file numeric.c.
References rb_dbl_hash(), and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1471 of file numeric.c.
References isinf(), isnan, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1450 of file numeric.c.
References INT2FIX, isinf(), Qnil, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1425 of file numeric.c.
References isnan, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1309 of file numeric.c.
References FIX2INT, FIXNUM_P, isnan, Qfalse, Qtrue, rb_integer_float_cmp(), rb_intern, rb_num_coerce_relop(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1272 of file numeric.c.
References FIX2INT, FIXNUM_P, isnan, Qfalse, Qtrue, rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 793 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 932 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, ruby_float_mod(), T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 817 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 769 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1006 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_complex_raw1, rb_funcall(), rb_intern, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, round(), T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1610 of file numeric.c.
References argc, argv, dbl2ival(), DBL2NUM, DBL_DIG, f, flo_truncate(), int_round_0(), isinf(), isnan, NUM2INT, rb_scan_args(), RFLOAT_VALUE, and round().
Referenced by Init_Numeric(), and num_round().
Definition at line 1371 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 661 of file numeric.c.
References buf, CHAR_BIT, DBL_DIG, DBL_MANT_DIG, isinf(), isnan, memmove(), rb_str_cat(), rb_str_catf(), rb_str_resize(), rb_usascii_str_new(), rb_usascii_str_new2, rb_usascii_str_new_cstr(), RFLOAT_VALUE, RSTRING_LEN, RSTRING_PTR, ruby_dtoa(), and xfree().
Referenced by Init_Numeric().
Definition at line 1670 of file numeric.c.
References f, FIXABLE, LONG2FIX, rb_dbl2big(), RFLOAT_VALUE, and val.
Referenced by flo_round(), Init_Numeric(), and num_truncate().
Definition at line 756 of file numeric.c.
References DBL2NUM, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1404 of file numeric.c.
References Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
|
static |
Definition at line 877 of file numeric.c.
References div, isinf(), isnan, mod, and rb_num_zerodiv().
Referenced by fix_divmod(), flo_divmod(), and ruby_float_mod().
void Init_Numeric | ( | void | ) |
Definition at line 3855 of file numeric.c.
References CLASS_OF, DBL2NUM, DBL_DIG, DBL_EPSILON, DBL_MANT_DIG, DBL_MAX, DBL_MAX_10_EXP, DBL_MAX_EXP, DBL_MIN, DBL_MIN_10_EXP, DBL_MIN_EXP, fix_abs(), fix_and(), fix_aref(), fix_cmp(), fix_div(), fix_divmod(), fix_equal(), fix_even_p(), fix_fdiv(), fix_ge(), fix_gt(), fix_idiv(), fix_le(), fix_lt(), fix_minus(), fix_mod(), fix_mul(), fix_odd_p(), fix_or(), fix_plus(), fix_pow(), fix_rev(), fix_size(), fix_succ(), fix_to_f(), fix_to_s(), fix_uminus(), fix_xor(), fix_zero_p(), flo_abs(), flo_ceil(), flo_cmp(), flo_coerce(), flo_div(), flo_divmod(), flo_eq(), flo_eql(), flo_floor(), flo_ge(), flo_gt(), flo_hash(), flo_is_finite_p(), flo_is_infinite_p(), flo_is_nan_p(), flo_le(), flo_lt(), flo_minus(), flo_mod(), flo_mul(), flo_plus(), flo_pow(), flo_quo(), flo_round(), flo_to_f(), flo_to_s(), flo_truncate(), flo_uminus(), flo_zero_p(), FLT_RADIX, FLT_ROUNDS, id_by, id_cmp, id_coerce, id_div, id_eq, id_to, id_to_i, INFINITY, INT2FIX, int_chr(), int_dotimes(), int_downto(), int_even_p(), int_int_p(), int_odd_p(), int_ord(), int_pred, int_round(), int_succ, int_to_i(), int_upto(), NAN, num_abs(), num_ceil(), num_cmp(), num_coerce(), num_div(), num_divmod(), num_eql(), num_fdiv(), num_floor(), num_imaginary(), num_init_copy(), num_int_p(), num_modulo(), num_nonzero_p(), num_real_p(), num_remainder(), num_round(), num_sadded(), num_step(), num_to_int(), num_truncate(), num_uminus(), num_uplus(), num_zero_p(), rb_cFixnum, rb_cFloat, rb_cInteger, rb_cNumeric, rb_cObject, rb_define_alias(), rb_define_class(), rb_define_const(), rb_define_method(), rb_eFloatDomainError, rb_eRangeError, rb_eStandardError, rb_eZeroDivError, rb_fix_bit_length(), rb_fix_lshift(), rb_fix_rshift(), rb_include_module(), rb_intern, rb_mComparable, rb_undef_alloc_func(), and rb_undef_method().
Definition at line 2557 of file numeric.c.
References argc, argv, FIX2LONG, FIXNUM_P, rb_ascii8bit_encoding(), rb_check_arity, rb_default_internal_encoding(), rb_enc_uint_chr(), rb_eRangeError, rb_num_to_uint(), rb_raise(), rb_str_new(), rb_to_encoding(), and rb_usascii_str_new().
Referenced by Init_Numeric(), and VpCtoV().
Definition at line 3721 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, int_dotimes_size(), LONG2FIX, rb_funcall(), rb_yield(), RETURN_SIZED_ENUMERATOR, and RTEST.
Referenced by Init_Numeric().
Definition at line 3693 of file numeric.c.
References FIXNUM_P, INT2FIX, NUM2LONG, rb_funcall(), and RTEST.
Referenced by int_dotimes().
Definition at line 3669 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, int_downto_size(), LONG2FIX, NIL_P, rb_cmperr(), rb_funcall(), rb_yield(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Numeric().
Definition at line 3648 of file numeric.c.
References FALSE, INT2FIX, RARRAY_AREF, and ruby_num_interval_step_size().
Referenced by int_downto().
Definition at line 2445 of file numeric.c.
References INT2FIX, Qfalse, Qtrue, and rb_funcall().
Referenced by fix_pow(), and Init_Numeric().
Definition at line 2429 of file numeric.c.
References INT2FIX, Qfalse, Qtrue, and rb_funcall().
Referenced by Init_Numeric().
Definition at line 2615 of file numeric.c.
Referenced by Init_Numeric().
|
static |
Definition at line 3021 of file numeric.c.
References FIT_SQRT_LONG, LONG2NUM, MUL_OVERFLOW_FIXNUM_P, neg, rb_big_mul(), rb_big_pow(), and rb_int2big().
Referenced by fix_pow(), int_round_0(), and rb_int_positive_pow().
Definition at line 3760 of file numeric.c.
References argc, argv, int_round_0(), NUM2INT, rb_Float(), and rb_scan_args().
Referenced by Init_Numeric().
Definition at line 1540 of file numeric.c.
References f, FIX2LONG, FIXNUM_P, INT2FIX, int_pow(), LONG2NUM, neg, negative_int_p(), rb_funcall(), rb_intern, RB_TYPE_P, RTEST, SIGNED_VALUE, and T_FLOAT.
Referenced by flo_round(), and int_round().
Definition at line 2403 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 3624 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, int_upto_size(), LONG2FIX, NIL_P, rb_cmperr(), rb_funcall(), rb_yield(), and RETURN_SIZED_ENUMERATOR.
Referenced by Init_Numeric().
Definition at line 3602 of file numeric.c.
References FALSE, INT2FIX, RARRAY_AREF, and ruby_num_interval_step_size().
Referenced by int_upto().
|
inlinestatic |
Definition at line 181 of file numeric.c.
References FIXNUM_P, INT2FIX, method_basic_p, rb_cBignum, rb_cFixnum, rb_funcall(), RB_TYPE_P, RBIGNUM_NEGATIVE_P, RTEST, SIGNED_VALUE, and T_BIGNUM.
Referenced by fix_pow(), int_round_0(), num_abs(), num_remainder(), rb_fix2ushort(), and rb_num_negative_p().
NORETURN | ( | static void | coerce_failedVALUE x, VALUE y | ) |
Definition at line 560 of file numeric.c.
References negative_int_p(), rb_funcall(), and rb_intern.
Referenced by Init_Numeric().
Definition at line 1722 of file numeric.c.
References flo_ceil(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 1057 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 220 of file numeric.c.
References CLASS_OF, rb_assoc_new(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 418 of file numeric.c.
References INT2FIX, rb_equal(), rb_funcall(), rb_intern, and rb_num_zerodiv().
Referenced by Init_Numeric(), and num_divmod().
Definition at line 511 of file numeric.c.
References num_div(), num_modulo(), and rb_assoc_new().
Referenced by Init_Numeric().
Definition at line 1041 of file numeric.c.
References Qfalse, rb_equal(), and TYPE.
Referenced by Init_Numeric().
Definition at line 1064 of file numeric.c.
References id_eq, Qtrue, and rb_funcall().
Referenced by fix_equal(), and flo_eq().
Definition at line 399 of file numeric.c.
References rb_Float(), and rb_funcall().
Referenced by Init_Numeric().
Definition at line 1699 of file numeric.c.
References flo_floor(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 367 of file numeric.c.
References INT2FIX, and rb_complex_new().
Referenced by Init_Numeric().
Definition at line 338 of file numeric.c.
References rb_eTypeError, rb_obj_classname(), rb_raise(), and UNREACHABLE.
Referenced by Init_Numeric().
Definition at line 437 of file numeric.c.
References rb_funcall(), and rb_intern.
Referenced by Init_Numeric(), and num_divmod().
Definition at line 600 of file numeric.c.
References Qnil, rb_funcall(), rb_intern, and RTEST.
Referenced by Init_Numeric().
Definition at line 454 of file numeric.c.
References INT2FIX, negative_int_p(), positive_int_p(), rb_equal(), and rb_funcall().
Referenced by Init_Numeric().
Definition at line 1741 of file numeric.c.
References argc, argv, flo_round(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 319 of file numeric.c.
References name, rb_eTypeError, rb_id2name(), rb_obj_classname(), rb_raise(), rb_remove_method_id(), rb_singleton_class(), rb_to_id(), and UNREACHABLE.
Referenced by Init_Numeric().
Definition at line 1974 of file numeric.c.
References argc, argv, cmp, diff(), f, FALSE, FIX2LONG, FIXNUM_P, id_eq, inf(), INT2FIX, isinf(), LONG2FIX, num_step_scan_args(), num_step_size(), rb_funcall(), rb_num_coerce_cmp(), RB_TYPE_P, rb_yield(), RETURN_SIZED_ENUMERATOR, RFLOAT_VALUE, RTEST, ruby_float_step(), signbit(), and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1868 of file numeric.c.
References argc, argv, DBL2NUM, hash(), id_by, id_to, INFINITY, INT2FIX, NIL_P, positive_int_p(), Qundef, rb_eArgError, rb_equal(), rb_eTypeError, rb_get_kwargs(), rb_raise(), and rb_scan_args().
Referenced by num_step(), and num_step_size().
Definition at line 1909 of file numeric.c.
References argc, argv, FALSE, num_step_scan_args(), RARRAY_LENINT, RARRAY_PTR, and ruby_num_interval_step_size().
Referenced by num_step().
Definition at line 620 of file numeric.c.
References id_to_i, and rb_funcall().
Referenced by Init_Numeric().
Definition at line 1757 of file numeric.c.
References flo_truncate(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 381 of file numeric.c.
References do_coerce(), INT2FIX, rb_funcall(), TRUE, and zero().
Referenced by Init_Numeric().
Definition at line 353 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 577 of file numeric.c.
References INT2FIX, Qfalse, Qtrue, and rb_equal().
Referenced by Init_Numeric().
|
inlinestatic |
Definition at line 165 of file numeric.c.
References FIXNUM_P, INT2FIX, method_basic_p, rb_cBignum, rb_cFixnum, rb_funcall(), RB_TYPE_P, RBIGNUM_POSITIVE_P, RTEST, SIGNED_VALUE, and T_BIGNUM.
Referenced by num_remainder(), and num_step_scan_args().
VALUE rb_dbl_cmp | ( | double | a, |
double | b | ||
) |
VALUE rb_dbl_hash | ( | double | d | ) |
Definition at line 1122 of file numeric.c.
References hash(), LONG2FIX, and rb_memhash().
Referenced by flo_hash(), and rb_any_hash().
VALUE rb_enc_uint_chr | ( | unsigned int | code, |
rb_encoding * | enc | ||
) |
Definition at line 2523 of file numeric.c.
References ONIGERR_INVALID_CODE_POINT_VALUE, ONIGERR_TOO_BIG_WIDE_CHAR_VALUE, rb_enc_codelen(), rb_enc_mbcput, rb_enc_name, rb_enc_precise_mbclen(), rb_enc_str_new(), rb_eRangeError, rb_raise(), RSTRING_END, and RSTRING_PTR.
Referenced by int_chr(), and rb_io_ungetc().
long rb_fix2int | ( | VALUE | val | ) |
short rb_fix2short | ( | VALUE | val | ) |
Definition at line 2249 of file numeric.c.
References check_short(), FIX2LONG, FIXNUM_P, rb_num2long(), and val.
Definition at line 2653 of file numeric.c.
References buf, CHAR_BIT, FIX2LONG, neg, rb_eArgError, rb_raise(), rb_usascii_str_new2, ruby_digitmap, SIZEOF_VALUE, and val.
Referenced by call_original_exit(), fix_to_s(), ole_typedesc2val(), and rb_big2str1().
unsigned short rb_fix2ushort | ( | VALUE | val | ) |
Definition at line 2268 of file numeric.c.
References check_ushort(), FIX2ULONG, FIXNUM_P, negative_int_p(), rb_num2ushort(), and val.
Definition at line 3593 of file numeric.c.
References bit_length, FIX2LONG, and LONG2FIX.
Referenced by Init_Numeric().
Definition at line 3405 of file numeric.c.
References FIX2LONG, fix_lshift(), fix_rshift(), FIXNUM_P, NUM2LONG, rb_big_lshift(), rb_int2big(), and val.
Referenced by Init_Numeric().
Definition at line 3437 of file numeric.c.
References FIX2LONG, fix_lshift(), fix_rshift(), FIXNUM_P, rb_big_rshift(), rb_int2big(), and val.
Referenced by Init_Numeric().
VALUE rb_float_new | ( | double | d | ) |
Definition at line 4125 of file numeric.c.
References rb_float_new_inline().
VALUE rb_float_new_in_heap | ( | double | d | ) |
Definition at line 642 of file numeric.c.
References FL_WB_PROTECTED, NEWOBJ_OF, OBJ_FREEZE, rb_cFloat, RGENGC_WB_PROTECTED_FLOAT, and T_FLOAT.
Referenced by rb_float_new_inline().
double rb_float_value | ( | VALUE | v | ) |
Definition at line 4118 of file numeric.c.
References rb_float_value_inline().
VALUE rb_int_positive_pow | ( | long | x, |
unsigned long | y | ||
) |
Definition at line 2508 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, rb_big_minus(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.
Definition at line 2483 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, rb_big_plus(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.
Referenced by enumerator_with_index_i().
Definition at line 2282 of file numeric.c.
References FIXABLE, FIXNUM_P, LONG2FIX, rb_eRangeError, rb_num2long(), rb_raise(), and val.
long rb_num2int | ( | VALUE | val | ) |
Definition at line 2197 of file numeric.c.
References rb_num2long(), and val.
SIGNED_VALUE rb_num2long | ( | VALUE | val | ) |
Definition at line 2038 of file numeric.c.
References buf, FIX2LONG, FIXNUM_P, LONG_MAX_PLUS_ONE, LONG_MIN_MINUS_ONE_IS_LESS_THAN, NIL_P, rb_big2long(), rb_eRangeError, rb_eTypeError, rb_raise(), rb_to_int(), RB_TYPE_P, RFLOAT_VALUE, snprintf, strchr(), T_BIGNUM, T_FLOAT, and val.
Referenced by rb_fix2short(), rb_num2fix(), rb_num2int(), rb_num2long_inline(), and rb_num2short().
short rb_num2short | ( | VALUE | val | ) |
Definition at line 2240 of file numeric.c.
References check_short(), rb_num2long(), and val.
Referenced by rb_num2short_inline().
Definition at line 2118 of file numeric.c.
References NULL, rb_num2ulong_internal(), and val.
Referenced by rb_num2ulong_inline().
|
static |
Definition at line 2071 of file numeric.c.
References buf, FIX2LONG, FIXNUM_P, LONG_MIN_MINUS_ONE_IS_LESS_THAN, NIL_P, rb_big2ulong(), rb_eRangeError, rb_eTypeError, rb_raise(), rb_to_int(), RB_TYPE_P, RBIGNUM_NEGATIVE_P, RFLOAT_VALUE, snprintf, strchr(), T_BIGNUM, T_FLOAT, ULONG_MAX_PLUS_ONE, and val.
Referenced by rb_num2ulong(), and rb_num2ushort().
unsigned short rb_num2ushort | ( | VALUE | val | ) |
Definition at line 2258 of file numeric.c.
References check_ushort(), rb_num2ulong_internal(), and val.
Referenced by rb_fix2ushort().
Definition at line 285 of file numeric.c.
References do_coerce(), func, rb_funcall(), and TRUE.
Referenced by f_addsub(), f_divide(), fix_divide(), fix_divmod(), fix_fdiv(), fix_minus(), fix_mod(), fix_mul(), fix_plus(), fix_pow(), flo_div(), flo_divmod(), flo_minus(), flo_mod(), flo_mul(), flo_plus(), flo_pow(), nucomp_expt(), nucomp_mul(), nurat_add(), nurat_div(), nurat_expt(), nurat_mul(), nurat_sub(), rb_big_divide(), rb_big_divmod(), rb_big_fdiv(), rb_big_minus(), rb_big_modulo(), rb_big_mul(), rb_big_plus(), rb_big_pow(), and rb_big_remainder().
Definition at line 3319 of file numeric.c.
References bit_coerce(), func, rb_funcall(), and TRUE.
Referenced by rb_big_and(), rb_big_or(), and rb_big_xor().
Definition at line 292 of file numeric.c.
References do_coerce(), FALSE, func, Qnil, and rb_funcall().
Referenced by BigDecimalCmp(), cmp_gen(), equal_gen(), fix_cmp(), flo_cmp(), num_step(), nurat_cmp(), rb_big_cmp(), and ruby_num_interval_step_size().
Definition at line 300 of file numeric.c.
References do_coerce(), FALSE, func, NIL_P, Qnil, rb_cmperr(), and rb_funcall().
Referenced by big_op(), BigDecimalCmp(), fix_ge(), fix_gt(), fix_le(), fix_lt(), flo_ge(), flo_gt(), flo_le(), and flo_lt().
int rb_num_negative_p | ( | VALUE | num | ) |
Definition at line 197 of file numeric.c.
References negative_int_p().
Referenced by rb_random_ulong_limited().
int rb_num_to_uint | ( | VALUE | val, |
unsigned int * | ret | ||
) |
Definition at line 132 of file numeric.c.
References FIX2LONG, FIXNUM_P, NULL, NUMERR_NEGATIVE, NUMERR_TOOLARGE, NUMERR_TYPE, rb_absint_size(), rb_big2ulong(), RB_TYPE_P, RBIGNUM_NEGATIVE_P, T_BIGNUM, and val.
Referenced by int_chr(), and rb_str_concat().
void rb_num_zerodiv | ( | void | ) |
Definition at line 125 of file numeric.c.
References rb_eZeroDivError, and rb_raise().
Referenced by bary_divmod(), bigdivrem(), fix_divide(), fixdivmod(), flodivmod(), num_div(), quo(), rb_big_divide(), rb_big_divrem_normal(), wdivmod(), and wquo().
void rb_out_of_short | ( | SIGNED_VALUE | num | ) |
Definition at line 2210 of file numeric.c.
References PRIdVALUE, rb_eRangeError, and rb_raise().
Referenced by check_short().
double round | ( | double | x | ) |
Definition at line 92 of file numeric.c.
References f.
Referenced by BigDecimal_power(), d_lite_plus(), dbl2ival(), fix_pow(), flo_pow(), flo_round(), offset_to_sec(), rb_big_pow(), and wholenum_p().
double ruby_float_mod | ( | double | x, |
double | y | ||
) |
Definition at line 1791 of file numeric.c.
References DBL2NUM, FALSE, isinf(), NUM2DBL, RB_TYPE_P, rb_yield(), ruby_float_step_size(), T_FLOAT, TRUE, and val.
Referenced by num_step(), and range_step().
|
static |
Definition at line 1763 of file numeric.c.
References DBL_EPSILON, err, INFINITY, and isinf().
Referenced by ruby_float_step(), and ruby_num_interval_step_size().
Definition at line 1822 of file numeric.c.
References cmp, DBL2NUM, diff(), FIX2LONG, FIXNUM_P, id_cmp, id_div, INFINITY, INT2FIX, isinf(), LONG2FIX, NUM2DBL, POSFIXABLE, rb_cmpint(), rb_dbl2big(), rb_funcall(), rb_num_coerce_cmp(), RB_TYPE_P, result, RTEST, ruby_float_step_size(), T_FLOAT, and ULONG2NUM.
Referenced by int_downto_size(), int_upto_size(), num_step_size(), range_size(), and range_step_size().
|
static |
Definition at line 122 of file numeric.c.
Referenced by Init_Numeric(), and num_step_scan_args().
|
static |
Definition at line 112 of file numeric.c.
Referenced by fix_cmp(), flo_cmp(), Init_Numeric(), and ruby_num_interval_step_size().
|
static |
Definition at line 112 of file numeric.c.
Referenced by coerce_body(), do_coerce(), and Init_Numeric().
|
static |
Definition at line 112 of file numeric.c.
Referenced by Init_Numeric(), and ruby_num_interval_step_size().
|
static |
Definition at line 112 of file numeric.c.
Referenced by Init_Numeric(), num_equal(), and num_step().
|
static |
Definition at line 122 of file numeric.c.
Referenced by Init_Numeric(), and num_step_scan_args().
|
static |
Definition at line 112 of file numeric.c.
Referenced by Init_Numeric(), and num_to_int().
VALUE rb_cFixnum |
Definition at line 117 of file numeric.c.
Referenced by Init_Numeric(), negative_int_p(), and positive_int_p().
VALUE rb_cFloat |
Definition at line 115 of file numeric.c.
Referenced by Init_Numeric(), and rb_float_new_in_heap().
VALUE rb_cInteger |
Definition at line 116 of file numeric.c.
Referenced by Init_Numeric().
VALUE rb_cNumeric |
Definition at line 114 of file numeric.c.
Referenced by Init_Numeric().
VALUE rb_eFloatDomainError |
Definition at line 120 of file numeric.c.
Referenced by Init_Numeric().
VALUE rb_eZeroDivError |
Definition at line 119 of file numeric.c.
Referenced by Init_Numeric(), and rb_num_zerodiv().
const union bytesequence4_or_float rb_infinity = {{0x00, 0x00, 0x80, 0x7f}} |
const union bytesequence4_or_float rb_nan = {{0x00, 0x00, 0xc0, 0x7f}} |