package beast.math.distributions; import org.apache.commons.math.MathException; import org.apache.commons.math.distribution.ContinuousDistribution; import org.apache.commons.math.distribution.Distribution; import beast.core.Description; @Description("OneOnX distribution. f(x) = C/x for some normalizing constant C. " + "If the input x is a multidimensional parameter, each of the dimensions is considered as a " + "separate independent component.") public class OneOnX extends ParametricDistribution { ContinuousDistribution dist = new OneOnXImpl(); @Override public void initAndValidate() { } @Override public Distribution getDistribution() { return dist; } class OneOnXImpl implements ContinuousDistribution { @Override public double cumulativeProbability(double x) throws MathException { throw new MathException("Not implemented yet"); } @Override public double cumulativeProbability(double x0, double x1) throws MathException { throw new MathException("Not implemented yet"); } @Override public double inverseCumulativeProbability(double p) throws MathException { throw new MathException("Not implemented yet"); } @Override public double density(double x) { return 1 / x; } @Override public double logDensity(double x) { return -Math.log(x); } } // class OneOnXImpl } // class OneOnX