* @param y 1 &lt; y &lt; 100
     * @param decimalPlaces
     * @param a_RoundingMode
     * @return
     */
    @Deprecated
    private static BigDecimal power0(
            BigDecimal x,
            int y,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        // x.pow(y) returned a mathematically incorrect result for
        // x = 1.0000000000000000000000000001, y1 = 100
        // Is x a "supernormal" number in this context?
        //BigDecimal result = x.pow(y1);// Don't attempt to support "supernormal" numbers.
        BigDecimal result = new BigDecimal(x.toString());
//        for (int i = 1; i < y1; i++) {
//            result = multiply(
//                    result,
//                    x,
//                    decimalPlaces,
//                    a_RoundingMode);
//        }
//        return result;
        if (y < 10) {
            for (int i = 1; i < y; i++) {
                result = multiplyRoundIfNecessary(
                        result,
                        x,
                        decimalPlaces, // May not be sufficent for x < 1!
                        a_RoundingMode);
            }
            return result;
        }
        // Double up
        int i;
        for (i = 2; i < y; i *= 2) {
            result = multiplyRoundIfNecessary(
                    result,
                    result,
                    decimalPlaces, // May not be sufficent for x < 1!
                    a_RoundingMode);
        }
        // Calculate remainder
        i /= 2;
        BigDecimal remainderResult = power(
                x,
                y - i,
                //a_MathContext,
                decimalPlaces, // May not be sufficent for x < 1!
                a_RoundingMode);
        // Multiply together
        result = multiplyRoundIfNecessary(
                result,
                remainderResult,
                decimalPlaces, // May not be sufficent for x < 1!
                a_RoundingMode);
        return result;
    }