private static BigDecimal powerNoSpecialCaseCheck(
            BigDecimal x,
            int y,
            MathContext a_MathContext,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        BigInteger x_BigInteger = x.toBigInteger();
        if (x_BigInteger.compareTo(BigInteger.ZERO) != 0) {
            BigInteger integerPartResult = x_BigInteger.pow(y);
            BigDecimal xRemainder = x.subtract(new BigDecimal(integerPartResult));
            BigDecimal fractionalPartResult;
            if (xRemainder.compareTo(BigDecimal.ZERO) == 1) {
                fractionalPartResult = powerNoSpecialCaseCheck(
                        xRemainder,
                        y,
                        a_MathContext,
                        decimalPlaces,
                        a_RoundingMode);
            }
            BigDecimal result = multiplyRoundIfNecessary(
                    xRemainder,
                    x_BigInteger,
                    a_MathContext,
                    decimalPlaces,
                    a_RoundingMode);
            return result;
        } else {
            BigDecimal result = new BigDecimal(x.toString());
            int decimalPlacesMultiply;
            int xScale = x.scale();
            for (int i = 1; i < y; i++) {
                decimalPlacesMultiply = (result.scale() + x.scale()) + 1;
                decimalPlacesMultiply = Math.min(
                        decimalPlacesMultiply,
                        decimalPlaces + 2 + y);
                if (decimalPlacesMultiply < a_MathContext.getPrecision()) {
                    result = multiplyRoundIfNecessary(
                            result,
                            x,
                            a_MathContext,
                            decimalPlacesMultiply,
                            a_RoundingMode);
                }
            }
            if (result.scale() > decimalPlaces) {
                roundIfNecessary(result, decimalPlaces, a_RoundingMode);
            }
            return result;
        }
    }