use of dr.evomodel.treedatalikelihood.continuous.cdi.ContinuousDiffusionIntegrator in project beast-mcmc by beast-dev.
the class WishartStatisticsWrapper method simulateMissingTraits.
private void simulateMissingTraits() {
// Force new sample!
likelihoodDelegate.fireModelChanged();
// ProcessSimulationDelegate.MeanAndVariance mv =
// (ProcessSimulationDelegate.MeanAndVariance) tipFullConditionalTrait.getTrait(
// dataLikelihood.getTree(), dataLikelihood.getTree().getExternalNode(1));
//
// System.err.println("DONE");
// System.exit(-1);
double[] sample = (double[]) tipSampleTrait.getTrait(dataLikelihood.getTree(), null);
if (DEBUG) {
System.err.println("Attempting to simulate missing traits");
System.err.println(new Vector(sample));
}
final ContinuousDiffusionIntegrator cdi = outerProductDelegate.getIntegrator();
assert (cdi instanceof ContinuousDiffusionIntegrator.Basic);
double[] buffer = new double[dimPartial * numTrait];
for (int trait = 0; trait < numTrait; ++trait) {
buffer[trait * dimPartial + dimTrait] = Double.POSITIVE_INFINITY;
}
for (int tip = 0; tip < tipCount; ++tip) {
int sampleOffset = tip * dimTrait * numTrait;
int bufferOffset = 0;
for (int trait = 0; trait < numTrait; ++trait) {
System.arraycopy(sample, sampleOffset, buffer, bufferOffset, dimTrait);
sampleOffset += dimTrait;
bufferOffset += dimPartial;
}
outerProductDelegate.setTipDataDirectly(tip, buffer);
}
if (DEBUG) {
System.err.println("Finished draw");
}
}
Aggregations