Class: Integer

Inherits:
Object
  • Object
show all
Defined in:
lib/rubysl/rational/rational.rb

Instance Method Summary collapse

Instance Method Details

#denominatorObject

In an integer, the denominator is 1. Therefore, this method returns 1.



448
449
450
# File 'lib/rubysl/rational/rational.rb', line 448

def denominator
  1
end

#gcd(other) ⇒ Object

Returns the greatest common denominator of the two numbers (self and n).

Examples:

72.gcd 168           # -> 24
19.gcd 36            # -> 1

The result is positive, no matter the sign of the arguments.



469
470
471
472
473
474
475
476
477
478
# File 'lib/rubysl/rational/rational.rb', line 469

def gcd(other)
  min = self.abs
  max = other.abs
  while min > 0
    tmp = min
    min = max % min
    max = tmp
  end
  max
end

#gcdlcm(other) ⇒ Object

Returns the GCD and the LCM (see #gcd and #lcm) of the two arguments (self and other). This is more efficient than calculating them separately.

Example:

6.gcdlcm 9     # -> [3, 18]


504
505
506
507
508
509
510
511
# File 'lib/rubysl/rational/rational.rb', line 504

def gcdlcm(other)
  gcd = self.gcd(other)
  if self.zero? or other.zero?
    [gcd, 0]
  else
    [gcd, (self.div(gcd) * other).abs]
  end
end

#lcm(other) ⇒ Object

Returns the lowest common multiple (LCM) of the two arguments (self and other).

Examples:

6.lcm 7        # -> 42
6.lcm 9        # -> 18


488
489
490
491
492
493
494
# File 'lib/rubysl/rational/rational.rb', line 488

def lcm(other)
  if self.zero? or other.zero?
    0
  else
    (self.div(self.gcd(other)) * other).abs
  end
end

#numeratorObject

In an integer, the value is the numerator of its rational equivalent. Therefore, this method returns self.



441
442
443
# File 'lib/rubysl/rational/rational.rb', line 441

def numerator
  self
end

#to_rObject

Returns a Rational representation of this integer.



455
456
457
# File 'lib/rubysl/rational/rational.rb', line 455

def to_r
  Rational(self, 1)
end