public static boolean fastPow(
      int fastSignum, long fast0, long fast1, long fast2,
      int fastIntegerDigitCount, int fastScale,
      int exponent,
      FastHiveDecimal fastResult) {

    // Arithmetic operations (re)set the results.
    fastResult.fastSet(fastSignum, fast0, fast1, fast2, fastIntegerDigitCount, fastScale);

    if (exponent < 0) {
      // UNDONE: Currently, negative exponent is not supported.
      return false;
    }

    for (int e = 1; e < exponent; e++) {
      if (!doMultiply(
          fastResult.fastSignum, fastResult.fast0, fastResult.fast1, fastResult.fast2,
          fastResult.fastIntegerDigitCount, fastResult.fastScale,
          fastResult.fastSignum, fastResult.fast0, fastResult.fast1, fastResult.fast2,
          fastResult.fastIntegerDigitCount, fastResult.fastScale,
          fastResult)) {
        return false;
      }
    }
    return true;
  }
*********************************************************************************************
  // Decimal Division / Remainder.

  /**
EXPERMIMENTAL: Division when divisor fits in a single decimal longword.

@return  remainderSubexpr2
storage-api/src/java/org/apache/hadoop/hive/common/type/FastHiveDecimalImpl.java