Ruby
2.4.2p198(2017-09-14revision59899)
|
#include "internal.h"
#include <math.h>
#include <float.h>
#include "ruby_assert.h"
#include <ctype.h>
Go to the source code of this file.
Macros | |
#define | NDEBUG |
#define | ZERO INT2FIX(0) |
#define | ONE INT2FIX(1) |
#define | TWO INT2FIX(2) |
#define | GMP_GCD_DIGITS 1 |
#define | INT_POSITIVE_P(x) (FIXNUM_P(x) ? FIXNUM_POSITIVE_P(x) : BIGNUM_POSITIVE_P(x)) |
#define | INT_ZERO_P(x) (FIXNUM_P(x) ? FIXNUM_ZERO_P(x) : rb_bigzero_p(x)) |
#define | f_boolcast(x) ((x) ? Qtrue : Qfalse) |
#define | f_inspect rb_inspect |
#define | f_to_s rb_obj_as_string |
#define | binop(n, op) |
#define | fun1(n) |
#define | fun2(n) |
#define | f_expt10(x) rb_int_pow(INT2FIX(10), x) |
#define | f_nonzero_p(x) (!f_zero_p(x)) |
#define | k_exact_p(x) (!k_float_p(x)) |
#define | k_inexact_p(x) k_float_p(x) |
#define | k_exact_zero_p(x) (k_exact_p(x) && f_zero_p(x)) |
#define | k_exact_one_p(x) (k_exact_p(x) && f_one_p(x)) |
#define | get_dat1(x) struct RRational *dat = RRATIONAL(x) |
#define | get_dat2(x, y) struct RRational *adat = RRATIONAL(x), *bdat = RRATIONAL(y) |
#define | RRATIONAL_SET_NUM(rat, n) RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->num,(n)) |
#define | RRATIONAL_SET_DEN(rat, d) RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->den,(d)) |
#define | id_ceil rb_intern("ceil") |
#define | f_ceil(x) rb_funcall((x), id_ceil, 0) |
#define | id_quo rb_intern("quo") |
#define | f_quo(x, y) rb_funcall((x), id_quo, 1, (y)) |
#define | f_reciprocal(x) f_quo(ONE, (x)) |
#define | id_numerator rb_intern("numerator") |
#define | f_numerator(x) rb_funcall((x), id_numerator, 0) |
#define | id_denominator rb_intern("denominator") |
#define | f_denominator(x) rb_funcall((x), id_denominator, 0) |
#define | id_to_r rb_intern("to_r") |
#define | f_to_r(x) rb_funcall((x), id_to_r, 0) |
#define | rb_intern(str) rb_intern_const(str) |
Variables | |
VALUE | rb_cRational |
static ID | id_abs |
static ID | id_idiv |
static ID | id_integer_p |
static ID | id_to_i |
static ID | id_i_num |
static ID | id_i_den |
#define binop | ( | n, | |
op | |||
) |
Definition at line 42 of file rational.c.
Referenced by f_lt_p().
Definition at line 38 of file rational.c.
Referenced by nurat_eqeq_p(), nurat_negative_p(), and nurat_positive_p().
#define f_ceil | ( | x | ) | rb_funcall((x), id_ceil, 0) |
Definition at line 1569 of file rational.c.
Referenced by nurat_rationalize_internal().
#define f_denominator | ( | x | ) | rb_funcall((x), id_denominator, 0) |
Definition at line 1928 of file rational.c.
Referenced by nucomp_denominator(), nucomp_numerator(), and numeric_denominator().
#define f_expt10 | ( | x | ) | rb_int_pow(INT2FIX(10), x) |
Referenced by f_round_common(), and read_num().
#define f_inspect rb_inspect |
Definition at line 39 of file rational.c.
Referenced by nurat_inspect().
#define f_nonzero_p | ( | x | ) | (!f_zero_p(x)) |
Definition at line 175 of file rational.c.
Referenced by f_gcd().
#define f_numerator | ( | x | ) | rb_funcall((x), id_numerator, 0) |
Definition at line 1925 of file rational.c.
Referenced by nucomp_numerator(), and numeric_numerator().
#define f_quo | ( | x, | |
y | |||
) | rb_funcall((x), id_quo, 1, (y)) |
Definition at line 1572 of file rational.c.
Definition at line 1574 of file rational.c.
Referenced by nurat_rationalize_internal().
#define f_to_r | ( | x | ) | rb_funcall((x), id_to_r, 0) |
Definition at line 1931 of file rational.c.
Referenced by numeric_denominator(), and numeric_numerator().
#define f_to_s rb_obj_as_string |
Definition at line 40 of file rational.c.
Referenced by nurat_to_s().
#define fun1 | ( | n | ) |
Definition at line 49 of file rational.c.
#define fun2 | ( | n | ) |
Definition at line 56 of file rational.c.
Definition at line 377 of file rational.c.
Referenced by f_format(), nurat_ceil(), nurat_denominator(), nurat_div(), nurat_eqeq_p(), nurat_expt(), nurat_floor(), nurat_hash(), nurat_loader(), nurat_marshal_dump(), nurat_mul(), nurat_negative_p(), nurat_numerator(), nurat_positive_p(), nurat_round_half_down(), nurat_round_half_even(), nurat_round_half_up(), nurat_sub(), nurat_to_double(), nurat_truncate(), rb_rational_abs(), rb_rational_cmp(), rb_rational_plus(), rb_rational_reciprocal(), and rb_rational_uminus().
Definition at line 380 of file rational.c.
Referenced by nurat_div(), nurat_eqeq_p(), nurat_mul(), nurat_sub(), rb_rational_cmp(), and rb_rational_plus().
#define GMP_GCD_DIGITS 1 |
Definition at line 28 of file rational.c.
Referenced by f_gcd().
#define id_ceil rb_intern("ceil") |
Definition at line 1568 of file rational.c.
#define id_denominator rb_intern("denominator") |
Definition at line 1927 of file rational.c.
#define id_numerator rb_intern("numerator") |
Definition at line 1924 of file rational.c.
#define id_quo rb_intern("quo") |
Definition at line 1571 of file rational.c.
#define id_to_r rb_intern("to_r") |
Definition at line 1930 of file rational.c.
#define INT_POSITIVE_P | ( | x | ) | (FIXNUM_P(x) ? FIXNUM_POSITIVE_P(x) : BIGNUM_POSITIVE_P(x)) |
Definition at line 30 of file rational.c.
Referenced by nurat_expt(), and nurat_positive_p().
#define INT_ZERO_P | ( | x | ) | (FIXNUM_P(x) ? FIXNUM_ZERO_P(x) : rb_bigzero_p(x)) |
Definition at line 31 of file rational.c.
Referenced by f_gcd_normal(), f_lcm(), nurat_canonicalize(), nurat_eqeq_p(), nurat_expt(), nurat_round_half_even(), nurat_s_alloc(), and rb_flt_rationalize().
Definition at line 244 of file rational.c.
Referenced by nurat_s_convert().
#define k_exact_p | ( | x | ) | (!k_float_p(x)) |
Definition at line 240 of file rational.c.
Referenced by nurat_expt().
Definition at line 243 of file rational.c.
Referenced by nurat_coerce(), nurat_expt(), and nurat_s_convert().
#define k_inexact_p | ( | x | ) | k_float_p(x) |
Definition at line 241 of file rational.c.
#define NDEBUG |
Definition at line 16 of file rational.c.
#define ONE INT2FIX(1) |
Definition at line 25 of file rational.c.
Referenced by f_one_p(), f_rational_new_bang1(), f_round_common(), float_denominator(), float_to_r(), nurat_div(), nurat_expt(), nurat_mul(), nurat_rationalize_internal(), nurat_round_half_down(), nurat_s_alloc(), nurat_s_new(), rb_flt_rationalize(), and read_num().
#define rb_intern | ( | str | ) | rb_intern_const(str) |
Referenced by Init_Rational(), numeric_quo(), nurat_expt(), nurat_fdiv(), and rb_rational_cmp().
#define RRATIONAL_SET_DEN | ( | rat, | |
d | |||
) | RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->den,(d)) |
Definition at line 384 of file rational.c.
Referenced by nurat_loader(), and nurat_s_new_internal().
#define RRATIONAL_SET_NUM | ( | rat, | |
n | |||
) | RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->num,(n)) |
Definition at line 383 of file rational.c.
Referenced by nurat_loader(), and nurat_s_new_internal().
#define TWO INT2FIX(2) |
Definition at line 26 of file rational.c.
Referenced by nurat_round_half_down(), nurat_round_half_even(), nurat_round_half_up(), and rb_flt_rationalize().
#define ZERO INT2FIX(0) |
Definition at line 24 of file rational.c.
Referenced by f_imul(), f_lcm(), f_mul(), f_round_common(), fun2(), nurat_expt(), nurat_rationalize_internal(), nurat_s_alloc(), rb_rational_cmp(), read_digits(), and read_num().
Definition at line 132 of file rational.c.
References id_abs, rb_funcall(), rb_int_abs(), and RB_INTEGER_TYPE_P.
Referenced by f_lcm(), nurat_rationalize(), and rb_flt_rationalize_with_prec().
Definition at line 64 of file rational.c.
References FIXNUM_P, FIXNUM_ZERO_P, and rb_funcall().
Referenced by nurat_rationalize(), nurat_rationalize_internal(), and rb_flt_rationalize_with_prec().
|
inlinestatic |
Definition at line 673 of file rational.c.
References CLASS_OF, f_gcd(), f_imul(), f_rational_new_no_reduce2(), FIX2LONG, FIXNUM_P, i_gcd(), LONG2NUM, nurat_to_double(), rb_int_idiv(), rb_int_minus(), rb_int_mul(), and rb_int_plus().
Referenced by nurat_sub(), and rb_rational_plus().
Definition at line 74 of file rational.c.
References FIX2LONG, FIXNUM_P, rb_funcall(), rb_int_div(), and RB_INTEGER_TYPE_P.
Referenced by f_lcm(), nurat_coerce(), and nurat_s_convert().
Definition at line 150 of file rational.c.
References FIXNUM_P, and rb_equal().
Referenced by f_imul(), nurat_rationalize(), and rb_flt_rationalize_with_prec().
Definition at line 1718 of file rational.c.
References func, get_dat1, rb_str_cat2(), and rb_str_concat().
Referenced by nurat_inspect(), and nurat_to_s().
Definition at line 341 of file rational.c.
References assert, BIGNUM_LEN, f_gcd_normal(), f_mod, f_nonzero_p, f_zero_p(), GMP_GCD_DIGITS, RB_TYPE_P, and T_BIGNUM.
Referenced by f_addsub(), f_lcm(), f_muldiv(), nurat_s_canonicalize_internal(), rb_gcd(), and rb_gcdlcm().
Definition at line 303 of file rational.c.
References FIX2LONG, FIXNUM_P, FIXNUM_ZERO_P, i_gcd(), INT_NEGATIVE_P, INT_ZERO_P, LONG2NUM, rb_int_modulo(), and rb_int_uminus().
Referenced by f_gcd(), and rb_gcd_normal().
|
inlinestatic |
Definition at line 642 of file rational.c.
References assert, f_eqeq_p(), f_mul(), LONG2NUM, MUL_OVERFLOW_LONG_P, rb_big_mul(), rb_int2big(), and ZERO.
Referenced by f_addsub(), f_muldiv(), and rb_rational_cmp().
Definition at line 211 of file rational.c.
References rb_obj_is_kind_of().
Referenced by k_numeric_p().
Definition at line 370 of file rational.c.
References f_abs(), f_div(), f_gcd(), f_mul(), INT_ZERO_P, and ZERO.
Referenced by rb_gcdlcm(), and rb_lcm().
Definition at line 84 of file rational.c.
References binop, FIXNUM_P, mod, rb_funcall(), RTEST, and SIGNED_VALUE.
Referenced by nurat_rationalize_internal().
|
inlinestatic |
Definition at line 193 of file rational.c.
References INT2FIX, LONG2FIX, Qfalse, rb_equal(), RB_INTEGER_TYPE_P, RB_TYPE_P, RRATIONAL, T_BIGNUM, and T_RATIONAL.
Referenced by nurat_expt().
Definition at line 97 of file rational.c.
References FIX2LONG, FIXNUM_P, rb_funcall(), rb_int_mul(), RB_INTEGER_TYPE_P, RB_TYPE_P, T_BIGNUM, and ZERO.
Referenced by f_imul(), f_lcm(), nurat_coerce(), and nurat_rationalize_internal().
|
inlinestatic |
Definition at line 805 of file rational.c.
References assert, CLASS_OF, f_gcd(), f_imul(), f_rational_new_no_reduce2(), FIX2LONG, FIXNUM_P, i_gcd(), INT_NEGATIVE_P, rb_int_idiv(), rb_int_mul(), rb_int_uminus(), RB_INTEGER_TYPE_P, RB_TYPE_P, and T_RATIONAL.
Referenced by nurat_div(), and nurat_mul().
Definition at line 968 of file rational.c.
References INT2FIX, Qfalse, Qtrue, and rb_funcall().
Referenced by nurat_expt().
|
inlinestatic |
Definition at line 178 of file rational.c.
References LONG2FIX, ONE, rb_equal(), RB_INTEGER_TYPE_P, RB_TYPE_P, RRATIONAL, and T_RATIONAL.
Referenced by nurat_div(), nurat_expt(), nurat_s_canonicalize_internal(), and nurat_s_canonicalize_internal_no_reduce().
Definition at line 536 of file rational.c.
References assert, k_rational_p(), and nurat_s_canonicalize_internal().
Referenced by nurat_expt(), nurat_rationalize(), and rb_rational_uminus().
Definition at line 436 of file rational.c.
References canonicalization, f, nurat_canonicalization(), nurat_s_new_internal(), ONE, and RUBY_FUNC_EXPORTED.
Referenced by f_round_common(), nurat_coerce(), nurat_expt(), and rb_rational_cmp().
Definition at line 544 of file rational.c.
References assert, k_rational_p(), nurat_s_canonicalize_internal_no_reduce(), and nurat_s_convert().
Referenced by f_addsub(), f_muldiv(), nurat_div(), nurat_sub(), rb_rational_plus(), and rb_rational_reciprocal().
Definition at line 1392 of file rational.c.
References CLASS_OF, f_expt10, f_rational_new_bang1(), FIX2INT, func, INT_NEGATIVE_P, k_float_p(), k_integer_p(), k_rational_p(), nurat_div(), nurat_mul(), nurat_truncate(), ONE, rb_eTypeError, rb_int_cmp(), rb_raise(), rb_scan_args(), RB_TYPE_P, T_RATIONAL, and ZERO.
Referenced by nurat_ceil_n(), nurat_floor_n(), nurat_round_n(), and nurat_truncate_n().
Definition at line 124 of file rational.c.
References FIXNUM_P, FIXNUM_ZERO_P, and rb_funcall().
Referenced by nurat_coerce(), nurat_rationalize(), nurat_rationalize_internal(), and rb_flt_rationalize_with_prec().
Definition at line 2114 of file rational.c.
References DBL_MANT_DIG, f, INT2FIX, rb_assoc_new(), rb_dbl2big(), and RFLOAT_VALUE.
Referenced by float_to_r(), and rb_flt_rationalize().
Definition at line 2045 of file rational.c.
References float_to_r(), INT2FIX, isinf(), isnan, k_integer_p(), nurat_denominator(), ONE, and RFLOAT_VALUE.
Referenced by Init_Rational().
Definition at line 2022 of file rational.c.
References float_to_r(), isinf(), isnan, k_integer_p(), nurat_numerator(), and RFLOAT_VALUE.
Referenced by Init_Rational().
Definition at line 2247 of file rational.c.
References DBL2NUM, rb_flt_rationalize(), rb_flt_rationalize_with_prec(), rb_rational_uminus(), rb_scan_args(), and RFLOAT_VALUE.
Referenced by Init_Rational().
Definition at line 2154 of file rational.c.
References f, FIX2LONG, float_decode_internal(), FLT_RADIX, INT2FIX, ONE, rb_int_lshift(), rb_int_mul(), rb_int_pow(), rb_rational_new1, rb_rational_new2, RB_TYPE_P, and T_RATIONAL.
Referenced by float_denominator(), float_numerator(), integer_denominator(), nurat_s_convert(), rb_flt_rationalize(), and rb_flt_rationalize_with_prec().
fun1 | ( | integer_p | ) |
Definition at line 139 of file rational.c.
References id_to_i, rb_funcall(), rb_str_to_inum(), RB_TYPE_P, and T_STRING.
fun2 | ( | idiv | ) |
Definition at line 157 of file rational.c.
References FIXNUM_ZERO_P, rb_equal(), RB_INTEGER_TYPE_P, RB_TYPE_P, RRATIONAL, T_RATIONAL, and ZERO.
|
inlinestatic |
Definition at line 282 of file rational.c.
Referenced by f_addsub(), f_gcd_normal(), and f_muldiv().
void Init_Rational | ( | void | ) |
Definition at line 2675 of file rational.c.
References assert, CLASS_OF, float_denominator(), float_numerator(), float_rationalize(), id_abs, id_i_den, id_i_num, id_idiv, id_integer_p, id_to_i, integer_denominator(), integer_numerator(), integer_rationalize(), integer_to_r(), nilclass_rationalize(), nilclass_to_r(), numeric_denominator(), numeric_numerator(), numeric_quo(), nurat_ceil_n(), nurat_coerce(), nurat_denominator(), nurat_div(), nurat_dumper(), nurat_eqeq_p(), nurat_expt(), nurat_f_rational(), nurat_fdiv(), nurat_floor_n(), nurat_hash(), nurat_inspect(), nurat_loader(), nurat_marshal_dump(), nurat_marshal_load(), nurat_mul(), nurat_negative_p(), nurat_numerator(), nurat_positive_p(), nurat_rationalize(), nurat_round_n(), nurat_s_alloc(), nurat_s_new(), nurat_sub(), nurat_to_r(), nurat_to_s(), nurat_truncate(), nurat_truncate_n(), rb_cFloat, rb_cInteger, rb_cNilClass, rb_cNumeric, rb_cObject, rb_cRational, rb_cString, rb_define_alloc_func(), rb_define_class(), rb_define_class_under(), rb_define_global_function(), rb_define_method(), rb_define_private_method(), rb_gcd(), rb_gcdlcm(), rb_intern, rb_lcm(), rb_marshal_define_compat(), rb_provide(), rb_rational_abs(), rb_rational_cmp(), rb_rational_plus(), rb_rational_uminus(), rb_undef_method(), and string_to_r().
Definition at line 2005 of file rational.c.
References float_to_r(), and INT2FIX.
Referenced by Init_Rational().
Definition at line 1993 of file rational.c.
Referenced by Init_Rational().
Definition at line 2107 of file rational.c.
References integer_to_r(), NULL, and rb_scan_args().
Referenced by Init_Rational().
Definition at line 2094 of file rational.c.
References rb_rational_new1.
Referenced by Init_Rational(), and integer_rationalize().
|
inlinestatic |
Definition at line 2286 of file rational.c.
Referenced by read_digits().
|
inlinestatic |
Definition at line 2336 of file rational.c.
Referenced by read_num().
|
inlinestatic |
Definition at line 2268 of file rational.c.
Referenced by read_sign().
|
inlinestatic |
Definition at line 229 of file rational.c.
References RB_FLOAT_TYPE_P.
Referenced by f_round_common().
|
inlinestatic |
Definition at line 223 of file rational.c.
References RB_INTEGER_TYPE_P.
Referenced by f_round_common(), float_denominator(), float_numerator(), nurat_int_value(), nurat_s_alloc(), and nurat_s_convert().
|
inlinestatic |
Definition at line 217 of file rational.c.
References f_kind_of_p(), and rb_cNumeric.
Referenced by nurat_expt(), nurat_int_check(), and nurat_s_convert().
|
inlinestatic |
Definition at line 235 of file rational.c.
References RB_TYPE_P, and T_RATIONAL.
Referenced by f_rational_new2(), f_rational_new_no_reduce2(), f_round_common(), and nurat_expt().
Definition at line 2078 of file rational.c.
References nilclass_to_r(), NULL, and rb_scan_args().
Referenced by Init_Rational().
Definition at line 2065 of file rational.c.
References INT2FIX, and rb_rational_new1.
Referenced by Init_Rational(), and nilclass_rationalize().
Definition at line 1952 of file rational.c.
References f_denominator, and f_to_r.
Referenced by Init_Rational().
Definition at line 1940 of file rational.c.
References f_numerator, and f_to_r.
Referenced by Init_Rational().
Definition at line 1967 of file rational.c.
References nurat_div(), rb_convert_type(), RB_FLOAT_TYPE_P, rb_funcall(), rb_intern, rb_rational_raw1, and T_RATIONAL.
Referenced by Init_Rational().
Definition at line 474 of file rational.c.
References assert, INT_NEGATIVE_P, INT_ZERO_P, NULL, rb_int_uminus(), RB_INTEGER_TYPE_P, and rb_num_zerodiv().
Referenced by nurat_loader(), nurat_marshal_load(), nurat_s_canonicalize_internal(), and nurat_s_canonicalize_internal_no_reduce().
Definition at line 1285 of file rational.c.
References get_dat1, rb_int_idiv(), and rb_int_uminus().
Referenced by nurat_ceil_n().
Definition at line 1470 of file rational.c.
References f_round_common(), and nurat_ceil().
Referenced by Init_Rational().
Definition at line 1170 of file rational.c.
References CLASS_OF, f_div(), f_idiv, f_mul(), f_rational_new_bang1(), f_sub(), f_truncate, INT2FIX, k_exact_zero_p, nurat_to_f(), Qnil, Qtrue, rb_assoc_new(), rb_Complex(), rb_eTypeError, RB_FLOAT_TYPE_P, RB_INTEGER_TYPE_P, rb_obj_classname(), rb_raise(), RB_TYPE_P, RCOMPLEX, T_COMPLEX, T_RATIONAL, and val.
Referenced by Init_Rational().
Definition at line 616 of file rational.c.
References get_dat1.
Referenced by float_denominator(), Init_Rational(), and rb_rational_den().
Definition at line 904 of file rational.c.
References CLASS_OF, DBL2NUM, f_muldiv(), f_one_p(), f_rational_new_no_reduce2(), f_zero_p(), get_dat1, get_dat2, nurat_to_double(), nurat_to_f(), ONE, RB_FLOAT_TYPE_P, RB_INTEGER_TYPE_P, rb_num_coerce_bin(), rb_num_zerodiv(), RB_TYPE_P, RFLOAT_VALUE, and T_RATIONAL.
Referenced by f_round_common(), Init_Rational(), numeric_quo(), nurat_fdiv(), read_num(), and read_rat_nos().
Definition at line 1770 of file rational.c.
Referenced by Init_Rational().
Definition at line 1132 of file rational.c.
References f_boolcast, FIX2LONG, FIXNUM_P, FIXNUM_ZERO_P, get_dat1, get_dat2, INT_ZERO_P, nurat_to_double(), Qfalse, Qtrue, rb_dbl_cmp(), rb_equal(), RB_FLOAT_TYPE_P, rb_int_equal(), RB_INTEGER_TYPE_P, RB_TYPE_P, RFLOAT_VALUE, and T_RATIONAL.
Referenced by Init_Rational(), and rb_flt_rationalize().
Definition at line 990 of file rational.c.
References CLASS_OF, DBL2NUM, f_minus_one_p(), f_odd_p(), f_one_p(), f_rational_new2(), f_rational_new_bang1(), FIXNUM_P, get_dat1, INT2FIX, INT_NEGATIVE_P, INT_POSITIVE_P, INT_ZERO_P, k_exact_p, k_exact_zero_p, k_numeric_p(), k_rational_p(), NAN, nurat_to_f(), ONE, rb_float_pow(), RB_FLOAT_TYPE_P, rb_int_pow(), rb_int_uminus(), RB_INTEGER_TYPE_P, rb_intern, rb_num_coerce_bin(), rb_num_negative_p(), rb_num_zerodiv(), RB_TYPE_P, rb_warn(), T_BIGNUM, T_RATIONAL, and ZERO.
Referenced by Init_Rational().
Definition at line 580 of file rational.c.
References nurat_s_convert(), and rb_cRational.
Referenced by Init_Rational().
Definition at line 952 of file rational.c.
References DBL2NUM, div, f_zero_p(), FIXNUM_P, LONG2FIX, nurat_div(), nurat_to_double(), nurat_to_f(), RB_FLOAT_TYPE_P, rb_funcall(), rb_intern, RB_TYPE_P, and T_RATIONAL.
Referenced by Init_Rational().
Definition at line 1278 of file rational.c.
References get_dat1, and rb_int_idiv().
Referenced by nurat_floor_n().
Definition at line 1446 of file rational.c.
References f_round_common(), and nurat_floor().
Referenced by Init_Rational().
Definition at line 1703 of file rational.c.
References get_dat1, LONG2FIX, NUM2LONG, rb_hash(), and rb_memhash().
Referenced by Init_Rational().
Definition at line 1757 of file rational.c.
References f_format(), f_inspect, rb_str_cat2(), rb_str_concat(), and rb_usascii_str_new2.
Referenced by Init_Rational().
|
inlinestatic |
Definition at line 456 of file rational.c.
References k_numeric_p(), rb_eTypeError, RB_INTEGER_TYPE_P, and rb_raise().
Referenced by nurat_int_value(), nurat_loader(), and nurat_marshal_load().
Definition at line 465 of file rational.c.
References f_to_i, k_integer_p(), and nurat_int_check().
Referenced by nurat_s_new(), rb_gcd(), rb_gcdlcm(), and rb_lcm().
Definition at line 1777 of file rational.c.
References get_dat1, id_i_den, id_i_num, nurat_canonicalize(), nurat_int_check(), rb_ivar_get(), RRATIONAL_SET_DEN, and RRATIONAL_SET_NUM.
Referenced by Init_Rational().
Definition at line 1795 of file rational.c.
References get_dat1, rb_assoc_new(), and rb_copy_generic_ivar().
Referenced by Init_Rational().
Definition at line 1807 of file rational.c.
References Check_Type, id_i_den, id_i_num, nurat_canonicalize(), nurat_int_check(), RARRAY_AREF, RARRAY_LEN, rb_check_frozen, rb_check_trusted(), rb_eArgError, rb_ivar_set(), rb_raise(), and T_ARRAY.
Referenced by Init_Rational().
Definition at line 862 of file rational.c.
References DBL2NUM, f_muldiv(), get_dat1, get_dat2, nurat_to_double(), ONE, RB_FLOAT_TYPE_P, RB_INTEGER_TYPE_P, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, and T_RATIONAL.
Referenced by f_round_common(), Init_Rational(), and read_num().
Definition at line 1247 of file rational.c.
References f_boolcast, get_dat1, and INT_NEGATIVE_P.
Referenced by Init_Rational(), and nurat_rationalize().
Definition at line 597 of file rational.c.
References get_dat1.
Referenced by float_numerator(), Init_Rational(), and rb_rational_num().
Definition at line 1234 of file rational.c.
References f_boolcast, get_dat1, and INT_POSITIVE_P.
Referenced by Init_Rational().
Definition at line 1679 of file rational.c.
References CLASS_OF, f_abs(), f_add(), f_eqeq_p(), f_rational_new2(), f_sub(), nurat_negative_p(), nurat_rationalize_internal(), rb_rational_uminus(), and rb_scan_args().
Referenced by Init_Rational().
Definition at line 1636 of file rational.c.
References f_add(), f_ceil, f_lt_p(), f_mul(), f_reciprocal, f_sub(), ONE, and ZERO.
Referenced by nurat_rationalize(), rb_flt_rationalize(), and rb_flt_rationalize_with_prec().
Definition at line 1340 of file rational.c.
References get_dat1, INT_NEGATIVE_P, neg, ONE, rb_int_idiv(), rb_int_minus(), rb_int_mul(), rb_int_plus(), rb_int_uminus(), and TWO.
Definition at line 1365 of file rational.c.
References get_dat1, INT_NEGATIVE_P, INT_ZERO_P, LONG2FIX, neg, RARRAY_AREF, rb_int_and(), rb_int_divmod(), rb_int_mul(), rb_int_plus(), rb_int_uminus(), and TWO.
Definition at line 1316 of file rational.c.
References get_dat1, INT_NEGATIVE_P, neg, rb_int_idiv(), rb_int_mul(), rb_int_plus(), rb_int_uminus(), and TWO.
Definition at line 1519 of file rational.c.
References f_round_common(), NULL, rb_num_get_rounding_option(), rb_scan_args(), and ROUND_FUNC.
Referenced by Init_Rational().
Definition at line 398 of file rational.c.
References argc, argv, f_to_i, INT_NEGATIVE_P, INT_ZERO_P, k_integer_p(), nurat_s_new_internal(), ONE, rb_int_uminus(), rb_num_zerodiv(), rb_scan_args(), and ZERO.
Referenced by Init_Rational().
Definition at line 488 of file rational.c.
References f_gcd(), f_idiv, f_one_p(), nurat_canonicalize(), and nurat_s_new_internal().
Referenced by f_rational_new2(), nurat_s_new(), and rb_rational_new().
|
inlinestatic |
Definition at line 505 of file rational.c.
References f_one_p(), nurat_canonicalize(), and nurat_s_new_internal().
Referenced by f_rational_new_no_reduce2(), and rb_rational_abs().
Definition at line 2572 of file rational.c.
References f_div(), float_to_r(), k_exact_one_p, k_exact_zero_p, k_integer_p(), k_numeric_p(), NIL_P, nurat_s_new(), rb_backref_get(), rb_backref_set(), rb_convert_type(), rb_eTypeError, RB_FLOAT_TYPE_P, rb_match_busy(), rb_raise(), rb_scan_args(), RB_TYPE_P, RCOMPLEX, string_to_r_strict(), T_COMPLEX, T_RATIONAL, and T_STRING.
Referenced by f_rational_new_no_reduce2(), nurat_f_rational(), and rb_Rational().
Definition at line 517 of file rational.c.
References nurat_int_value(), nurat_s_canonicalize_internal(), ONE, and rb_scan_args().
Referenced by Init_Rational(), and nurat_s_convert().
Definition at line 387 of file rational.c.
References FL_WB_PROTECTED, NEWOBJ_OF, RGENGC_WB_PROTECTED_RATIONAL, RRATIONAL_SET_DEN, RRATIONAL_SET_NUM, and T_RATIONAL.
Referenced by f_rational_new_bang1(), nurat_s_alloc(), nurat_s_canonicalize_internal(), nurat_s_canonicalize_internal_no_reduce(), and rb_rational_raw().
Definition at line 776 of file rational.c.
References CLASS_OF, DBL2NUM, f_addsub(), f_rational_new_no_reduce2(), get_dat1, get_dat2, nurat_to_double(), RB_FLOAT_TYPE_P, rb_int_minus(), rb_int_mul(), RB_INTEGER_TYPE_P, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, and T_RATIONAL.
Referenced by Init_Rational().
|
static |
Definition at line 1530 of file rational.c.
References get_dat1, and rb_int_fdiv_double().
Referenced by f_addsub(), nurat_div(), nurat_eqeq_p(), nurat_fdiv(), nurat_mul(), nurat_sub(), nurat_to_f(), rb_rational_cmp(), and rb_rational_plus().
Definition at line 1548 of file rational.c.
References DBL2NUM, and nurat_to_double().
Referenced by nurat_coerce(), nurat_div(), nurat_expt(), and nurat_fdiv().
Definition at line 1563 of file rational.c.
Referenced by Init_Rational().
Definition at line 1741 of file rational.c.
References f_format(), and f_to_s.
Referenced by Init_Rational().
Definition at line 1307 of file rational.c.
References get_dat1, INT_NEGATIVE_P, rb_int_idiv(), and rb_int_uminus().
Referenced by f_round_common(), Init_Rational(), and nurat_truncate_n().
Definition at line 1494 of file rational.c.
References f_round_common(), and nurat_truncate().
Referenced by Init_Rational().
Definition at line 2464 of file rational.c.
References read_rat(), and skip_ws().
Referenced by rb_cstr_to_rat(), string_to_r(), and string_to_r_strict().
Definition at line 2560 of file rational.c.
References parse_rat(), rb_eFloatDomainError, RB_FLOAT_TYPE_P, and rb_raise().
Referenced by str2num().
Definition at line 2195 of file rational.c.
References f, FIX2INT, float_decode_internal(), float_to_r(), FLT_RADIX, INT2FIX, INT_ZERO_P, nurat_eqeq_p(), nurat_rationalize_internal(), ONE, rb_int_lshift(), rb_int_minus(), rb_int_mul(), rb_int_plus(), rb_int_pow(), rb_rational_new1, rb_rational_new2, and TWO.
Referenced by float_rationalize().
Definition at line 2179 of file rational.c.
References f_abs(), f_add(), f_eqeq_p(), f_sub(), float_to_r(), nurat_rationalize_internal(), and rb_rational_new2.
Referenced by float_rationalize().
Definition at line 1850 of file rational.c.
References f_gcd(), and nurat_int_value().
Referenced by Init_Rational(), and rb_int_fdiv_double().
Definition at line 335 of file rational.c.
References f_gcd_normal().
Definition at line 1885 of file rational.c.
References f_gcd(), f_lcm(), nurat_int_value(), and rb_assoc_new().
Referenced by Init_Rational().
Definition at line 1868 of file rational.c.
References f_lcm(), and nurat_int_value().
Referenced by Init_Rational(), and nucomp_denominator().
Definition at line 1904 of file rational.c.
References nurat_s_convert(), and rb_cRational.
Referenced by BigDecimal_to_r().
Definition at line 1267 of file rational.c.
References CLASS_OF, get_dat1, INT_NEGATIVE_P, nurat_s_canonicalize_internal_no_reduce(), and rb_int_abs().
Referenced by Init_Rational(), and numeric_polar().
Definition at line 1080 of file rational.c.
References CLASS_OF, f_imul(), f_rational_new_bang1(), FIX2LONG, FIXNUM_P, get_dat1, get_dat2, LONG2FIX, nurat_to_double(), rb_dbl_cmp(), RB_FLOAT_TYPE_P, rb_int_cmp(), rb_int_minus(), rb_int_mul(), RB_INTEGER_TYPE_P, rb_intern, rb_num_coerce_cmp(), RB_TYPE_P, RFLOAT_VALUE, T_RATIONAL, and ZERO.
Referenced by f_gt_p(), and Init_Rational().
Definition at line 1919 of file rational.c.
References nurat_denominator().
Definition at line 1898 of file rational.c.
References nurat_s_canonicalize_internal(), and rb_cRational.
Referenced by date_zone_to_diff(), ibf_load_object_complex_rational(), and parse_rational().
Definition at line 1913 of file rational.c.
References nurat_numerator().
Definition at line 735 of file rational.c.
References CLASS_OF, DBL2NUM, f_addsub(), f_rational_new_no_reduce2(), get_dat1, get_dat2, nurat_to_double(), RB_FLOAT_TYPE_P, rb_int_mul(), rb_int_plus(), RB_INTEGER_TYPE_P, rb_num_coerce_bin(), RB_TYPE_P, RFLOAT_VALUE, and T_RATIONAL.
Referenced by enum_sum(), Init_Rational(), rb_ary_sum(), read_num(), and sum_iter().
Definition at line 1892 of file rational.c.
References nurat_s_new_internal(), and rb_cRational.
Definition at line 1832 of file rational.c.
References CLASS_OF, f_rational_new_no_reduce2(), and get_dat1.
Referenced by fix_divide().
Definition at line 629 of file rational.c.
References assert, CLASS_OF, f_rational_new2(), get_dat1, rb_int_uminus(), RB_TYPE_P, and T_RATIONAL.
Referenced by float_rationalize(), Init_Rational(), nurat_rationalize(), and read_num().
Definition at line 2412 of file rational.c.
References NULL, and read_digits().
Referenced by read_rat_nos().
Definition at line 2292 of file rational.c.
References ALLOCV_END, ALLOCV_N, isdecimal(), rb_cstr_to_inum(), strlen(), and ZERO.
Referenced by read_den(), and read_num().
Definition at line 2342 of file rational.c.
References count, f_expt10, INT2NUM, islettere(), NIL_P, NULL, nurat_div(), nurat_mul(), ONE, Qnil, rb_int_mul(), rb_int_plus(), rb_int_uminus(), rb_rational_new2, rb_rational_plus(), rb_rational_uminus(), RB_TYPE_P, read_digits(), read_sign(), T_RATIONAL, and ZERO.
Referenced by read_rat_nos().
Definition at line 2445 of file rational.c.
References read_rat_nos(), and read_sign().
Referenced by parse_rat().
Definition at line 2421 of file rational.c.
References FIX2LONG, FIXNUM_P, nurat_div(), rb_int_div(), RB_TYPE_P, read_den(), read_num(), and T_RATIONAL.
Referenced by read_rat().
|
static |
Definition at line 2274 of file rational.c.
References issign().
Referenced by read_num(), and read_rat().
|
inlinestatic |
Definition at line 2457 of file rational.c.
Referenced by parse_rat().
Definition at line 2534 of file rational.c.
References parse_rat(), rb_eFloatDomainError, RB_FLOAT_TYPE_P, rb_must_asciicompat(), rb_raise(), rb_str_modify(), RSTRING_LEN, and RSTRING_PTR.
Referenced by Init_Rational().
Definition at line 2479 of file rational.c.
References parse_rat(), PRIsVALUE, rb_eArgError, rb_eFloatDomainError, RB_FLOAT_TYPE_P, rb_must_asciicompat(), rb_raise(), rb_str_modify(), RSTRING_LEN, and RSTRING_PTR.
Referenced by nurat_s_convert().
|
static |
Definition at line 35 of file rational.c.
Referenced by f_abs(), and Init_Rational().
|
static |
Definition at line 35 of file rational.c.
Referenced by Init_Rational(), nurat_loader(), and nurat_marshal_load().
|
static |
Definition at line 35 of file rational.c.
Referenced by Init_Rational(), nurat_loader(), and nurat_marshal_load().
|
static |
Definition at line 35 of file rational.c.
Referenced by Init_Rational().
|
static |
Definition at line 35 of file rational.c.
Referenced by Init_Rational().
|
static |
Definition at line 35 of file rational.c.
Referenced by fun1(), and Init_Rational().
VALUE rb_cRational |
Definition at line 33 of file rational.c.
Referenced by Init_Rational(), nurat_f_rational(), rb_Rational(), rb_rational_new(), and rb_rational_raw().