* @param root_BigDecimal
     * @param maxError_BigDecimal
     * @param a0
     * @param decimalPlaces
     * @param a_MathContext
     * @param a_RoundingMode
     * @return
     */
    private static BigDecimal rootInitialisationLessThanOne(
            BigDecimal x,
            BigInteger root,
            BigDecimal epsilon_BigDecimal,
            int maxite,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        BigDecimal b;// = BigDecimal.ONE;
        BigDecimal result = BigDecimal.ONE.subtract(epsilon_BigDecimal);
//        BigDecimal result = BigDecimal.ONE.subtract(Generic_BigDecimal.reciprocal(new BigDecimal(rootRoundIfNecessary), decimalPlaces, a_RoundingMode));
//        return result;
        boolean powerTestBelow;
//        boolean powerTestBelow = powerTestBelow(
//                x,
//                result,
//                rootRoundIfNecessary,
//                64,
//                decimalPlaces,
//                a_RoundingMode);
//        if (powerTestBelow) {
//            // No rootRoundIfNecessary in precision
//            int debug = 1;
//            return b;
//        }
        BigDecimal a = new BigDecimal(x.toString());
        b = result;
        BigDecimal c;
//        boolean notInitialised = true;
        BigInteger rootdiv = new BigInteger(root.toString(maxite));
        int i = 0;
        while (i < maxite) {
            // Disect;
            BigDecimal bsubtracta = b.subtract(a);
            c = divideRoundIfNecessary(
                    b.subtract(a),
                    root,
                    decimalPlaces + 1,
                    a_RoundingMode);
            c = b.subtract(c);
            powerTestBelow = powerTestBelow(
                    x,
                    c,
                    root,
                    64,
                    decimalPlaces,
                    a_RoundingMode);
            if (powerTestBelow) {
                a = c;
            } else {
                b = c;
                rootdiv = rootdiv.divide(Generic_BigInteger.Two);
                result = b;
            }
            // Bisect;
            c = divideRoundIfNecessary(
                    b.subtract(a),
                    TWO,
                    decimalPlaces + 1,
                    a_RoundingMode);
            c = b.subtract(c);
            powerTestBelow = powerTestBelow(
                    x,
                    c,
                    root,
                    64,
                    decimalPlaces,
                    a_RoundingMode);
            if (powerTestBelow) {
                a = c;
            } else {
                b = c;
                result = b;
            }
            i++;
        }
        return result;
    }