In distribution.AbstractRealDistribution.inverseCumulativeProbability(double), boundary cases (p == 0 and p == 1) are now handled correctly: concrete instances no longer need to override this method, which is removed (MATH-699).
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1210756 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
d45a10927e
commit
e994c42a8e
|
@ -133,18 +133,6 @@ public class BetaDistribution extends AbstractRealDistribution {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(double p) {
|
|
||||||
if (p == 0) {
|
|
||||||
return 0;
|
|
||||||
} else if (p == 1) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
public double cumulativeProbability(double x) {
|
public double cumulativeProbability(double x) {
|
||||||
if (x <= 0) {
|
if (x <= 0) {
|
||||||
|
|
|
@ -91,23 +91,6 @@ public class ChiSquaredDistribution extends AbstractRealDistribution {
|
||||||
return gamma.cumulativeProbability(x);
|
return gamma.cumulativeProbability(x);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* Returns {@code 0} when {@code p == 0} and
|
|
||||||
* {@code Double.POSITIVE_INFINITY} when {@code p == 1}.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(final double p) {
|
|
||||||
if (p == 0) {
|
|
||||||
return 0d;
|
|
||||||
}
|
|
||||||
if (p == 1) {
|
|
||||||
return Double.POSITIVE_INFINITY;
|
|
||||||
}
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
protected double getSolverAbsoluteAccuracy() {
|
protected double getSolverAbsoluteAccuracy() {
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
package org.apache.commons.math.distribution;
|
package org.apache.commons.math.distribution;
|
||||||
|
|
||||||
import org.apache.commons.math.exception.NotStrictlyPositiveException;
|
import org.apache.commons.math.exception.NotStrictlyPositiveException;
|
||||||
import org.apache.commons.math.exception.OutOfRangeException;
|
|
||||||
import org.apache.commons.math.exception.util.LocalizedFormats;
|
import org.apache.commons.math.exception.util.LocalizedFormats;
|
||||||
import org.apache.commons.math.special.Beta;
|
import org.apache.commons.math.special.Beta;
|
||||||
import org.apache.commons.math.util.FastMath;
|
import org.apache.commons.math.util.FastMath;
|
||||||
|
@ -155,23 +154,6 @@ public class FDistribution extends AbstractRealDistribution {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* Returns {@code 0} when {@code p == 0} and
|
|
||||||
* {@code Double.POSITIVE_INFINITY} when {@code p == 1}.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(final double p) throws OutOfRangeException {
|
|
||||||
if (p == 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (p == 1) {
|
|
||||||
return Double.POSITIVE_INFINITY;
|
|
||||||
}
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Access the numerator degrees of freedom.
|
* Access the numerator degrees of freedom.
|
||||||
*
|
*
|
||||||
|
|
|
@ -144,23 +144,6 @@ public class GammaDistribution extends AbstractRealDistribution {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* Returns {@code 0} when {@code p == 0} and
|
|
||||||
* {@code Double.POSITIVE_INFINITY} when {@code p == 1}.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(final double p) {
|
|
||||||
if (p == 0) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (p == 1) {
|
|
||||||
return Double.POSITIVE_INFINITY;
|
|
||||||
}
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
protected double getSolverAbsoluteAccuracy() {
|
protected double getSolverAbsoluteAccuracy() {
|
||||||
|
|
|
@ -155,23 +155,6 @@ public class NormalDistribution extends AbstractRealDistribution {
|
||||||
return 0.5 * Erf.erf(v0, v1);
|
return 0.5 * Erf.erf(v0, v1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* Returns {@code Double.NEGATIVE_INFINITY} when {@code p == 0}
|
|
||||||
* and {@code Double.POSITIVE_INFINITY} for {@code p == 1}.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(final double p) {
|
|
||||||
if (p == 0) {
|
|
||||||
return Double.NEGATIVE_INFINITY;
|
|
||||||
}
|
|
||||||
if (p == 1) {
|
|
||||||
return Double.POSITIVE_INFINITY;
|
|
||||||
}
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
protected double getSolverAbsoluteAccuracy() {
|
protected double getSolverAbsoluteAccuracy() {
|
||||||
|
|
|
@ -126,23 +126,6 @@ public class TDistribution extends AbstractRealDistribution {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* {@inheritDoc}
|
|
||||||
*
|
|
||||||
* Returns {@code Double.NEGATIVE_INFINITY} when {@code p = 0}
|
|
||||||
* and {@code Double.POSITIVE_INFINITY} when {@code p = 1}.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public double inverseCumulativeProbability(final double p) {
|
|
||||||
if (p == 0) {
|
|
||||||
return Double.NEGATIVE_INFINITY;
|
|
||||||
}
|
|
||||||
if (p == 1) {
|
|
||||||
return Double.POSITIVE_INFINITY;
|
|
||||||
}
|
|
||||||
return super.inverseCumulativeProbability(p);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** {@inheritDoc} */
|
/** {@inheritDoc} */
|
||||||
@Override
|
@Override
|
||||||
protected double getSolverAbsoluteAccuracy() {
|
protected double getSolverAbsoluteAccuracy() {
|
||||||
|
|
Loading…
Reference in New Issue