Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
|
Internal header for Numeric. More...
#include "internal/bignum.h"
#include "internal/bits.h"
#include "internal/fixnum.h"
#include "internal/vm.h"
#include "ruby/intern.h"
#include "ruby/ruby.h"
Go to the source code of this file.
Data Structures | |
struct | RFloat |
Macros | |
#define | ROUND_TO(mode, even, up, down) |
#define | ROUND_FUNC(mode, name) ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down) |
#define | ROUND_CALL(mode, name, args) |
#define | ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP |
#define | RFLOAT(obj) ((struct RFloat *)(obj)) |
#define | rb_float_value rb_float_value_inline |
#define | rb_float_new rb_float_new_inline |
Enumerations | |
enum | ruby_num_rounding_mode { RUBY_NUM_ROUND_HALF_UP , RUBY_NUM_ROUND_HALF_EVEN , RUBY_NUM_ROUND_HALF_DOWN , RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT } |
Internal header for Numeric.
Definition in file numeric.h.
#define ROUND_DEFAULT RUBY_NUM_ROUND_HALF_UP |
#define ROUND_TO | ( | mode, | |
even, | |||
up, | |||
down | |||
) |
Definition at line 4613 of file numeric.c.
References CHAR_BIT, FIX2LONG, FIXNUM_P, INT2FIX, rb_big_norm(), and rb_to_int().
Definition at line 1140 of file numeric.c.
References DBL2NUM, num, and RFLOAT_VALUE.
Referenced by rb_big_fdiv_double(), and rb_rational_div().
Definition at line 1732 of file numeric.c.
References DBL2NUM, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 1156 of file numeric.c.
References DBL2NUM, FIX2LONG, num, rb_big2dbl(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by fun2(), and Init_Numeric().
Definition at line 1417 of file numeric.c.
References isnan, Qfalse, Qtrue, rb_integer_float_eq(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Definition at line 1537 of file numeric.c.
References FIX2LONG, FIXNUM_P, isnan, Qfalse, Qtrue, rb_integer_float_cmp(), rb_num_coerce_relop(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1078 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1102 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1054 of file numeric.c.
References DBL2NUM, FIX2LONG, rb_big2dbl(), rb_num_coerce_bin(), RFLOAT_VALUE, T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric().
Definition at line 1328 of file numeric.c.
References DBL2NUM, FIX2LONG, idPow, INT2FIX, rb_big2dbl(), rb_dbl_complex_new_polar_pi(), rb_num_coerce_bin(), RFLOAT_VALUE, round(), T_BIGNUM, T_FIXNUM, and T_FLOAT.
Referenced by Init_Numeric(), rb_num_pow(), and rb_rational_pow().
Definition at line 1041 of file numeric.c.
References DBL2NUM, and RFLOAT_VALUE.
Referenced by Init_Numeric().
Definition at line 3549 of file numeric.c.
References FIXNUM_P, rb_any_to_s(), rb_big2str(), rb_fix2str(), and T_BIGNUM.
Referenced by rb_str_format().
Definition at line 4826 of file numeric.c.
References FIXNUM_P, num, Qnil, rb_big_abs(), and T_BIGNUM.
Referenced by rb_rational_abs().
Definition at line 4436 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_and(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4196 of file numeric.c.
References FIXNUM_P, rb_big_cmp(), rb_eNotImpError, rb_obj_classname(), rb_raise(), and T_BIGNUM.
Referenced by Init_Numeric(), and rb_rational_cmp().
Definition at line 3803 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_div(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 3950 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_divmod(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4147 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_eq(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 3715 of file numeric.c.
References FIXNUM_P, gcd(), nan(), rb_big_fdiv_double(), rb_gcd(), rb_int_idiv(), RB_INTEGER_TYPE_P, and T_BIGNUM.
Referenced by rb_int_fdiv().
Definition at line 4276 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_ge(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 4236 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_gt(), and T_BIGNUM.
Referenced by Init_Numeric().
Definition at line 3830 of file numeric.c.
References FIXNUM_P, rb_big_idiv(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_int_fdiv_double(), and rb_str_format().
Definition at line 4553 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_lshift(), and T_BIGNUM.
Referenced by Init_Numeric(), and rb_flt_rationalize().
Definition at line 3636 of file numeric.c.
References FIXNUM_P, rb_big_minus(), rb_num_coerce_bin(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_flt_rationalize(), rb_int_truncate(), rb_rational_cmp(), and rb_rational_minus().
Definition at line 3873 of file numeric.c.
References FIXNUM_P, rb_big_modulo(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_int_powm(), rb_int_truncate(), and rb_io_ungetbyte().
Definition at line 3686 of file numeric.c.
References FIXNUM_P, rb_big_mul(), rb_num_coerce_bin(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_flt_rationalize(), rb_rational_cmp(), rb_rational_minus(), rb_rational_plus(), and rb_str_format().
Definition at line 3243 of file numeric.c.
References assert, FIXNUM_P, num, Qfalse, Qtrue, rb_big_odd_p(), and T_BIGNUM.
Referenced by rb_rational_pow().
Definition at line 3597 of file numeric.c.
References FIXNUM_P, rb_big_plus(), rb_num_coerce_bin(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_flt_rationalize(), rb_int_truncate(), rb_rational_plus(), and rb_str_format().
Definition at line 4088 of file numeric.c.
References FIXNUM_P, Qnil, rb_big_pow(), and T_BIGNUM.
Referenced by Init_Numeric(), rb_int_powm(), rb_num_pow(), and rb_rational_pow().
Definition at line 3466 of file numeric.c.
References assert, FIXNUM_P, num, rb_big_uminus(), and T_BIGNUM.
Referenced by rb_complex_pow(), rb_int_powm(), rb_rational_pow(), rb_rational_raw(), and rb_rational_uminus().
enum ruby_num_rounding_mode rb_num_get_rounding_option | ( | VALUE | opts | ) |
Definition at line 205 of file numeric.c.
References NIL_P, PRIsVALUE, rb_check_string_type(), rb_eArgError, rb_get_kwargs(), rb_memcicmp(), rb_must_asciicompat(), rb_raise(), rb_sym2str(), RSTRING_LEN, RSTRING_PTR, RUBY_NUM_ROUND_DEFAULT, RUBY_NUM_ROUND_HALF_DOWN, RUBY_NUM_ROUND_HALF_EVEN, RUBY_NUM_ROUND_HALF_UP, str, strncasecmp, SYMBOL_P, and T_STRING.
Definition at line 319 of file numeric.c.
References num.
Referenced by rb_random_ulong_limited(), and rb_rational_pow().
Definition at line 4100 of file numeric.c.
References BUILTIN_TYPE, NIL_P, Qnil, rb_complex_pow(), rb_float_pow(), rb_int_pow(), rb_rational_pow(), SPECIAL_CONST_P, T_COMPLEX, and T_RATIONAL.
Referenced by rb_complex_pow().
Definition at line 250 of file numeric.c.
References FIX2LONG, FIXNUM_P, int(), NULL, NUMERR_NEGATIVE, NUMERR_TOOLARGE, NUMERR_TYPE, rb_absint_size(), rb_big2ulong(), and T_BIGNUM.
Referenced by rb_str_concat().
double ruby_float_mod | ( | double | x, |
double | y | ||
) |
double ruby_float_step_size | ( | double | beg, |
double | end, | ||
double | unit, | ||
int | excl | ||
) |
Definition at line 2537 of file numeric.c.
References DBL_EPSILON, err, HUGE_VAL, and isinf().
Referenced by ruby_float_step(), and ruby_num_interval_step_size().
Definition at line 2597 of file numeric.c.
References DBL2NUM, FIX2LONG, FIXNUM_P, HUGE_VAL, id_cmp, id_div, INT2FIX, isinf(), LONG2FIX, NUM2DBL, POSFIXABLE, rb_cmpint, rb_dbl2big(), rb_funcall(), rb_num_coerce_cmp(), RTEST, ruby_float_step_size(), T_FLOAT, and ULONG2NUM.