public static BigDecimal expReducing(BigDecimal x, MathContext mathContext, int reduce) { MathContext mc = new MathContext(mathContext.getPrecision() + 4, mathContext.getRoundingMode()); x = x.divide(valueOf(reduce), mc); BigDecimal result = ExpCalculator.INSTANCE.calculate(x, mc); result = BigDecimalMath.pow(result, reduce, mc); return result.round(mathContext); }
private static BigDecimal expTaylor(BigDecimal x, MathContext mathContext) { MathContext mc = new MathContext(mathContext.getPrecision() + 6, mathContext.getRoundingMode()); x = x.divide(valueOf(256), mc); BigDecimal result = ExpCalculator.INSTANCE.calculate(x, mc); result = BigDecimalMath.pow(result, 256, mc); return result.round(mathContext); }
public static BigDecimal exp(BigDecimal x, MathContext mathContext) { MathContext mc = new MathContext(mathContext.getPrecision() + 4, mathContext.getRoundingMode()); BigDecimal result = ExpCalculator.INSTANCE.calculate(x, mc); return result.round(mathContext); }