Class: Rational
Overview
Ruuuby modifications to existing class<code>Rational</code>
Instance Method Summary collapse
-
#^(n) ⇒ Numeric, ...
Ruuubyimplementation before switching toC-extensions: (f98). - #one? ⇒ Boolean
- #smells_like_int? ⇒ Boolean
- #μ? ⇒ Boolean
Instance Method Details
#^(n) ⇒ Numeric, ...
Ruuuby implementation before switching to C-extensions: (f98)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/ruuuby/class/nums/rational.rb', line 27 def ^(n) evaluated = n.sym?(:'∈^') if evaluated.int? if self != 0 return self ** evaluated else if evaluated == 0 return ::Float::NAN else return self ** evaluated end end elsif evaluated.flt? if evaluated == ::Float::INFINITY if self == 1 || self == -1 return ::Float::NAN elsif self == 0 || (self < 1 && self > 0) || (self > -1 && self < 0) return 0 elsif self < 0 return ::Float::INFINITY_COMPLEX else return ::Float::INFINITY end else if self == 1 || self == -1 return ::Float::NAN elsif self == 0 || (self > -1 && self < 0) return ::Float::INFINITY_COMPLEX elsif self < 1 && self > 0 return ::Float::INFINITY else return self ** Float::INFINITY_NEGATIVE end end elsif evaluated == : |
#one? ⇒ Boolean
7 |
# File 'lib/ruuuby/class/nums/rational.rb', line 7 def one?; self == 1; end |
#smells_like_int? ⇒ Boolean
18 |
# File 'lib/ruuuby/class/nums/rational.rb', line 18 def smells_like_int?; self.finite? && (self.fdiv(1) % 1 == 0); end |
#μ? ⇒ Boolean
Note:
- Q: a set of all the unit-rationals would be considered ‘closed_under_subtraction’?
Note:
(1.0 / x) * (1.0 / y) == (1.0 / (x * y))
15 |
# File 'lib/ruuuby/class/nums/rational.rb', line 15 def |