Ruby
2.5.0dev(2017-10-22revision60238)
|
#include "internal.h"
#include "id.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 | 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 | canonicalization 0 |
#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) |
Functions | |
fun1 (integer_p) | |
VALUE | rb_gcd_normal (VALUE x, VALUE y) |
VALUE | rb_rational_uminus (VALUE self) |
VALUE | rb_rational_plus (VALUE self, VALUE other) |
VALUE | rb_rational_cmp (VALUE self, VALUE other) |
VALUE | rb_rational_abs (VALUE self) |
VALUE | rb_rational_reciprocal (VALUE x) |
VALUE | rb_gcd (VALUE self, VALUE other) |
VALUE | rb_lcm (VALUE self, VALUE other) |
VALUE | rb_gcdlcm (VALUE self, VALUE other) |
VALUE | rb_rational_raw (VALUE x, VALUE y) |
VALUE | rb_rational_new (VALUE x, VALUE y) |
VALUE | rb_Rational (VALUE x, VALUE y) |
VALUE | rb_rational_num (VALUE rat) |
VALUE | rb_rational_den (VALUE rat) |
VALUE | rb_numeric_quo (VALUE x, VALUE y) |
VALUE | rb_flt_rationalize_with_prec (VALUE flt, VALUE prec) |
VALUE | rb_flt_rationalize (VALUE flt) |
VALUE | rb_cstr_to_rat (const char *s, int strict) |
void | Init_Rational (void) |
Variables | |
VALUE | rb_cRational |
#define binop | ( | n, | |
op | |||
) |
Definition at line 43 of file rational.c.
#define canonicalization 0 |
Definition at line 475 of file rational.c.
Referenced by rb_numeric_quo().
Definition at line 39 of file rational.c.
#define f_ceil | ( | x | ) | rb_funcall((x), id_ceil, 0) |
Definition at line 1639 of file rational.c.
#define f_denominator | ( | x | ) | rb_funcall((x), id_denominator, 0) |
Definition at line 2003 of file rational.c.
#define f_expt10 | ( | x | ) | rb_int_pow(INT2FIX(10), x) |
Definition at line 159 of file rational.c.
#define f_inspect rb_inspect |
Definition at line 40 of file rational.c.
#define f_nonzero_p | ( | x | ) | (!f_zero_p(x)) |
Definition at line 175 of file rational.c.
#define f_numerator | ( | x | ) | rb_funcall((x), id_numerator, 0) |
Definition at line 2000 of file rational.c.
#define f_quo | ( | x, | |
y | |||
) | rb_funcall((x), id_quo, 1, (y)) |
Definition at line 1642 of file rational.c.
Definition at line 1644 of file rational.c.
#define f_to_r | ( | x | ) | rb_funcall((x), id_to_r, 0) |
Definition at line 2006 of file rational.c.
#define f_to_s rb_obj_as_string |
Definition at line 41 of file rational.c.
#define fun1 | ( | n | ) |
Definition at line 50 of file rational.c.
Definition at line 397 of file rational.c.
Referenced by rb_rational_abs(), rb_rational_cmp(), rb_rational_plus(), rb_rational_reciprocal(), and rb_rational_uminus().
Definition at line 400 of file rational.c.
#define GMP_GCD_DIGITS 1 |
Definition at line 29 of file rational.c.
#define id_ceil rb_intern("ceil") |
Definition at line 1638 of file rational.c.
#define id_denominator rb_intern("denominator") |
Definition at line 2002 of file rational.c.
#define id_numerator rb_intern("numerator") |
Definition at line 1999 of file rational.c.
#define id_quo rb_intern("quo") |
Definition at line 1641 of file rational.c.
Referenced by Init_Time().
#define id_to_r rb_intern("to_r") |
Definition at line 2005 of file rational.c.
#define INT_POSITIVE_P | ( | x | ) | (FIXNUM_P(x) ? FIXNUM_POSITIVE_P(x) : BIGNUM_POSITIVE_P(x)) |
Definition at line 31 of file rational.c.
#define INT_ZERO_P | ( | x | ) | (FIXNUM_P(x) ? FIXNUM_ZERO_P(x) : rb_bigzero_p(x)) |
Definition at line 32 of file rational.c.
#define k_exact_one_p | ( | x | ) | (k_exact_p(x) && f_one_p(x)) |
Definition at line 244 of file rational.c.
#define k_exact_p | ( | x | ) | (!k_float_p(x)) |
Definition at line 240 of file rational.c.
#define k_exact_zero_p | ( | x | ) | (k_exact_p(x) && f_zero_p(x)) |
Definition at line 243 of file rational.c.
#define k_inexact_p | ( | x | ) | k_float_p(x) |
Definition at line 241 of file rational.c.
#define NDEBUG |
Definition at line 17 of file rational.c.
#define ONE INT2FIX(1) |
Definition at line 26 of file rational.c.
#define rb_intern | ( | str | ) | rb_intern_const(str) |
Referenced by rb_numeric_quo().
#define RRATIONAL_SET_DEN | ( | rat, | |
d | |||
) | RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->den,(d)) |
Definition at line 404 of file rational.c.
#define RRATIONAL_SET_NUM | ( | rat, | |
n | |||
) | RB_OBJ_WRITE((rat), &((struct RRational *)(rat))->num,(n)) |
Definition at line 403 of file rational.c.
#define TWO INT2FIX(2) |
Definition at line 27 of file rational.c.
#define ZERO INT2FIX(0) |
Definition at line 25 of file rational.c.
fun1 | ( | integer_p | ) |
Definition at line 133 of file rational.c.
References id_to_i, rb_funcall(), rb_str_to_inum(), RB_TYPE_P, and T_STRING.
void Init_Rational | ( | void | ) |
Definition at line 2675 of file rational.c.
References assert.
Definition at line 2559 of file rational.c.
Definition at line 2273 of file rational.c.
References f.
Definition at line 2257 of file rational.c.
References f_abs.
Definition at line 1922 of file rational.c.
Referenced by rb_int_fdiv_double().
Definition at line 355 of file rational.c.
Definition at line 1960 of file rational.c.
Definition at line 1941 of file rational.c.
Definition at line 2042 of file rational.c.
References canonicalization, rb_convert_type(), RB_FLOAT_TYPE_P, rb_funcall(), rb_intern, rb_rational_raw1, and T_RATIONAL.
Definition at line 1979 of file rational.c.
Definition at line 1302 of file rational.c.
References get_dat1, INT_NEGATIVE_P, and rb_int_abs().
Definition at line 1115 of file rational.c.
References get_dat1, LONG2FIX, rb_int_cmp(), and RB_INTEGER_TYPE_P.
Definition at line 1994 of file rational.c.
Definition at line 1973 of file rational.c.
Definition at line 1988 of file rational.c.
Definition at line 767 of file rational.c.
References get_dat1, and RB_INTEGER_TYPE_P.
Definition at line 1967 of file rational.c.
Definition at line 1903 of file rational.c.
References get_dat1.
Definition at line 661 of file rational.c.
References assert, get_dat1, RB_TYPE_P, and T_RATIONAL.
VALUE rb_cRational |
Definition at line 34 of file rational.c.