Packages

case class Rational(num: Long, den: Long = 1l) extends Fractional[Rational] with Ordered[Rational] with Product with Serializable

The Rational class is used to represent and operate on rational numbers. Internally, a rational number is represented as two long integers. Externally, two forms are supported:

a/b = 2/3 via: Rational ("2/3"), 'toString' (a, b) = (2, 3) via: create ("(2, 3)") 'toString2'

Rational number can be created without loss of precision using the constructor, 'apply', 'create' or 'fromBigDecimal' methods. Other methods may lose precision.

num

the numerator (e.g., 2)

den

the denominator (e.g., 3)

Linear Supertypes
Product, Equals, Ordered[Rational], Comparable[Rational], Fractional[Rational], Numeric[Rational], Ordering[Rational], PartialOrdering[Rational], Equiv[Rational], Serializable, Serializable, Comparator[Rational], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Rational
  2. Product
  3. Equals
  4. Ordered
  5. Comparable
  6. Fractional
  7. Numeric
  8. Ordering
  9. PartialOrdering
  10. Equiv
  11. Serializable
  12. Serializable
  13. Comparator
  14. AnyRef
  15. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Rational(num: Long, den: Long = 1l)

    num

    the numerator (e.g., 2)

    den

    the denominator (e.g., 3)

Type Members

  1. class FractionalOps extends scala.math.Fractional.Ops
    Definition Classes
    Fractional
  2. class Ops extends AnyRef
    Definition Classes
    Numeric

Value Members

  1. def !=~(q: Rational): Boolean

    Return whether two rational numbers are not nearly equal.

    Return whether two rational numbers are not nearly equal.

    q

    the compare 'this' with q

  2. def *(l: Long): Rational

    Multiply a rational number times a long.

    Multiply a rational number times a long.

    l

    multiply this times long l

  3. def *(q: Rational): Rational

    Multiply two rational numbers 'this * q'.

    Multiply two rational numbers 'this * q'.

    q

    multiply this times rational q

  4. def +(l: Long): Rational

    Add a rational number plus a long.

    Add a rational number plus a long.

    l

    add long l to this

  5. def +(q: Rational): Rational

    Add two rational numbers 'this + q'.

    Add two rational numbers 'this + q'.

    q

    add rational q to this

  6. def -(l: Long): Rational

    Subtract: a rational number minus a long.

    Subtract: a rational number minus a long.

    l

    subtract long l from this

  7. def -(q: Rational): Rational

    Subtract two rational numbers 'this - q'.

    Subtract two rational numbers 'this - q'.

    q

    subtract rational q from this

  8. def /(l: Long): Rational

    Divide a rational number div a long.

    Divide a rational number div a long.

    l

    divide this by long l

  9. def /(q: Rational): Rational

    Divide two rational numbers 'this / q'.

    Divide two rational numbers 'this / q'.

    q

    divide this by rational q

  10. def <(that: Rational): Boolean
    Definition Classes
    Ordered
  11. def <=(that: Rational): Boolean
    Definition Classes
    Ordered
  12. def =~(q: Rational): Boolean

    Return whether two rational numbers are nearly equal.

    Return whether two rational numbers are nearly equal.

    q

    the compare 'this' with q

  13. def >(that: Rational): Boolean
    Definition Classes
    Ordered
  14. def >=(that: Rational): Boolean
    Definition Classes
    Ordered
  15. def abs: Rational

    Return the absolute value of this rational number.

  16. def abs(x: Rational): Rational
    Definition Classes
    Numeric
  17. def compare(q: Rational): Int

    Compare this rational number with that rational number 'q'.

    Compare this rational number with that rational number 'q'.

    q

    that rational number

    Definition Classes
    Rational → Ordered
  18. def compare(q: Rational, p: Rational): Int

    Compare two rational numbers (negative for <, zero for ==, positive for >).

    Compare two rational numbers (negative for <, zero for ==, positive for >).

    q

    the first rational number to compare

    p

    the second rational number to compare

    Definition Classes
    Rational → Ordering → Comparator
  19. def compareTo(that: Rational): Int
    Definition Classes
    Ordered → Comparable
  20. val den: Long
  21. def div(q: Rational, l: Long): Rational
  22. def div(q: Rational, p: Rational): Rational
    Definition Classes
    Rational → Fractional
  23. def equals(c: Any): Boolean

    Override equals to determine whether this rational number equals rational 'c'.

    Override equals to determine whether this rational number equals rational 'c'.

    c

    the rational number to compare with this

    Definition Classes
    Rational → Equals → Comparator → AnyRef → Any
  24. def equiv(x: Rational, y: Rational): Boolean
    Definition Classes
    Ordering → PartialOrdering → Equiv
  25. def fromBigDecimal(y: BigDecimal): Rational

    Create a rational number from a BigDecimal number.

    Create a rational number from a BigDecimal number.

    y

    the BigDecimal used to create the rational number

  26. def fromInt(n: Int): Rational

    Create a rational number from an Int.

    Create a rational number from an Int.

    n

    the Int used to create the rational number

    Definition Classes
    Rational → Numeric
  27. def fromLong(n: Long): Rational

    Create a rational number from a Long.

    Create a rational number from a Long.

    n

    the Long used to create the rational number

  28. def gt(x: Rational, y: Rational): Boolean
    Definition Classes
    Ordering → PartialOrdering
  29. def gteq(x: Rational, y: Rational): Boolean
    Definition Classes
    Ordering → PartialOrdering
  30. def hashCode(): Int

    Must also override hashCode to be be compatible with equals.

    Must also override hashCode to be be compatible with equals.

    Definition Classes
    Rational → AnyRef → Any
  31. def in(set: Set[Rational]): Boolean

    Determine whether 'this' is in the given set.

  32. def in(lim: (Rational, Rational)): Boolean

    Determine whether 'this' is within the given bounds

    Determine whether 'this' is within the given bounds

    lim

    the given (lower, upper) bounds

  33. def isIntegral: Boolean

    Determine whether this rational number is integral.

  34. def lt(x: Rational, y: Rational): Boolean
    Definition Classes
    Ordering → PartialOrdering
  35. def lteq(x: Rational, y: Rational): Boolean
    Definition Classes
    Ordering → PartialOrdering
  36. def max(q: Rational): Rational

    Return the maximum of this and that rational numbers.

    Return the maximum of this and that rational numbers.

    q

    that rational number to compare with this

  37. def max(x: Rational, y: Rational): Rational
    Definition Classes
    Ordering
  38. def min(q: Rational): Rational

    Return the minimum of this and that rational numbers.

    Return the minimum of this and that rational numbers.

    q

    that rational number to compare with this

  39. def min(x: Rational, y: Rational): Rational
    Definition Classes
    Ordering
  40. def minus(q: Rational, l: Long): Rational
  41. def minus(q: Rational, p: Rational): Rational
    Definition Classes
    Rational → Numeric
  42. implicit def mkNumericOps(lhs: Rational): FractionalOps
    Definition Classes
    Fractional → Numeric
  43. implicit def mkOrderingOps(lhs: Rational): Rational.Ops
    Definition Classes
    Ordering
  44. def near_eq(q: Rational, p: Rational): Boolean
  45. def negate(q: Rational): Rational
    Definition Classes
    Rational → Numeric
  46. def not_in(set: Set[Rational]): Boolean

    Determine whether 'this' is not in the given set.

  47. def not_in(lim: (Rational, Rational)): Boolean

    Determine whether 'this' is not within the given bounds

    Determine whether 'this' is not within the given bounds

    lim

    the given (lower, upper) bounds

  48. val num: Long
  49. def on[U](f: (U) ⇒ Rational): Ordering[U]
    Definition Classes
    Ordering
  50. def one: Rational
    Definition Classes
    Numeric
  51. def plus(q: Rational, l: Long): Rational
  52. def plus(q: Rational, p: Rational): Rational
    Definition Classes
    Rational → Numeric
  53. def pow(q: Rational, l: Long): Rational
  54. def pow(q: Rational, p: Rational): Rational
  55. def reduce(): Rational

    Reduce the magnitude of the numerator and denonimator by dividing both by their Greatest Common Divisor (GCD).

  56. def reverse: Ordering[Rational]
    Definition Classes
    Ordering → PartialOrdering
  57. def reversed(): Comparator[Rational]
    Definition Classes
    Comparator
  58. def root(q: Rational, l: Long): Rational

    Take the 'l'-th root of the rational number 'q'.

    Take the 'l'-th root of the rational number 'q'.

    l

    the long root

  59. def signum(x: Rational): Int
    Definition Classes
    Numeric
  60. def sqrt: Rational

    Return the square root of that rational number.

  61. def thenComparing[U <: Comparable[_ >: U]](arg0: Function[_ >: Rational, _ <: U]): Comparator[Rational]
    Definition Classes
    Comparator
  62. def thenComparing[U](arg0: Function[_ >: Rational, _ <: U], arg1: Comparator[_ >: U]): Comparator[Rational]
    Definition Classes
    Comparator
  63. def thenComparing(arg0: Comparator[_ >: Rational]): Comparator[Rational]
    Definition Classes
    Comparator
  64. def thenComparingDouble(arg0: ToDoubleFunction[_ >: Rational]): Comparator[Rational]
    Definition Classes
    Comparator
  65. def thenComparingInt(arg0: ToIntFunction[_ >: Rational]): Comparator[Rational]
    Definition Classes
    Comparator
  66. def thenComparingLong(arg0: ToLongFunction[_ >: Rational]): Comparator[Rational]
    Definition Classes
    Comparator
  67. def times(q: Rational, l: Long): Rational
  68. def times(q: Rational, p: Rational): Rational
    Definition Classes
    Rational → Numeric
  69. def toBigDecimal: BigDecimal
  70. def toBigDecimal(q: Rational): BigDecimal

    Convert that/this rational number to a BigDecimal number.

    Convert that/this rational number to a BigDecimal number.

    q

    that rational number to convert

  71. def toDouble: Double
  72. def toDouble(q: Rational): Double

    Convert that/this rational number to a Double.

    Convert that/this rational number to a Double.

    q

    that rational number to convert

    Definition Classes
    Rational → Numeric
  73. def toFloat: Float
  74. def toFloat(q: Rational): Float

    Convert that/this rational number to a Float.

    Convert that/this rational number to a Float.

    q

    that rational number to convert

    Definition Classes
    Rational → Numeric
  75. def toInt: Int
  76. def toInt(q: Rational): Int

    Convert that/this rational number to an Int.

    Convert that/this rational number to an Int.

    q

    that rational number to convert

    Definition Classes
    Rational → Numeric
  77. def toLong: Long
  78. def toLong(q: Rational): Long

    Convert this rational number to a Long.

    Convert this rational number to a Long.

    q

    that rational number to convert

    Definition Classes
    Rational → Numeric
  79. def toRational: Rational
  80. def toRational(q: Rational): Rational

    Convert that/this rational number to a Rational.

    Convert that/this rational number to a Rational.

    q

    that rational number to convert

  81. def toString(): String

    Convert this rational number to a String of the form 'a/b'.

    Convert this rational number to a String of the form 'a/b'.

    Definition Classes
    Rational → AnyRef → Any
  82. def toString2: String

    Convert this rational number to a String of the form '(a, b)'.

  83. def tryCompare(x: Rational, y: Rational): Some[Int]
    Definition Classes
    Ordering → PartialOrdering
  84. def unary_-(): Rational

    Compute the unary minus (-).

  85. val val1: Long

    General alias for the parts of a complex number

  86. val val2: Long

    General alias for the parts of a complex number

  87. def zero: Rational
    Definition Classes
    Numeric
  88. def ~^(l: Long): Rational

    Raise a rational number to the 'l'-th power.

    Raise a rational number to the 'l'-th power.

    l

    the long power/exponent

  89. def ~^(q: Rational): Rational

    Raise a rational number to the 'q'-th power.

    Raise a rational number to the 'q'-th power.

    q

    the rational power/exponent

  90. def (l: Long): Rational
  91. def (set: Set[Rational]): Boolean
  92. def (lim: (Rational, Rational)): Boolean
  93. def (set: Set[Rational]): Boolean
  94. def (lim: (Rational, Rational)): Boolean
  95. def (q: Rational): Boolean
  96. def (q: Rational): Boolean
  97. def (q: Rational): Boolean

    Compare 'this' rational number with that rational number 'q' for inequality.

    Compare 'this' rational number with that rational number 'q' for inequality.

    q

    that rational number

  98. def (q: Rational): Boolean

    Compare 'this' rational number with that rational number 'q' for less than or equal to.

    Compare 'this' rational number with that rational number 'q' for less than or equal to.

    q

    that rational number

  99. def (q: Rational): Boolean

    Compare 'this' rational number with that rational number 'q' for greater than or equal to.

    Compare 'this' rational number with that rational number 'q' for greater than or equal to.

    q

    that rational number