*
     * @param x
     * @param decimalPlaces
     * @return Square rootRoundIfNecessary of input
     */
    public static BigDecimal sqrt(
            BigDecimal x,
            // Generic_BigDecimal a_Generic_BigDecimal,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
//        if (x.compareTo(BigDecimal.ZERO) == 1 && x.compareTo(BigDecimal.ONE) == -1) {
//            // This is a terrible hack
//            return BigDecimal.valueOf(Math.sqrt(x.doubleValue()));
//        }
        return power(
                x,
                new BigDecimal("0.5"),
                //a_Generic_BigDecimal,
                decimalPlaces,
                a_RoundingMode);
    }