package dist;
import shared.Instance;
/**
* An abstract distribution
* @author Andrew Guillory gtg008g@mail.gatech.edu
* @version 1.0
*/
public abstract class AbstractDistribution implements Distribution {
/**
* @see dist.Distribution#logp(shared.Instance)
*/
public double logp(Instance i) {
double p = p(i);
double logp = Math.log(p);
if (Double.isInfinite(logp)) {
return -Double.MAX_VALUE;
}
return logp;
}
/**
* Get an unconditional sample
* @return the unconditional sample
*/
public Instance sample() {
return sample(null);
}
/**
* Get an unconditional sample
* @return the unconditional sample
*/
public Instance mode() {
return mode(null);
}
}