NormalDistribution extends AbstractRealDistribution { @Override public double inverseCumulativeProbability(final double p) throws OutOfRangeException { if (p < 0.0 || p > 1.0) { throw new OutOfRangeException(p, 0, 1); } return mean + standardDeviation * SQRT2 * Erf.erfInv(2 * p - 1); } NormalDistribution();  NormalDistribution(double mean, double sd);  NormalDistribution(double mean, double sd, double inverseCumAccuracy);  NormalDistribution(RandomGenerator rng, double mean, double sd);  NormalDistribution(RandomGenerator rng,
                              double mean,
                              double sd,
                              double inverseCumAccuracy); double getMean(); double getStandardDeviation(); double density(double x); @Override double logDensity(double x); double cumulativeProbability(double x); @Override double inverseCumulativeProbability(final double p); @Override@Deprecated double cumulativeProbability(double x0, double x1); @Override double probability(double x0,
                              double x1); double getNumericalMean(); double getNumericalVariance(); double getSupportLowerBound(); double getSupportUpperBound(); boolean isSupportLowerBoundInclusive(); boolean isSupportUpperBoundInclusive(); boolean isSupportConnected(); @Override double sample(); static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY; }
@Test public void testMath280() { NormalDistribution normal = new NormalDistribution(0,1); double result = normal.inverseCumulativeProbability(0.9986501019683698); Assert.assertEquals(3.0, result, defaultTolerance); result = normal.inverseCumulativeProbability(0.841344746068543); Assert.assertEquals(1.0, result, defaultTolerance); result = normal.inverseCumulativeProbability(0.9999683287581673); Assert.assertEquals(4.0, result, defaultTolerance); result = normal.inverseCumulativeProbability(0.9772498680518209); Assert.assertEquals(2.0, result, defaultTolerance); }