* @param y
     * @param decimalPlaces
     * @param a_RoundingMode
     * @return x^y1 accurate to decimalPlaces
     */
    public static BigDecimal power(
            BigDecimal x,
            long y,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        // The current (Java6) limit for n in x.pow(n)
        // for BigDecimal x and int n is
        // -999999999 < n < 999999999
//        if (Math.abs(y) < 999999999) {
//            return power(
//                    x,
//                    (int) y,
//                    256,
//                    decimalPlaces,
//                    a_RoundingMode);
//        } else {
        return power(
                x,
                BigInteger.valueOf(y),
                decimalPlaces,
                256,
                a_RoundingMode);
//        }
    }