package dr.inference.model;
import dr.inference.loggers.LogColumn;
import dr.inference.loggers.NumberColumn;
/**
* @author Joseph Heled
* Date: 16/04/2009
*/
public abstract class AbstractModelLikelihood extends AbstractModel implements Likelihood {
/**
* @param name Model Name
*/
public AbstractModelLikelihood(String name) {
super(name);
}
public String prettyName() {
return Likelihood.Abstract.getPrettyName(this);
}
@Override
public boolean isUsed() {
return isUsed;
}
public void setUsed() {
isUsed = true;
}
public boolean evaluateEarly() {
return false;
}
private boolean isUsed = false;
// **************************************************************
// Loggable IMPLEMENTATION
// **************************************************************
public LogColumn[] getColumns() {
return new LogColumn[]{
new LikelihoodColumn(getId())
};
}
protected class LikelihoodColumn extends NumberColumn {
public LikelihoodColumn(String label) {
super(label);
}
public double getDoubleValue() {
return getLogLikelihood();
}
}
}