Class Rational

java.lang.Object
java.lang.Number
com.twelvemonkeys.imageio.metadata.tiff.Rational
All Implemented Interfaces:
Serializable, Comparable<Rational>

public final class Rational extends Number implements Comparable<Rational>
Represents a rational number with a long numerator and long denominator. Rational numbers are stored in reduced form with the sign stored with the numerator. Rationals are immutable.

Adapted from sample code featured in "Intro to Programming in Java: An Interdisciplinary Approach" (Addison Wesley) by Robert Sedgewick and Kevin Wayne. Permission granted to redistribute under BSD license.

Version:
$Id: Rational.java,v 1.0 Nov 18, 2009 1:12:00 AM haraldk Exp$
See Also:
  • Field Details

    • ZERO

      static final Rational ZERO
    • NaN

      static final Rational NaN
    • numerator

      private final long numerator
    • denominator

      private final long denominator
  • Constructor Details

    • Rational

      private Rational()
    • Rational

      public Rational(long pNumber)
    • Rational

      public Rational(long pNumerator, long pDenominator)
  • Method Details

    • gcd

      private static long gcd(long m, long n)
    • lcm

      private static long lcm(long m, long n)
    • numerator

      public long numerator()
    • denominator

      public long denominator()
    • intValue

      public int intValue()
      Number implementation
      Specified by:
      intValue in class Number
    • longValue

      public long longValue()
      Specified by:
      longValue in class Number
    • floatValue

      public float floatValue()
      Specified by:
      floatValue in class Number
    • doubleValue

      public double doubleValue()
      Specified by:
      doubleValue in class Number
    • compareTo

      public int compareTo(Rational pOther)
      Comparable implementation
      Specified by:
      compareTo in interface Comparable<Rational>
    • hashCode

      public int hashCode()
      Object overrides
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object pOther)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • times

      public Rational times(Rational pOther)
      Operations (adapted from http://www.cs.princeton.edu/introcs/92symbolic/Rational.java.html)
    • plus

      public Rational plus(Rational pOther)
    • negate

      public Rational negate()
    • minus

      public Rational minus(Rational pOther)
    • reciprocal

      public Rational reciprocal()
    • divides

      public Rational divides(Rational pOther)