Search in sources :

Example 1 with RateVarianceScaleOperator

use of dr.evomodel.operators.RateVarianceScaleOperator in project beast-mcmc by beast-dev.

the class RateVarianceScaleOperatorParser method parseXMLObject.

public Object parseXMLObject(XMLObject xo) throws XMLParseException {
    CoercionMode mode = CoercionMode.parseMode(xo);
    final double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
    final double scaleFactor = xo.getDoubleAttribute(SCALE_FACTOR);
    if (scaleFactor <= 0.0 || scaleFactor >= 1.0) {
        throw new XMLParseException("scaleFactor must be between 0.0 and 1.0");
    }
    final TreeModel treeModel = (TreeModel) xo.getChild(TreeModel.class);
    final Parameter variance = (Parameter) xo.getChild(Parameter.class);
    if (variance.getDimension() != 1) {
        throw new XMLParseException("dimension of the variance parameter should be 1");
    }
    RateVarianceScaleOperator operator = new RateVarianceScaleOperator(treeModel, variance, scaleFactor, mode);
    operator.setWeight(weight);
    return operator;
}
Also used : TreeModel(dr.evomodel.tree.TreeModel) Parameter(dr.inference.model.Parameter) CoercionMode(dr.inference.operators.CoercionMode) RateVarianceScaleOperator(dr.evomodel.operators.RateVarianceScaleOperator)

Aggregations

RateVarianceScaleOperator (dr.evomodel.operators.RateVarianceScaleOperator)1 TreeModel (dr.evomodel.tree.TreeModel)1 Parameter (dr.inference.model.Parameter)1 CoercionMode (dr.inference.operators.CoercionMode)1