public static boolean fastEquals(
      int leftSignum, long leftFast0, long leftFast1, long leftFast2,
      int leftScale,
      int rightSignum, long rightFast0, long rightFast1, long rightFast2,
      int rightScale) {

    if (leftSignum == 0) {
      return (rightSignum == 0);
    }
    if (leftSignum != rightSignum) {
      return false;
    }
    if (leftScale != rightScale) {
      // We know they are not equal because the one with the larger scale has non-zero digits
      // below the other's scale (since the scale does not include trailing zeroes).
      return false;
    }
    return (
        leftFast0 == rightFast0 && leftFast1 == rightFast1 && leftFast2 == rightFast2);
  }
Return a BigDecimal representing the decimal.  The BigDecimal class is able to accurately
represent the decimal.

NOTE: We are not representing our decimal as BigDecimal now as OldHiveDecimal did, so this
is now slower.

@param fastSignum the sign (-1, 0, or +1)
@param fast0 word 0 of the internal representation
@param fast1 word 1
@param fast2 word 2
@param fastIntegerDigitCount the number of integer digits
@param fastScale the scale of the number
@return the BigDecimal equivalent
storage-api/src/java/org/apache/hadoop/hive/common/type/FastHiveDecimalImpl.java