Ruby
2.4.2p198(2017-09-14revision59899)
|
#include "internal.h"
#include "ruby/util.h"
#include "id.h"
#include <assert.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 | id_to_i idTo_i |
#define | id_eq idEq |
#define | id_cmp idCmp |
#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 | FLOAT_OUT_OF_RANGE(val, type) |
#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_div |
static ID | id_divmod |
VALUE | rb_cNumeric |
VALUE | rb_cFloat |
VALUE | rb_cInteger |
VALUE | rb_eZeroDivError |
VALUE | rb_eFloatDomainError |
static ID | id_to |
static ID | id_by |
#define DBL_DIG 15 |
Definition at line 54 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_to_s(), float_round_overflow(), GetVpValueWithPrec(), Init_Numeric(), rb_cstr_to_dbl(), rmpd_double_figures(), and ruby_strtod().
#define DBL_EPSILON 2.2204460492503131e-16 |
Definition at line 60 of file numeric.c.
Referenced by Init_Numeric(), main(), nextafter(), and ruby_float_step_size().
#define DBL_MANT_DIG 53 |
Definition at line 57 of file numeric.c.
Referenced by flo_to_s(), and Init_Numeric().
#define DBL_MAX 1.7976931348623157e+308 |
Definition at line 39 of file numeric.c.
Referenced by Init_Numeric(), and nextafter().
#define DBL_MAX_10_EXP 308 |
Definition at line 51 of file numeric.c.
Referenced by BigDecimal_to_f(), Init_Numeric(), and ruby_strtod().
#define DBL_MAX_EXP 1024 |
Definition at line 45 of file numeric.c.
Referenced by big2dbl(), get_double_rshift(), Init_Numeric(), ruby_hdtoa(), and ruby_strtod().
#define DBL_MIN 2.2250738585072014e-308 |
Definition at line 36 of file numeric.c.
Referenced by Init_Numeric(), main(), and nextafter().
#define DBL_MIN_10_EXP (-307) |
Definition at line 48 of file numeric.c.
Referenced by BigDecimal_to_f(), and Init_Numeric().
#define DBL_MIN_EXP (-1021) |
Definition at line 42 of file numeric.c.
Referenced by Init_Numeric(), and nextafter().
#define FIT_SQRT_LONG | ( | n | ) | (((n)<SQRT_LONG_MAX)&&((n)>=-SQRT_LONG_MAX)) |
#define FLOAT_OUT_OF_RANGE | ( | val, | |
type | |||
) |
Definition at line 2771 of file numeric.c.
Referenced by rb_num2fix(), rb_num2long(), and rb_num2ulong_internal().
#define FLT_RADIX 2 |
Definition at line 30 of file numeric.c.
Referenced by float_to_r(), Init_Numeric(), rb_flt_rationalize(), and ruby_strtod().
#define FLT_ROUNDS 1 |
Definition at line 33 of file numeric.c.
Referenced by Init_Numeric().
#define id_cmp idCmp |
Definition at line 177 of file numeric.c.
Referenced by fix_cmp(), flo_cmp(), and ruby_num_interval_step_size().
#define id_eq idEq |
Definition at line 176 of file numeric.c.
Referenced by num_equal().
#define id_to_i idTo_i |
Definition at line 175 of file numeric.c.
Referenced by num_to_int().
#define int_pred rb_int_pred |
Definition at line 3252 of file numeric.c.
Referenced by Init_Numeric().
#define int_succ rb_int_succ |
Definition at line 3227 of file numeric.c.
Referenced by Init_Numeric().
#define LONG_MAX_PLUS_ONE (2*(double)(LONG_MAX/2+1)) |
Definition at line 2778 of file numeric.c.
Referenced by rb_num2long().
#define LONG_MIN_MINUS_ONE_IS_LESS_THAN | ( | n | ) |
Definition at line 2780 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 272 of file numeric.c.
Referenced by negative_int_p(), num_positive_p(), num_step_negative_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_fdiv_double(), flo_cmp(), Init_Numeric(), num_div(), 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 2779 of file numeric.c.
Referenced by rb_num2ulong_internal().
|
static |
Definition at line 2955 of file numeric.c.
References rb_out_of_short().
Referenced by rb_fix2short(), and rb_num2short().
|
static |
Definition at line 2963 of file numeric.c.
References rb_eRangeError, and rb_raise().
Referenced by rb_fix2ushort(), and rb_num2ushort().
Definition at line 437 of file numeric.c.
References coerce_failed(), id_coerce, NORETURN(), and rb_funcall().
Referenced by do_coerce().
Definition at line 445 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 coerce_body(), coerce_rescue(), do_coerce(), num_step_negative_p(), and rb_num_coerce_bit().
Definition at line 458 of file numeric.c.
References coerce_failed(), and Qnil.
Referenced by do_coerce().
Definition at line 466 of file numeric.c.
References Qundef.
Referenced by do_coerce(), and num_step_negative_p().
Definition at line 275 of file numeric.c.
References INT2FIX, Qundef, rb_check_funcall(), rb_cmperr(), and zero().
Referenced by negative_int_p(), num_positive_p(), and positive_int_p().
|
static |
Definition at line 1261 of file numeric.c.
References FIXABLE, LONG2FIX, and rb_dbl2big().
Referenced by fix_divmod(), flo_ceil(), flo_divmod(), flo_floor(), and flo_round().
Definition at line 472 of file numeric.c.
References coerce_body(), coerce_failed(), coerce_rescue(), coerce_rescue_quiet(), FALSE, id_coerce, NIL_P, Qundef, RARRAY_AREF, RARRAY_LEN, rb_eTypeError, rb_raise(), rb_rescue(), rb_respond_to(), RB_TYPE_P, rb_warn(), T_ARRAY, and TRUE.
Referenced by num_uminus(), rb_num_coerce_bin(), rb_num_coerce_bit(), rb_num_coerce_cmp(), and rb_num_coerce_relop().
Definition at line 4634 of file numeric.c.
References FIX2LONG, and LONG2NUM.
Referenced by rb_int_abs().
Definition at line 4343 of file numeric.c.
References FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_and(), rb_num_coerce_bit(), RB_TYPE_P, and T_BIGNUM.
Referenced by rb_int_and().
Definition at line 4552 of file numeric.c.
References BIGNUM_SIGN, CHAR_BIT, FIX2LONG, FIXNUM_P, INT2FIX, L, rb_big_norm(), and rb_to_int().
Referenced by int_aref().
Definition at line 4077 of file numeric.c.
References cmp(), FIX2LONG, FIXNUM_P, id_cmp, INT2FIX, rb_big_cmp(), rb_integer_float_cmp(), rb_num_coerce_cmp(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by rb_int_cmp().
Definition at line 3689 of file numeric.c.
References DBL2NUM, div, FIX2LONG, FIXNUM_P, FIXNUM_ZERO_P, rb_big_div(), rb_dbl2big(), rb_fix_div_fix(), 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 3852 of file numeric.c.
References dbl2ival(), DBL2NUM, div, FIX2LONG, FIXNUM_P, FIXNUM_ZERO_P, flodivmod(), id_divmod, mod, rb_assoc_new(), rb_big_divmod(), rb_fix_divmod_fix(), rb_int2big(), rb_num_coerce_bin(), rb_num_zerodiv(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by rb_int_divmod().
Definition at line 4036 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 rb_int_equal().
Definition at line 3620 of file numeric.c.
References FIX2LONG, FIXNUM_P, rb_big_fdiv_double(), rb_int2big(), rb_intern, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by rb_int_fdiv_double().
Definition at line 4163 of file numeric.c.
References FIX2LONG, FIXNUM_P, idGE, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by rb_int_ge().
Definition at line 4124 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by rb_int_gt().
Definition at line 3750 of file numeric.c.
References fix_divide(), and id_div.
Referenced by rb_int_idiv().
Definition at line 4241 of file numeric.c.
References FIX2LONG, FIXNUM_P, idLE, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by int_le().
|
static |
Definition at line 4462 of file numeric.c.
References CHAR_BIT, LONG2NUM, rb_big_lshift(), rb_int2big(), and ULONG2NUM.
Referenced by rb_fix_lshift(), rb_fix_rshift(), and round_half_even().
Definition at line 4202 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_cmp(), rb_integer_float_cmp(), rb_num_coerce_relop(), RB_TYPE_P, T_BIGNUM, and T_FLOAT.
Referenced by int_lt().
Definition at line 3535 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 rb_int_minus().
Definition at line 3780 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, FIXNUM_ZERO_P, rb_big_modulo(), rb_fix_mod_fix(), rb_int2big(), rb_num_coerce_bin(), rb_num_zerodiv(), RB_TYPE_P, RFLOAT_VALUE, ruby_float_mod(), T_BIGNUM, and T_FLOAT.
Referenced by rb_int_modulo().
Definition at line 3588 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, rb_big_mul(), rb_complex_mul(), rb_fix_mul_fix(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_COMPLEX, and T_FLOAT.
Referenced by rb_int_mul(), and round_half_even().
Definition at line 4378 of file numeric.c.
References FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_or(), rb_num_coerce_bit(), RB_TYPE_P, and T_BIGNUM.
Referenced by int_or().
Definition at line 3480 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_plus(), rb_complex_plus(), rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_COMPLEX, and T_FLOAT.
Referenced by rb_fix_plus(), and rb_int_plus().
Definition at line 3955 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, idPow, INFINITY, INT2FIX, int_even_p(), int_pow(), negative_int_p(), num_funcall1(), rb_big_pow(), rb_complex_raw1, rb_int2big(), rb_num_coerce_bin(), rb_rational_raw1, RB_TYPE_P, RFLOAT_VALUE, round(), T_BIGNUM, and T_FLOAT.
Referenced by rb_int_pow().
|
static |
Definition at line 4508 of file numeric.c.
References CHAR_BIT, INT2FIX, and LONG2FIX.
Referenced by rb_fix_lshift(), rb_fix_rshift(), and round_half_even().
Definition at line 3368 of file numeric.c.
References FIX2LONG, and LONG2NUM.
Referenced by rb_int_uminus(), and round_half_even().
Definition at line 4413 of file numeric.c.
References FIX2LONG, FIXNUM_P, LONG2NUM, rb_big_xor(), rb_num_coerce_bit(), RB_TYPE_P, and T_BIGNUM.
Referenced by int_xor().
Definition at line 2006 of file numeric.c.
References dbl2ival(), DBL2NUM, f, float_round_overflow(), float_round_underflow(), INT2FIX, NUM2INT, rb_check_arity, rb_int_ceil(), and RFLOAT_VALUE.
Referenced by flo_truncate(), Init_Numeric(), and num_ceil().
Definition at line 1471 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 1044 of file numeric.c.
References rb_assoc_new(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 1142 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 1280 of file numeric.c.
References dbl2ival(), DBL2NUM, div, FIX2LONG, flodivmod(), id_divmod, mod, rb_assoc_new(), 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 1403 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 1664 of file numeric.c.
References isnan, Qfalse, Qtrue, RB_TYPE_P, RFLOAT_VALUE, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1946 of file numeric.c.
References dbl2ival(), DBL2NUM, f, float_round_overflow(), float_round_underflow(), INT2FIX, NUM2INT, rb_check_arity, rb_int_floor(), and RFLOAT_VALUE.
Referenced by flo_truncate(), Init_Numeric(), and num_floor().
Definition at line 1550 of file numeric.c.
References FIX2INT, FIXNUM_P, idGE, 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 1436 of file numeric.c.
References rb_dbl_hash(), and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1786 of file numeric.c.
References isfinite, isinf(), isnan, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1765 of file numeric.c.
References INT2FIX, isinf(), Qnil, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1740 of file numeric.c.
References isnan, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1624 of file numeric.c.
References FIX2INT, FIXNUM_P, idLE, 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 1587 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 1094 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 1241 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 1118 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 2382 of file numeric.c.
References f, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1854 of file numeric.c.
References DBL2NUM, INFINITY, nextafter(), and NUM2DBL.
Referenced by Init_Numeric().
Definition at line 1070 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 2368 of file numeric.c.
References f, Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1906 of file numeric.c.
References DBL2NUM, INFINITY, nextafter(), and NUM2DBL.
Referenced by Init_Numeric().
Definition at line 2245 of file numeric.c.
References dbl2ival(), DBL2NUM, f, flo_to_i(), float_round_overflow(), float_round_underflow(), INT2FIX, isfinite, NUM2INT, rb_int_round(), rb_num_get_rounding_option(), rb_scan_args(), RFLOAT_VALUE, round(), and ROUND_CALL.
Referenced by Init_Numeric(), and num_round().
Definition at line 1686 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 2327 of file numeric.c.
References f, FIXABLE, LONG2FIX, rb_dbl2big(), RFLOAT_VALUE, and val.
Referenced by flo_round(), Init_Numeric(), and round_half_even().
Definition at line 960 of file numeric.c.
References buf, CHAR_BIT, DBL_DIG, DBL_MANT_DIG, isinf(), isnan, len, memcpy, 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(), strlen(), and xfree().
Referenced by Init_Numeric().
Definition at line 2352 of file numeric.c.
References flo_ceil(), flo_floor(), RFLOAT_VALUE, and signbit().
Referenced by Init_Numeric(), and num_truncate().
Definition at line 1719 of file numeric.c.
References Qfalse, Qtrue, and RFLOAT_VALUE.
Referenced by Init_Numeric().
|
static |
Definition at line 2280 of file numeric.c.
References DBL_DIG, FALSE, and TRUE.
Referenced by flo_ceil(), flo_floor(), flo_round(), and round_half_even().
|
static |
Definition at line 2308 of file numeric.c.
Referenced by flo_ceil(), flo_floor(), flo_round(), and round_half_even().
|
static |
Definition at line 1178 of file numeric.c.
References div, isinf(), isnan, mod, rb_num_zerodiv(), and round().
Referenced by fix_divmod(), flo_divmod(), and ruby_float_mod().
void Init_Numeric | ( | void | ) |
Definition at line 5241 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, flo_ceil(), flo_cmp(), flo_coerce(), flo_div(), flo_divmod(), flo_eq(), flo_eql(), flo_floor(), flo_ge(), 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_negative_p(), flo_next_float(), flo_plus(), flo_positive_p(), flo_prev_float(), flo_quo(), flo_round(), flo_to_f(), flo_to_i(), flo_to_s(), flo_truncate(), flo_zero_p(), FLT_RADIX, FLT_ROUNDS, id_by, id_coerce, id_div, id_divmod, id_to, INFINITY, INT2FIX, int_aref(), int_ceil(), int_chr(), int_comp(), int_dotimes(), int_downto(), int_even_p(), int_floor(), int_int_p(), int_le(), int_lt(), int_odd_p(), int_or(), int_ord(), int_pred, int_remainder(), int_round(), int_size(), int_succ, int_to_f(), int_to_i(), int_to_s(), int_truncate(), int_upto(), int_xor(), NAN, num_abs(), num_ceil(), num_cmp(), num_coerce(), num_div(), num_divmod(), num_eql(), num_fdiv(), num_finite_p(), num_floor(), num_imaginary(), num_infinite_p(), num_init_copy(), num_int_p(), num_modulo(), num_negative_p(), num_nonzero_p(), num_positive_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_deprecate_constant(), rb_eFloatDomainError, rb_eRangeError, rb_eStandardError, rb_eZeroDivError, rb_float_abs(), rb_float_gt(), rb_float_pow(), rb_float_uminus(), rb_include_module(), rb_int_abs(), rb_int_and(), rb_int_bit_length(), rb_int_cmp(), rb_int_digits(), rb_int_div(), rb_int_divmod(), rb_int_equal(), rb_int_fdiv(), rb_int_ge(), rb_int_gt(), rb_int_idiv(), rb_int_lshift(), rb_int_minus(), rb_int_modulo(), rb_int_mul(), rb_int_plus(), rb_int_pow(), rb_int_rshift(), rb_int_uminus(), rb_intern, rb_mComparable, rb_undef_alloc_func(), and rb_undef_method().
Definition at line 4579 of file numeric.c.
References fix_aref(), FIXNUM_P, Qnil, rb_big_aref(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 5097 of file numeric.c.
References NUM2INT, rb_check_arity, rb_Float(), and rb_int_ceil().
Referenced by Init_Numeric().
Definition at line 3290 of file numeric.c.
References 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().
Definition at line 4294 of file numeric.c.
References fix_comp(), FIXNUM_P, Qnil, rb_big_comp(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4990 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, int_dotimes_size(), LONG2FIX, rb_funcall(), rb_yield(), rb_yield_1(), RETURN_SIZED_ENUMERATOR, and RTEST.
Referenced by Init_Numeric().
Definition at line 4978 of file numeric.c.
References FIXNUM_P, INT2FIX, NUM2LONG, rb_funcall(), and RTEST.
Referenced by int_dotimes().
Definition at line 4937 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 4931 of file numeric.c.
References FALSE, INT2FIX, RARRAY_AREF, and ruby_num_interval_step_size().
Referenced by int_downto().
Definition at line 3183 of file numeric.c.
References FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_even_p(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.
Referenced by fix_pow(), Init_Numeric(), and round_half_even().
Definition at line 5065 of file numeric.c.
References NUM2INT, rb_check_arity, rb_Float(), and rb_int_floor().
Referenced by Init_Numeric().
Definition at line 2088 of file numeric.c.
References int_neg_p().
Definition at line 2076 of file numeric.c.
References int_odd_p(), and rb_int_idiv().
Definition at line 2082 of file numeric.c.
References int_pos_p().
Definition at line 4260 of file numeric.c.
References fix_le(), FIXNUM_P, Qnil, rb_big_le(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4220 of file numeric.c.
References fix_lt(), FIXNUM_P, Qnil, rb_big_lt(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
|
inlinestatic |
Definition at line 298 of file numeric.c.
References BIGNUM_NEGATIVE_P, FIXNUM_NEGATIVE_P, FIXNUM_P, rb_eTypeError, rb_raise(), RB_TYPE_P, and T_BIGNUM.
Referenced by int_half_p_half_down(), and rb_int_truncate().
Definition at line 3159 of file numeric.c.
References FIXNUM_P, INT2FIX, Qfalse, Qtrue, rb_big_odd_p(), rb_funcall(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric(), int_half_p_half_even(), and round_half_even().
Definition at line 4393 of file numeric.c.
References fix_or(), FIXNUM_P, Qnil, rb_big_or(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 3348 of file numeric.c.
Referenced by Init_Numeric().
|
inlinestatic |
Definition at line 286 of file numeric.c.
References BIGNUM_POSITIVE_P, FIXNUM_P, FIXNUM_POSITIVE_P, rb_eTypeError, rb_raise(), RB_TYPE_P, and T_BIGNUM.
Referenced by int_half_p_half_up().
|
static |
Definition at line 3912 of file numeric.c.
References FIT_SQRT_LONG, LONG2NUM, MUL_OVERFLOW_FIXNUM_P, neg, rb_big_mul(), rb_big_pow(), RB_FLOAT_TYPE_P, and rb_int2big().
Referenced by fix_pow(), rb_int_ceil(), rb_int_floor(), rb_int_positive_pow(), rb_int_round(), rb_int_truncate(), and round_half_even().
Definition at line 3833 of file numeric.c.
References FIXNUM_P, num_remainder(), Qnil, rb_big_remainder(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 5030 of file numeric.c.
References NUM2INT, rb_Float(), rb_int_round(), rb_num_get_rounding_option(), and rb_scan_args().
Referenced by Init_Numeric(), and rb_int_round().
|
static |
|
static |
Definition at line 2054 of file numeric.c.
References SIGNED_VALUE.
|
static |
Definition at line 2064 of file numeric.c.
References SIGNED_VALUE.
|
static |
Definition at line 2036 of file numeric.c.
References FIXNUM_P, NUM2LONG, rb_big_size(), rb_funcall(), RB_TYPE_P, SIGNED_VALUE, and T_BIGNUM.
Referenced by rb_int_ceil(), rb_int_floor(), rb_int_round(), rb_int_truncate(), and round_half_even().
Definition at line 4677 of file numeric.c.
References fix_size(), FIXNUM_P, Qnil, rb_big_size_m(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4601 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, rb_big2dbl(), rb_eNotImpError, rb_obj_classname(), rb_raise(), RB_TYPE_P, T_BIGNUM, and val.
Referenced by Init_Numeric().
Definition at line 3133 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 3446 of file numeric.c.
References NUM2INT, rb_check_arity, and rb_int2str().
Referenced by Init_Numeric().
Definition at line 5129 of file numeric.c.
References NUM2INT, rb_check_arity, rb_Float(), and rb_int_truncate().
Referenced by Init_Numeric().
Definition at line 4891 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 4885 of file numeric.c.
References FALSE, INT2FIX, RARRAY_AREF, and ruby_num_interval_step_size().
Referenced by int_upto().
Definition at line 4428 of file numeric.c.
References fix_xor(), FIXNUM_P, Qnil, rb_big_xor(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
|
inlinestatic |
Definition at line 326 of file numeric.c.
References BIGNUM_NEGATIVE_P, compare_with_zero(), FIXNUM_NEGATIVE_P, FIXNUM_P, method_basic_p, rb_cInteger, RB_TYPE_P, RTEST, and T_BIGNUM.
Referenced by fix_pow(), num_abs(), num_negative_p(), num_remainder(), rb_fix2ushort(), rb_num2ulong(), and rb_num_negative_p().
NORETURN | ( | static void | coerce_failedVALUE x, VALUE y | ) |
Referenced by coerce_body(), and rb_fix2int().
NORETURN | ( | static void | rb_out_of_shortSIGNED_VALUE num | ) |
Definition at line 784 of file numeric.c.
References idUMinus, negative_int_p(), and num_funcall0().
Referenced by Init_Numeric().
Definition at line 2425 of file numeric.c.
References flo_ceil(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 1372 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 427 of file numeric.c.
References CLASS_OF, rb_assoc_new(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 642 of file numeric.c.
References INT2FIX, num_funcall1(), rb_equal(), rb_funcall(), rb_intern, and rb_num_zerodiv().
Referenced by Init_Numeric(), num_divmod(), and rb_int_idiv().
Definition at line 735 of file numeric.c.
References num_div(), num_modulo(), and rb_assoc_new().
Referenced by Init_Numeric().
Definition at line 1352 of file numeric.c.
References Qfalse, rb_big_eql(), rb_equal(), RB_TYPE_P, T_BIGNUM, and TYPE.
Referenced by Init_Numeric().
Definition at line 1379 of file numeric.c.
References id_eq, num_funcall1(), Qfalse, Qtrue, result, and RTEST.
Referenced by fix_equal(), and flo_eq().
Definition at line 623 of file numeric.c.
References rb_Float(), and rb_funcall().
Referenced by Init_Numeric().
Definition at line 2402 of file numeric.c.
References flo_floor(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 370 of file numeric.c.
References num_funcall_op_0(), and rb_exec_recursive().
Referenced by num_abs(), num_nonzero_p(), num_to_int(), and rb_int_uminus().
Definition at line 401 of file numeric.c.
References num_funcall_op_1(), and rb_exec_recursive_paired().
Referenced by fix_pow(), flo_quo(), num_div(), num_equal(), num_modulo(), num_remainder(), num_uminus(), rb_float_pow(), rb_int_pred(), and rb_int_succ().
Definition at line 4306 of file numeric.c.
References func, num_funcall_op_1_recursion(), and rb_check_funcall().
Referenced by rb_num_coerce_bit().
Definition at line 348 of file numeric.c.
References func, ID2SYM, ISALNUM, name, PRIsVALUE, rb_funcall(), rb_id2name(), and rb_name_error().
Referenced by num_funcall0().
Definition at line 390 of file numeric.c.
References func, num_funcall_op_1_recursion(), and rb_funcall().
Referenced by num_funcall1().
Definition at line 376 of file numeric.c.
References ID2SYM, ISALNUM, name, PRIsVALUE, rb_id2name(), and rb_name_error().
Referenced by num_funcall_bit_1(), and num_funcall_op_1().
Definition at line 591 of file numeric.c.
References INT2FIX, and rb_complex_new().
Referenced by Init_Numeric().
Definition at line 562 of file numeric.c.
References PRIsVALUE, rb_eTypeError, rb_obj_class(), rb_raise(), and UNREACHABLE.
Referenced by Init_Numeric().
Definition at line 661 of file numeric.c.
References id_div, num_funcall1(), and rb_funcall().
Referenced by Init_Numeric(), num_divmod(), and rb_int_modulo().
Definition at line 919 of file numeric.c.
References negative_int_p(), Qfalse, and Qtrue.
Referenced by Init_Numeric().
Definition at line 835 of file numeric.c.
References num_funcall0(), Qnil, rb_intern, and RTEST.
Referenced by Init_Numeric().
Definition at line 896 of file numeric.c.
References BIGNUM_POSITIVE_P, compare_with_zero(), FIXNUM_P, INT2FIX, method_basic_p, Qfalse, Qtrue, rb_bigzero_p(), rb_cInteger, RB_TYPE_P, SIGNED_VALUE, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 678 of file numeric.c.
References INT2FIX, negative_int_p(), num_funcall1(), positive_int_p(), rb_equal(), and rb_funcall().
Referenced by Init_Numeric(), and int_remainder().
Definition at line 2444 of file numeric.c.
References flo_round(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 543 of file numeric.c.
References PRIsVALUE, rb_eTypeError, rb_id2str, rb_obj_class(), rb_raise(), rb_remove_method_id(), rb_singleton_class(), rb_to_id(), and UNREACHABLE.
Referenced by Init_Numeric().
Definition at line 2705 of file numeric.c.
References cmp(), diff(), f, FALSE, FIX2LONG, FIXNUM_P, inf(), INT2FIX, isinf(), LONG2FIX, num_step_scan_args(), num_step_size(), rb_equal(), rb_funcall(), 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 2571 of file numeric.c.
References INT2FIX, rb_check_funcall(), and zero().
Referenced by num_step_negative_p().
|
static |
Definition at line 2578 of file numeric.c.
References BIGNUM_NEGATIVE_P, coerce_failed(), coerce_rescue_quiet(), FIXNUM_P, INT2FIX, method_basic_p, num_step_compare_with_zero(), Qnil, Qundef, rb_cInteger, rb_rescue(), RB_TYPE_P, RTEST, SIGNED_VALUE, and T_BIGNUM.
Referenced by num_step_scan_args().
Definition at line 2599 of file numeric.c.
References DBL2NUM, hash(), id_by, id_to, INFINITY, INT2FIX, NIL_P, num_step_negative_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 2640 of file numeric.c.
References argc, argv, FALSE, num_step_scan_args(), RARRAY_CONST_PTR, RARRAY_LENINT, and ruby_num_interval_step_size().
Referenced by num_step().
Definition at line 883 of file numeric.c.
References id_to_i, and num_funcall0().
Referenced by Init_Numeric().
Definition at line 2460 of file numeric.c.
References flo_truncate(), and rb_Float().
Referenced by Init_Numeric().
Definition at line 605 of file numeric.c.
References do_coerce(), INT2FIX, num_funcall1(), TRUE, and zero().
Referenced by Init_Numeric().
Definition at line 577 of file numeric.c.
Referenced by Init_Numeric().
Definition at line 801 of file numeric.c.
References FIXNUM_P, FIXNUM_ZERO_P, INT2FIX, Qfalse, Qtrue, rb_bigzero_p(), rb_equal(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
|
static |
|
inlinestatic |
Definition at line 310 of file numeric.c.
References BIGNUM_POSITIVE_P, compare_with_zero(), FIXNUM_P, FIXNUM_POSITIVE_P, method_basic_p, rb_cInteger, RB_TYPE_P, RTEST, and T_BIGNUM.
Referenced by num_remainder().
VALUE rb_dbl_cmp | ( | double | a, |
double | b | ||
) |
Definition at line 1448 of file numeric.c.
References INT2FIX, isnan, and Qnil.
Referenced by flo_cmp(), nurat_eqeq_p(), and rb_rational_cmp().
VALUE rb_dbl_hash | ( | double | d | ) |
Definition at line 1442 of file numeric.c.
References LONG2FIX, and rb_dbl_long_hash().
Referenced by flo_hash().
VALUE rb_enc_uint_chr | ( | unsigned int | code, |
rb_encoding * | enc | ||
) |
Definition at line 3268 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(), rb_io_ungetc(), and strio_ungetc().
long rb_fix2int | ( | VALUE | val | ) |
Definition at line 2940 of file numeric.c.
References FIX2INT, NORETURN(), rb_out_of_short(), and SIGNED_VALUE.
Referenced by rb_num2ulong().
short rb_fix2short | ( | VALUE | val | ) |
Definition at line 2987 of file numeric.c.
References check_short(), FIX2LONG, FIXNUM_P, and rb_num2long().
Referenced by rb_num2short_inline().
Definition at line 3404 of file numeric.c.
References buf, CHAR_BIT, FIX2LONG, neg, rb_bug(), rb_eArgError, rb_raise(), rb_usascii_str_new(), rb_usascii_str_new2, ruby_digitmap, SIZEOF_VALUE, and val.
Referenced by ole_typedesc2val(), rb_big2str1(), and rb_int2str().
unsigned short rb_fix2ushort | ( | VALUE | val | ) |
Definition at line 3006 of file numeric.c.
References check_ushort(), FIX2ULONG, FIXNUM_P, negative_int_p(), and rb_num2ushort().
Definition at line 4740 of file numeric.c.
References bit_length, FIX2LONG, and LONG2FIX.
Referenced by rb_int_bit_length().
Definition at line 4779 of file numeric.c.
References assert, FIX2LONG, INT2FIX, LONG2NUM, rb_ary_new(), rb_ary_new_from_args(), rb_ary_push(), rb_eArgError, and rb_raise().
Referenced by rb_int_digits(), and rb_int_digits_bigbase().
Definition at line 4448 of file numeric.c.
References FIX2LONG, fix_lshift(), fix_rshift(), FIXNUM_P, NUM2LONG, rb_big_lshift(), rb_int2big(), and val.
Referenced by rb_int_lshift().
Definition at line 3508 of file numeric.c.
References fix_plus().
Referenced by ary_inject_op(), enum_sum(), rb_ary_sum(), and sum_iter().
Definition at line 4493 of file numeric.c.
References FIX2LONG, fix_lshift(), fix_rshift(), FIXNUM_P, rb_big_rshift(), rb_int2big(), and val.
Referenced by rb_int_rshift().
Definition at line 1704 of file numeric.c.
References DBL2NUM, RFLOAT_VALUE, and val.
Referenced by Init_Numeric(), and numeric_polar().
Definition at line 1513 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 f_gt_p(), and Init_Numeric().
VALUE rb_float_new | ( | double | d | ) |
Definition at line 5517 of file numeric.c.
References rb_float_new_inline().
VALUE rb_float_new_in_heap | ( | double | d | ) |
Definition at line 941 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().
Definition at line 1314 of file numeric.c.
References DBL2NUM, FIX2LONG, idPow, num_funcall1(), rb_big2dbl(), rb_complex_raw1, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, round(), T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric(), and nurat_expt().
Definition at line 1057 of file numeric.c.
References DBL2NUM, and RFLOAT_VALUE.
Referenced by Init_Numeric().
double rb_float_value | ( | VALUE | v | ) |
Definition at line 5510 of file numeric.c.
References rb_float_value_inline().
Referenced by any_hash(), and rb_ident_hash().
Definition at line 3458 of file numeric.c.
References FIXNUM_P, rb_any_to_s(), rb_big2str(), rb_fix2str(), RB_TYPE_P, and T_BIGNUM.
Referenced by int_to_s(), and rb_str_format().
Definition at line 4644 of file numeric.c.
References fix_abs(), FIXNUM_P, Qnil, rb_big_abs(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_abs(), Init_Numeric(), numeric_polar(), and rb_rational_abs().
Definition at line 4358 of file numeric.c.
References fix_and(), FIXNUM_P, Qnil, rb_big_and(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric(), and nurat_round_half_even().
Definition at line 4749 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_bit_length(), rb_fix_bit_length(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 2153 of file numeric.c.
References f, FIX2LONG, FIXNUM_P, INT2FIX, int_pow(), int_round_zero_p(), LONG2NUM, neg, rb_int_minus(), rb_int_modulo(), rb_int_plus(), RB_TYPE_P, SIGNED_VALUE, and T_FLOAT.
Referenced by flo_ceil(), int_ceil(), and round_half_even().
Definition at line 4102 of file numeric.c.
References fix_cmp(), FIXNUM_P, rb_big_cmp(), rb_eNotImpError, rb_obj_classname(), rb_raise(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_round_common(), Init_Numeric(), rb_int_round(), and rb_rational_cmp().
Definition at line 4834 of file numeric.c.
References FIX2LONG, FIXNUM_P, LONG2FIX, Qnil, rb_check_arity, rb_eArgError, rb_eMathDomainError, rb_eTypeError, rb_fix_digits(), rb_int_digits_bigbase(), RB_INTEGER_TYPE_P, rb_num_negative_p(), rb_obj_classname(), rb_raise(), rb_to_int(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4803 of file numeric.c.
References assert, BIGNUM_NEGATIVE_P, FIX2LONG, FIXNUM_P, RARRAY_AREF, rb_ary_new(), rb_ary_new_from_args(), rb_ary_push(), rb_big_norm(), rb_eArgError, rb_fix_digits(), rb_int_divmod(), rb_num_negative_p(), rb_raise(), RB_TYPE_P, and T_BIGNUM.
Referenced by rb_int_digits().
Definition at line 3729 of file numeric.c.
References fix_div(), FIXNUM_P, Qnil, rb_big_div(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_div(), Init_Numeric(), and read_rat_nos().
Definition at line 3881 of file numeric.c.
References fix_divmod(), FIXNUM_P, Qnil, rb_big_divmod(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric(), nurat_round_half_even(), and rb_int_digits_bigbase().
Definition at line 4052 of file numeric.c.
References fix_equal(), FIXNUM_P, Qnil, rb_big_eq(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric(), and nurat_eqeq_p().
Definition at line 3671 of file numeric.c.
References DBL2NUM, Qnil, rb_int_fdiv_double(), and RB_INTEGER_TYPE_P.
Referenced by Init_Numeric().
Definition at line 3637 of file numeric.c.
References fix_fdiv_double(), FIXNUM_P, FIXNUM_ZERO_P, NAN, rb_big_fdiv_double(), rb_gcd(), rb_int_idiv(), RB_INTEGER_TYPE_P, RB_TYPE_P, and T_BIGNUM.
Referenced by nurat_to_double(), and rb_int_fdiv().
Definition at line 2130 of file numeric.c.
References f, FIX2LONG, FIXNUM_P, INT2FIX, int_pow(), int_round_zero_p(), LONG2NUM, neg, rb_int_minus(), rb_int_modulo(), RB_TYPE_P, SIGNED_VALUE, and T_FLOAT.
Referenced by flo_floor(), int_floor(), and round_half_even().
Definition at line 4182 of file numeric.c.
References fix_ge(), FIXNUM_P, Qnil, rb_big_ge(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric(), and int_range_sum().
Definition at line 4142 of file numeric.c.
References fix_gt(), FIXNUM_P, Qnil, rb_big_gt(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_gt_p(), and Init_Numeric().
Definition at line 3756 of file numeric.c.
References fix_idiv(), FIXNUM_P, num_div(), rb_big_idiv(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_addsub(), f_muldiv(), Init_Numeric(), int_half_p_half_even(), int_range_sum(), nurat_ceil(), nurat_floor(), nurat_round_half_down(), nurat_round_half_up(), nurat_truncate(), rb_int_fdiv_double(), rb_int_round(), and rb_str_format().
Definition at line 4473 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_lshift(), rb_fix_lshift(), RB_TYPE_P, and T_BIGNUM.
Referenced by float_to_r(), Init_Numeric(), and rb_flt_rationalize().
Definition at line 3561 of file numeric.c.
References fix_minus(), FIXNUM_P, rb_big_minus(), rb_num_coerce_bin(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_addsub(), Init_Numeric(), int_range_sum(), nurat_round_half_down(), nurat_sub(), rb_flt_rationalize(), rb_int_ceil(), rb_int_floor(), rb_int_round(), rb_int_truncate(), and rb_rational_cmp().
Definition at line 3799 of file numeric.c.
References fix_mod(), FIXNUM_P, num_modulo(), rb_big_modulo(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_gcd_normal(), Init_Numeric(), rb_int_ceil(), rb_int_floor(), rb_int_round(), and rb_int_truncate().
Definition at line 3608 of file numeric.c.
References fix_mul(), FIXNUM_P, rb_big_mul(), rb_num_coerce_bin(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_addsub(), f_mul(), f_muldiv(), float_to_r(), Init_Numeric(), int_range_sum(), nurat_round_half_down(), nurat_round_half_even(), nurat_round_half_up(), nurat_sub(), rb_flt_rationalize(), rb_rational_cmp(), rb_rational_plus(), rb_str_format(), and read_num().
Definition at line 3514 of file numeric.c.
References fix_plus(), FIXNUM_P, rb_big_plus(), rb_num_coerce_bin(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_addsub(), Init_Numeric(), int_range_sum(), nurat_round_half_down(), nurat_round_half_even(), nurat_round_half_up(), rb_flt_rationalize(), rb_int_ceil(), rb_int_round(), rb_int_truncate(), rb_rational_plus(), rb_str_format(), and read_num().
VALUE rb_int_positive_pow | ( | long | x, |
unsigned long | y | ||
) |
Definition at line 3949 of file numeric.c.
References int_pow().
Referenced by date_zone_to_diff(), parse_rational(), and rb_str_format().
Definition at line 4011 of file numeric.c.
References fix_pow(), FIXNUM_P, Qnil, rb_big_pow(), RB_TYPE_P, and T_BIGNUM.
Referenced by float_to_r(), Init_Numeric(), nurat_expt(), and rb_flt_rationalize().
Definition at line 3240 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, num_funcall1(), rb_big_minus(), RB_TYPE_P, and T_BIGNUM.
VALUE rb_int_round | ( | VALUE | num, |
int | ndigits, | ||
enum ruby_num_rounding_mode | mode | ||
) |
Definition at line 2097 of file numeric.c.
References f, FIX2LONG, FIXNUM_P, FIXNUM_POSITIVE_P, FIXNUM_ZERO_P, INT2FIX, int_pow(), int_round(), int_round_zero_p(), LONG2NUM, neg, rb_int_cmp(), rb_int_idiv(), rb_int_minus(), rb_int_modulo(), rb_int_plus(), RB_TYPE_P, ROUND_CALL, SIGNED_VALUE, and T_FLOAT.
Referenced by flo_round(), and int_round().
Definition at line 4519 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_rshift(), rb_fix_rshift(), RB_TYPE_P, and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 3215 of file numeric.c.
References FIX2LONG, FIXNUM_P, INT2FIX, LONG2NUM, num_funcall1(), rb_big_plus(), RB_TYPE_P, and T_BIGNUM.
Referenced by enumerator_with_index_i().
Definition at line 2177 of file numeric.c.
References f, FIX2LONG, FIXNUM_P, INT2FIX, int_neg_p(), int_pow(), int_round_zero_p(), LONG2NUM, neg, rb_int_minus(), rb_int_modulo(), rb_int_plus(), RB_TYPE_P, SIGNED_VALUE, and T_FLOAT.
Referenced by int_truncate().
Definition at line 3374 of file numeric.c.
References fix_uminus(), FIXNUM_P, idUMinus, num_funcall0(), rb_big_uminus(), RB_TYPE_P, and T_BIGNUM.
Referenced by f_gcd_normal(), f_muldiv(), Init_Numeric(), nucomp_expt(), nurat_canonicalize(), nurat_ceil(), nurat_expt(), nurat_round_half_down(), nurat_round_half_even(), nurat_round_half_up(), nurat_s_alloc(), nurat_truncate(), rb_rational_uminus(), and read_num().
Definition at line 3020 of file numeric.c.
References FIX2LONG, FIXABLE, FIXNUM_P, FLOAT_OUT_OF_RANGE, LONG2FIX, NIL_P, rb_eRangeError, rb_eTypeError, rb_num2long(), rb_raise(), rb_to_int(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FALSE, T_FIXNUM, T_FLOAT, T_NIL, T_STRING, T_TRUE, and val.
long rb_num2int | ( | VALUE | val | ) |
long rb_num2long | ( | VALUE | val | ) |
Definition at line 2786 of file numeric.c.
References FIX2LONG, FIXNUM_P, FLOAT_OUT_OF_RANGE, LONG_MAX_PLUS_ONE, LONG_MIN_MINUS_ONE_IS_LESS_THAN, NIL_P, rb_big2long(), rb_eTypeError, rb_raise(), rb_to_int(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, and T_FLOAT.
Referenced by rb_fix2short(), rb_num2fix(), rb_num2int(), rb_num2long_inline(), rb_num2short(), and rb_num2ulong().
short rb_num2short | ( | VALUE | val | ) |
Definition at line 2978 of file numeric.c.
References check_short(), and rb_num2long().
Referenced by rb_num2short_inline().
unsigned long rb_num2ulong | ( | VALUE | val | ) |
Definition at line 2855 of file numeric.c.
References FIX2LONG, FIX2ULONG, FIXNUM_P, negative_int_p(), NULL, PRIdVALUE, rb_eRangeError, rb_fix2int(), rb_num2int(), rb_num2long(), rb_num2ulong_internal(), rb_raise(), SIGNED_VALUE, and val.
Referenced by rb_num2ulong_inline().
|
static |
Definition at line 2814 of file numeric.c.
References BIGNUM_NEGATIVE_P, FIX2LONG, FIXNUM_P, FLOAT_OUT_OF_RANGE, LONG_MIN_MINUS_ONE_IS_LESS_THAN, NIL_P, rb_big2ulong(), rb_eTypeError, rb_raise(), rb_to_int(), RB_TYPE_P, RFLOAT_VALUE, T_BIGNUM, T_FLOAT, and ULONG_MAX_PLUS_ONE.
Referenced by rb_num2ulong(), and rb_num2ushort().
unsigned short rb_num2ushort | ( | VALUE | val | ) |
Definition at line 2996 of file numeric.c.
References check_ushort(), and rb_num2ulong_internal().
Referenced by rb_fix2ushort().
Definition at line 509 of file numeric.c.
References do_coerce(), rb_funcall(), and TRUE.
Referenced by f_divide(), fix_divide(), fix_divmod(), fix_fdiv_double(), fix_minus(), fix_mod(), fix_mul(), fix_plus(), fix_pow(), flo_div(), flo_divmod(), flo_minus(), flo_mod(), flo_mul(), flo_plus(), nucomp_expt(), nucomp_sub(), nurat_div(), nurat_expt(), nurat_mul(), nurat_sub(), rb_big_divide(), rb_big_divmod(), rb_big_fdiv_double(), rb_big_minus(), rb_big_modulo(), rb_big_mul(), rb_big_plus(), rb_big_pow(), rb_big_remainder(), rb_complex_mul(), rb_complex_plus(), rb_float_pow(), rb_int_minus(), rb_int_mul(), rb_int_plus(), and rb_rational_plus().
Definition at line 4317 of file numeric.c.
References coerce_failed(), do_coerce(), num_funcall_bit_1(), Qundef, rb_exec_recursive_paired(), and TRUE.
Referenced by fix_and(), fix_or(), fix_xor(), rb_big_and(), rb_big_or(), and rb_big_xor().
Definition at line 516 of file numeric.c.
References do_coerce(), FALSE, Qnil, and rb_funcall().
Referenced by BigDecimalCmp(), cmp_gen(), equal_gen(), fix_cmp(), flo_cmp(), rb_big_cmp(), rb_rational_cmp(), and ruby_num_interval_step_size().
Definition at line 524 of file numeric.c.
References do_coerce(), FALSE, NIL_P, Qnil, rb_cmperr(), and rb_funcall().
Referenced by big_op(), BigDecimalCmp(), fix_ge(), fix_gt(), fix_le(), fix_lt(), flo_ge(), flo_le(), flo_lt(), and rb_float_gt().
enum ruby_num_rounding_mode rb_num_get_rounding_option | ( | VALUE | opts | ) |
Definition at line 198 of file numeric.c.
References NIL_P, PRIsVALUE, rb_check_string_type(), rb_eArgError, rb_get_kwargs(), rb_intern_const, rb_memcicmp(), rb_raise(), rb_sym2str, RB_TYPE_P, RSTRING_LEN, RSTRING_PTR, RUBY_NUM_ROUND_DEFAULT, RUBY_NUM_ROUND_HALF_DOWN, RUBY_NUM_ROUND_HALF_EVEN, RUBY_NUM_ROUND_HALF_UP, strncasecmp, SYMBOL_P, and T_STRING.
Referenced by flo_round(), int_round(), and nurat_round_n().
int rb_num_negative_p | ( | VALUE | num | ) |
Definition at line 342 of file numeric.c.
References negative_int_p().
Referenced by fun2(), nurat_expt(), rb_int_digits(), rb_int_digits_bigbase(), and rb_random_ulong_limited().
int rb_num_to_uint | ( | VALUE | val, |
unsigned int * | ret | ||
) |
Definition at line 242 of file numeric.c.
References BIGNUM_NEGATIVE_P, FIX2LONG, FIXNUM_P, NULL, NUMERR_NEGATIVE, NUMERR_TOOLARGE, NUMERR_TYPE, rb_absint_size(), rb_big2ulong(), RB_TYPE_P, T_BIGNUM, and val.
Referenced by int_chr(), and rb_str_concat().
void rb_num_zerodiv | ( | void | ) |
Definition at line 192 of file numeric.c.
References rb_eZeroDivError, and rb_raise().
Referenced by bary_divmod(), bigdivrem(), divmodv(), fix_divide(), fix_divmod(), fix_mod(), flodivmod(), mod(), num_div(), nurat_canonicalize(), nurat_div(), nurat_expt(), nurat_s_alloc(), quo(), rb_big_divide(), rb_big_divrem_normal(), and wquo().
|
static |
Definition at line 2948 of file numeric.c.
References PRIdVALUE, rb_eRangeError, and rb_raise().
Referenced by check_short(), and rb_fix2int().
double round | ( | double | x | ) |
Definition at line 79 of file numeric.c.
References f.
Referenced by BigDecimal_power(), d_lite_plus(), fix_pow(), flo_round(), flodivmod(), offset_to_sec(), rb_big_pow(), rb_float_pow(), round_half_down(), round_half_up(), and wholenum_p().
|
static |
|
static |
Definition at line 131 of file numeric.c.
References f, fix_lshift(), fix_mul(), fix_rshift(), fix_uminus(), flo_to_i(), float_round_overflow(), float_round_underflow(), int_even_p(), int_odd_p(), int_pow(), int_round_zero_p(), rb_int_ceil(), and rb_int_floor().
|
static |
double ruby_float_mod | ( | double | x, |
double | y | ||
) |
Definition at line 2494 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 2466 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 2525 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 189 of file numeric.c.
Referenced by Init_Numeric(), and num_step_scan_args().
|
static |
Definition at line 174 of file numeric.c.
Referenced by coerce_body(), do_coerce(), and Init_Numeric().
|
static |
Definition at line 174 of file numeric.c.
Referenced by fix_idiv(), Init_Numeric(), num_modulo(), and ruby_num_interval_step_size().
|
static |
Definition at line 174 of file numeric.c.
Referenced by fix_divmod(), flo_divmod(), and Init_Numeric().
|
static |
Definition at line 189 of file numeric.c.
Referenced by Init_Numeric(), and num_step_scan_args().
VALUE rb_cFloat |
Definition at line 180 of file numeric.c.
Referenced by Init_Numeric(), and rb_float_new_in_heap().
VALUE rb_cInteger |
Definition at line 181 of file numeric.c.
Referenced by Init_Numeric(), negative_int_p(), num_positive_p(), num_step_negative_p(), and positive_int_p().
VALUE rb_cNumeric |
Definition at line 179 of file numeric.c.
Referenced by Init_Numeric().
VALUE rb_eFloatDomainError |
Definition at line 187 of file numeric.c.
Referenced by Init_Numeric().
VALUE rb_eZeroDivError |
Definition at line 186 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}} |