private static boolean divideCheckRound(int[] array, int divisor) {
    long remainder = 0;
    for (int i = array.length - 1; i >= 0; --i) {
      remainder = ((array[i] & SqlMathUtil.LONG_MASK) + (remainder << 32));
      array[i] = (int) (remainder / divisor);
      remainder %= divisor;
    }

    return (remainder >= (divisor >> 1));
  }
Scales down the given array for 5**fiveScale.

@param array
         array to scale down
@param fiveScale
         distance to scale down
@return Whether it requires incrementing if rounding
common/src/java/org/apache/hadoop/hive/common/type/UnsignedInt128.java