private static BigDecimal powerExponentLessThanOneNoRounding(
            BigDecimal x,
            BigDecimal y) {
        BigDecimal result = BigDecimal.ONE;
        //BigDecimal epsilon_BigDecimal = new BigDecimal(BigInteger.ONE, decimalPlaces);
        BigDecimal y0 = new BigDecimal(y.toString());
        BigDecimal element;
        BigInteger elementUnscaled;
        BigDecimal elementOne;
        BigInteger elementOneReciprocal;
        BigDecimal root;
        BigDecimal rootMultiple;
        BigDecimal previousResult = result;
        while (true) {
            element = floorSignificantDigit(y0);
            elementUnscaled = element.unscaledValue();
            //System.out.println("element " + element + " elementUnscaled " + elementUnscaled);
            if (elementUnscaled.compareTo(BigInteger.ZERO) == 1) {
                elementOne = divideNoRounding(
                        element,
                        elementUnscaled);
                if (elementOne.compareTo(BigDecimal.ZERO) == 0) {
                    break;
                }
                //System.out.println("element " + element + " elementUnscaled " + elementUnscaled);
                elementOneReciprocal = reciprocalWillBeIntegerReturnBigInteger(elementOne);
                root = rootNoRounding(
                        x,
                        elementOneReciprocal);
                if (root.compareTo(BigDecimal.ZERO) == 1) {
                    rootMultiple = powerNoRounding(
                            root,
                            elementUnscaled,
                            64);
                    result = result.multiply(rootMultiple);
                }
            }
            if (result.compareTo(previousResult) == 0) {
                break;
            }
            previousResult = result;
            y0 = y0.subtract(element);
        }
        return result;
    }