From a62e92994e9ba336517db6576dd402bfb20d848f Mon Sep 17 00:00:00 2001 From: Lars-B Date: Tue, 7 Jul 2026 11:34:32 -0700 Subject: [PATCH] Underflow handling for filteredCCD, CompEvol/CCD#12 --- src/ccd/model/CCD0.java | 2 +- src/ccd/model/FilteredCCD.java | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ccd/model/CCD0.java b/src/ccd/model/CCD0.java index 22aac18..e02fee8 100644 --- a/src/ccd/model/CCD0.java +++ b/src/ccd/model/CCD0.java @@ -735,7 +735,7 @@ public void run() { * @param clade for which the clade partition probabilities are computed * @return the sum of this clade's partitions probabilities times its own credibility */ - private static double setPartitionLogProbabilities(Clade clade) { + public static double setPartitionLogProbabilities(Clade clade) { if (clade.getLogSumCladeCredibilities() < 0) { return clade.getLogSumCladeCredibilities(); } diff --git a/src/ccd/model/FilteredCCD.java b/src/ccd/model/FilteredCCD.java index 70dbf35..2d9d539 100644 --- a/src/ccd/model/FilteredCCD.java +++ b/src/ccd/model/FilteredCCD.java @@ -371,7 +371,13 @@ public FilteredCCD copy() { @Override public void initialize() { if (this.rootCCD instanceof CCD0) { - CCD0.setPartitionProbabilities(this.rootClade); + try { + CCD0.setPartitionProbabilities(this.rootClade); + } catch (UnderflowException e) { + // log a warning here will spam the screen... + this.rootCCD.resetSumCladeCredibilities(); + CCD0.setPartitionLogProbabilities(this.rootClade); + } this.probabilitiesDirty = false; } }