inline static VALUE f_rational_new2(VALUE klass, VALUE x, VALUE y) { assert(!k_rational_p(x)); assert(!k_rational_p(y)); return nurat_s_canonicalize_internal(klass, x, y); }
static VALUE nurat_s_new(VALUE klass, VALUE num, VALUE den) { nurat_int_check(num); nurat_int_check(den); return nurat_s_canonicalize_internal(klass, num, den); }
static VALUE nurat_s_canonicalize(int argc, VALUE *argv, VALUE klass) { VALUE num, den; if (rb_scan_args(argc, argv, "11", &num, &den) == 1) { den = ONE; } nurat_int_check(num); nurat_int_check(den); return nurat_s_canonicalize_internal(klass, num, den); }
static VALUE nurat_s_new(int argc, VALUE *argv, VALUE klass) { VALUE num, den; switch (rb_scan_args(argc, argv, "11", &num, &den)) { case 1: num = nurat_int_value(num); den = ONE; break; default: num = nurat_int_value(num); den = nurat_int_value(den); break; } return nurat_s_canonicalize_internal(klass, num, den); }
inline static VALUE f_rational_new1(VALUE klass, VALUE x) { assert(!k_rational_p(x)); return nurat_s_canonicalize_internal(klass, x, ONE); }
VALUE rb_rational_new(VALUE x, VALUE y) { return nurat_s_canonicalize_internal(rb_cRational, x, y); }