private static int doCompareToSameScale(
      int signum,
      long leftFast0, long leftFast1, long leftFast2,
      long rightFast0, long rightFast1, long rightFast2) {

    if (leftFast0 == rightFast0 && leftFast1 == rightFast1 && leftFast2 == rightFast2) {
      return 0;
    }
    if (leftFast2 < rightFast2) {
      return -signum;
    } else if (leftFast2 > rightFast2) {
      return signum;
    }
    if (leftFast1 < rightFast1) {
      return -signum;
    } else if (leftFast1 > rightFast1){
      return signum;
    }
    return (leftFast0 < rightFast0 ? -signum : signum);
  }
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