From a9ec8adff324bffa6f3cd18620b674e5737ce0bc Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 23 Jan 2003 06:22:50 +0000 Subject: * lib/rational.rb: modified to support "quo". * numeric.c (num_quo): should return most exact quotient value, i.e. float by default, rational if available. * numeric.c (num_div): "div" should return x.divmod(x)[0]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/rational.rb | 43 ++++++------------------------------------- 1 file changed, 6 insertions(+), 37 deletions(-) (limited to 'lib/rational.rb') diff --git a/lib/rational.rb b/lib/rational.rb index 16ee00890f..af4eada071 100644 --- a/lib/rational.rb +++ b/lib/rational.rb @@ -31,8 +31,9 @@ # Integer::to_r # # Fixnum::** +# Fixnum::quo # Bignum::** -# +# Bignum::quo # def Rational(a, b = 1) @@ -312,41 +313,14 @@ class Integer end class Fixnum - alias div! /; - def div(other) - if other.kind_of?(Fixnum) - self.div!(other) - elsif other.kind_of?(Bignum) - x, y = other.coerce(self) - x.div!(y) - else - x, y = other.coerce(self) - x / y - end - end - -# alias divmod! divmod - if not defined? Complex alias power! **; end -# def rdiv(other) -# if other.kind_of?(Fixnum) -# Rational(self, other) -# elsif -# x, y = other.coerce(self) -# if defined?(x.div()) -# x.div(y) -# else -# x / y -# end -# end - # end - - def rdiv(other) + def quo(other) Rational.new!(self,1) / other end + alias rdiv quo def rpower (other) if other >= 0 @@ -362,17 +336,14 @@ class Fixnum end class Bignum - alias div! /; - alias div /; - alias divmod! divmod - if not defined? power! alias power! ** end - def rdiv(other) + def quo(other) Rational.new!(self,1) / other end + alias rdiv quo def rpower (other) if other >= 0 @@ -385,6 +356,4 @@ class Bignum if not defined? Complex alias ** rpower end - end - -- cgit v1.2.3