Skip to content

Commit 0a6b2fc

Browse files
committed
Fix bug #44: don't try zero blength if new_root_lower_regions is null, which could happen when min_blength is too large.
1 parent d450c52 commit 0a6b2fc

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

tree/tree.cpp

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4971,17 +4971,24 @@ void cmaple::Tree::estimateLengthNewBranchAtRoot(
49714971
RealNumType new_root_lh = lower_regions->mergeTwoLowers<num_states>(
49724972
new_root_lower_regions, fixed_blength, *sample, -1, aln, model,
49734973
cumulative_rate, params->threshold_prob, true);
4974-
new_root_lh += new_root_lower_regions->computeAbsoluteLhAtRoot<num_states>(
4975-
model, cumulative_base);
4976-
4977-
if (new_root_lh > best_parent_lh) {
4978-
best_length = -1;
4979-
// replacePartialLH(best_parent_regions, new_root_lower_regions);
4980-
best_parent_regions = std::move(new_root_lower_regions);
4981-
}
4982-
4983-
// delete new_root_lower_regions
4984-
// if (new_root_lower_regions) delete new_root_lower_regions;
4974+
4975+
// bug fix
4976+
// don't try zero blength if new_root_lower_regions is null
4977+
// it happens when the min blength is too large
4978+
if (new_root_lower_regions != nullptr)
4979+
{
4980+
new_root_lh += new_root_lower_regions->computeAbsoluteLhAtRoot<num_states>(
4981+
model, cumulative_base);
4982+
4983+
if (new_root_lh > best_parent_lh) {
4984+
best_length = -1;
4985+
// replacePartialLH(best_parent_regions, new_root_lower_regions);
4986+
best_parent_regions = std::move(new_root_lower_regions);
4987+
}
4988+
4989+
// delete new_root_lower_regions
4990+
// if (new_root_lower_regions) delete new_root_lower_regions;
4991+
}
49854992
}
49864993
}
49874994

0 commit comments

Comments
 (0)