* @param rootRoundIfNecessary rootRoundIfNecessary > 0
     * @param decimalPrecision
     * @return
     */
    public static BigDecimal rootUnscaled1Precision1(
            BigDecimal x,
            int rootRoundIfNecessary,
            int decimalPrecision) {
        // Is there a need for precision?
        BigDecimal result;
        //int decimalPrecision = 10;
        int xscale = x.scale();
        int xprecision = x.precision();
        if (xscale == 0) {
            if (xprecision - rootRoundIfNecessary > 1) {
                result = x.movePointLeft(xprecision - rootRoundIfNecessary);
            } else {
                result = x.movePointLeft(xprecision - rootRoundIfNecessary);
                result = rootRoundIfNecessary(
                        x,
                        rootRoundIfNecessary,
                        decimalPrecision,
                        RoundingMode.UP);
            }
        } else {
            result = x.movePointRight((rootRoundIfNecessary - 1) * xscale);
        }
        return result;
    }