diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-27 11:48:00 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-27 11:48:00 +0000 |
commit | d4f5cb67d4284ba994ccda6b465ddd61883c5292 (patch) | |
tree | b4d0ca47794b24472e65583d22ef6c2e9101e2fc /complex.c | |
parent | 69ad92d9cabbe83f3f6fe7ebb936b1d2c317f44b (diff) |
* complex.c (f_lcm): removed.
* rational.c (rb_lcm, rb_gcdlcm): added.
* lib/complex.rb (gcd, lcm, gcdlcm): removed.
* lib/rational.rb (gcd, lcm, gcdlcm): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'complex.c')
-rw-r--r-- | complex.c | 45 |
1 files changed, 18 insertions, 27 deletions
@@ -85,6 +85,22 @@ f_add(VALUE x, VALUE y) } inline static VALUE +f_cmp(VALUE x, VALUE y) +{ + VALUE r; + if (FIXNUM_P(x) && FIXNUM_P(y)) { + long c = FIX2LONG(x) - FIX2LONG(y); + if (c > 0) + c = 1; + else if (c < 0) + c = -1; + r = INT2FIX(c); + } else + r = rb_funcall(x, id_cmp, 1, y); + return r; +} + +inline static VALUE f_div(VALUE x, VALUE y) { VALUE r; @@ -184,22 +200,6 @@ fun1(to_r) fun1(to_s) fun1(truncate) -inline static VALUE -f_cmp(VALUE x, VALUE y) -{ - VALUE r; - if (FIXNUM_P(x) && FIXNUM_P(y)) { - long c = FIX2LONG(x) - FIX2LONG(y); - if (c > 0) - c = 1; - else if (c < 0) - c = -1; - r = INT2FIX(c); - } else - r = rb_funcall(x, id_cmp, 1, y); - return r; -} - fun2(coerce) fun2(divmod) @@ -1016,22 +1016,13 @@ nucomp_inexact_p(VALUE self) return f_boolcast(!nucomp_exact_p(self)); } -extern VALUE rb_gcd(VALUE x, VALUE y); - -static VALUE -f_lcm(VALUE x, VALUE y) -{ - if (f_zero_p(x) || f_zero_p(y)) - return ZERO; - else - return f_abs(f_mul(f_div(x, rb_gcd(x, y)), y)); -} +extern VALUE rb_lcm(VALUE x, VALUE y); static VALUE nucomp_denominator(VALUE self) { get_dat1(self); - return f_lcm(f_denominator(dat->real), f_denominator(dat->image)); + return rb_lcm(f_denominator(dat->real), f_denominator(dat->image)); } static VALUE |