/** * {@inheritDoc} * * @deprecated See {@link RealDistribution#cumulativeProbability(double,double)} */ @Override@Deprecated public double cumulativeProbability(double x0, double x1) throws NumberIsTooLargeException { return probability(x0, x1); }
/** * {@inheritDoc} * * @deprecated See {@link RealDistribution#cumulativeProbability(double,double)} */ @Override@Deprecated public double cumulativeProbability(double x0, double x1) throws NumberIsTooLargeException { return probability(x0, x1); }
/** * {@inheritDoc} * * @deprecated See {@link RealDistribution#cumulativeProbability(double,double)} */ @Override@Deprecated public double cumulativeProbability(double x0, double x1) throws NumberIsTooLargeException { return probability(x0, x1); }
double goodProbability = badProbability + (1.0 - badProbability) * (percentile / 100.0); threshold = distribution.inverseCumulativeProbability(goodProbability); measurePercentile = distribution.probability(0.0, measurement) / (1.0 - badProbability) * 100.0; } else { double p = 1.0 / (1.0 + mean);
@Test public void testStandard() { assertTrue(TestUtils.checkThrows(() -> new TruncatedNormal(null, 0.0, 1.0, 1E-8, 0.0), IllegalArgumentException.class)); double mu = 0.0; for (double sigma : Arrays.asList(1.0, 0.5, 3.0)) { NormalDistribution sn = new NormalDistribution(mu, sigma); TruncatedNormal tr = new TruncatedNormal(null, mu, sigma, Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY); assertTrue(tr.isSupportConnected()); assertFalse(tr.isSupportLowerBoundInclusive()); assertFalse(tr.isSupportUpperBoundInclusive()); assertEquals(Double.NEGATIVE_INFINITY, tr.getSupportLowerBound(), tol); assertEquals(Double.POSITIVE_INFINITY, tr.getSupportUpperBound(), tol); for (double x : Arrays.asList(0.1, 0.5, 2.3, 0.0, -2.8, -10.0, -50.0, 50.0)) { assertEquals(sn.density(x), tr.density(x), tol); assertEquals(sn.cumulativeProbability(x), tr.cumulativeProbability(x), tol); assertEquals(sn.density(x), TruncatedNormal.densityNonTrunc(x, mu, sigma), tol); assertEquals(sn.cumulativeProbability(x), TruncatedNormal.cumulativeNonTrunc(x, mu, sigma), tol); for (double y : Arrays.asList(x - 1.5, x - 0.5, x, x + 0.5, x + 1.5)) { if (y < x) continue; assertEquals(sn.probability(x, y), tr.probability(x, y), tol); assertEquals(sn.probability(x, y), TruncatedNormal.probabilityNonTrunc(x, y, mu, sigma), tol); } } } }
for (double y : Arrays.asList(x - 1.5, x - 0.5, x, x + 0.5, x + 1.5)) { if (y < x) continue; assertEquals(sn.probability(x, y), tr.probability(x, y), tol); assertEquals(sn.probability(x, y), TruncatedNormal.probabilityNonTrunc(x, y, mu, sigma), tol); assertEquals(trZeroTrunc.probability(x, y), TruncatedNormal.probabilityTruncZero(x, y, mu, sigma), tol);
for (double y : Arrays.asList(x, x + 0.5, x + 1.5)) { if (y < x) continue; assertEquals(2 * sn.probability(x, y), tr.probability(x, y), tol); assertEquals(tr.probability(x, y), TruncatedNormal.probabilityTruncZero(x, y, mu, sigma), tol); for (double y : Arrays.asList(x, x - 0.5, x - 1.5)) { if (y < x) continue; assertEquals(2 * sn.probability(x, y), tr.probability(x, y), tol);