* @param y1
     * @param decimalPlaces
     * @param a_RoundingMode
     * @return
     */
    @Deprecated
    private static BigDecimal power1(
            BigDecimal x,
            BigInteger y,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        BigInteger Four_BigInteger = BigInteger.valueOf(4);
        if (y.compareTo(Four_BigInteger) != 1) {
            return power(
                    x,
                    y.intValue(),
                    decimalPlaces,
                    a_RoundingMode);
        }
        BigInteger[] party = y.divideAndRemainder(Four_BigInteger);
        BigDecimal result = power1(
                x,
                party[0],
                decimalPlaces,
                a_RoundingMode);
        result = power(
                result,
                4,
                decimalPlaces,
                a_RoundingMode);
        if (party[1].compareTo(BigInteger.ZERO) == 1) {
            BigDecimal resultRemainder = power(
                    x,
                    party[1].intValue(),
                    decimalPlaces,
                    a_RoundingMode);
            result = multiplyRoundIfNecessary(
                    result,
                    resultRemainder,
                    decimalPlaces,
                    a_RoundingMode);
        }
        return result;
    }