Method: Quotient#**

Defined in:
lib/m500.rb

#**(other) ⇒ Object



1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
# File 'lib/m500.rb', line 1597

def ** (other)
  if other.kind_of?(Quotient)
    Float(self) ** other
  elsif other.kind_of?(Integer)
    if other > 0
      num = @numerator ** other
      den = @denominator ** other
    elsif other < 0
      num = @denominator ** -other
      den = @numerator ** -other
    elsif other == 0
      num = 1
      den = 1
    end
    tmp = Quotient.new!(num, den)
    Quotient(tmp.numerator,tmp.denominator)
  elsif other.kind_of?(Float)
    Float(self) ** other
  else
    x, y = other.coerce(self)
    x ** y
  end
end