--- !ruby/object:RI::ClassDescription 
attributes: 
- !ruby/object:RI::Attribute 
  comment: 
  name: denominator
  rw: R
- !ruby/object:RI::Attribute 
  comment: 
  name: numerator
  rw: R
class_methods: 
- !ruby/object:RI::MethodSummary 
  name: new
- !ruby/object:RI::MethodSummary 
  name: new!
- !ruby/object:RI::MethodSummary 
  name: reduce
comment: 
- !ruby/struct:SM::Flow::P 
  body: Rational implements a rational class for numbers.
- !ruby/struct:SM::Flow::P 
  body: <em>A rational number is a number that can be expressed as a fraction p/q where p and q are integers and q != 0. A rational number p/q is said to have numerator p and denominator q. Numbers that are not rational are called irrational numbers.</em> (http://mathworld.wolfram.com/RationalNumber.html)
- !ruby/struct:SM::Flow::P 
  body: "To create a Rational Number:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(a,b)             # -&gt; a/b\n  Rational.new!(a,b)        # -&gt; a/b\n"
- !ruby/struct:SM::Flow::P 
  body: "Examples:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(5,6)             # -&gt; 5/6\n  Rational(5)               # -&gt; 5/1\n"
- !ruby/struct:SM::Flow::P 
  body: "Rational numbers are reduced to their lowest terms:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(6,10)            # -&gt; 3/5\n"
- !ruby/struct:SM::Flow::P 
  body: "But not if you use the unusual method &quot;new!&quot;:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational.new!(6,10)       # -&gt; 6/10\n"
- !ruby/struct:SM::Flow::P 
  body: "Division by zero is obviously not allowed:"
- !ruby/struct:SM::Flow::VERB 
  body: "  Rational(3,0)             # -&gt; ZeroDivisionError\n"
constants: 
- !ruby/object:RI::Constant 
  comment: 
  name: Unify
  value: "true"
full_name: Rational
includes: []

instance_methods: 
- !ruby/object:RI::MethodSummary 
  name: "%"
- !ruby/object:RI::MethodSummary 
  name: "*"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: "**"
- !ruby/object:RI::MethodSummary 
  name: +
- !ruby/object:RI::MethodSummary 
  name: "-"
- !ruby/object:RI::MethodSummary 
  name: /
- !ruby/object:RI::MethodSummary 
  name: <=>
- !ruby/object:RI::MethodSummary 
  name: ==
- !ruby/object:RI::MethodSummary 
  name: abs
- !ruby/object:RI::MethodSummary 
  name: coerce
- !ruby/object:RI::MethodSummary 
  name: divmod
- !ruby/object:RI::MethodSummary 
  name: hash
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: inspect
- !ruby/object:RI::MethodSummary 
  name: power2
- !ruby/object:RI::MethodSummary 
  name: to_f
- !ruby/object:RI::MethodSummary 
  name: to_i
- !ruby/object:RI::MethodSummary 
  name: to_r
- !ruby/object:RI::MethodSummary 
  name: to_s
name: Rational
superclass: Object
