public double mergeValueInLogSpace( RealParameter removed, RealParameter merge, ParametricDistribution distr) throws Exception { double val1 = Math.log(removed.getValue()); double val2 = Math.log(merge.getValue()); double x = val1 - val2; return distr.calcLogP(new RealParameter(new Double[] {x})) - val1; }
public double mergeDiscreteValue( RealParameter removed, RealParameter merge, ConditionalCategoricalDistribution distr) { int removedModel = (int) (double) removed.getValue(); int mergeModel = (int) (double) merge.getValue(); return distr.logConditionalDensity(mergeModel, removedModel); }
public double mergeValue(RealParameter removed, RealParameter merge, ParametricDistribution distr) throws Exception { Double[] x = new Double[removed.getDimension()]; for (int i = 0; i < x.length; i++) { x[i] = removed.getValue(i) - merge.getValue(i); } return distr.calcLogP(new RealParameter(x)); }