Skip to content

FirstMatchingSplit()#247

Merged
ms609 merged 8 commits intomainfrom
first-matching-split
Feb 10, 2026
Merged

FirstMatchingSplit()#247
ms609 merged 8 commits intomainfrom
first-matching-split

Conversation

@ms609
Copy link
Owner

@ms609 ms609 commented Feb 10, 2026

Needs reviewing for AICruft

Repository owner deleted a comment from github-actions bot Feb 10, 2026
Repository owner deleted a comment from github-actions bot Feb 10, 2026
@ms609 ms609 marked this pull request as ready for review February 10, 2026 10:15
Repository owner deleted a comment from github-actions bot Feb 10, 2026
Repository owner deleted a comment from github-actions bot Feb 10, 2026
@github-actions
Copy link

github-actions bot commented Feb 10, 2026

⚠️ This benchmark result is outdated. See the latest comment below.

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD 2.41% 24.1 →
20.9, 25.7
as.Splits(someTrees) ⚪ NSD 0.31% 11.6 →
11.6, 11.6
Consensus(forest1k.888, check = FALSE) ⚪ NSD 1.66% 98.9 →
98.2, 96.6
Consensus(forest201.80, check = FALSE) ⚪ NSD -2.39% 4.07 →
4.23, 4.12
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD 1.09% 1.24 →
1.23, 1.23
Consensus(forest21.260) ⚪ NSD 0.2% 1.24 →
1.24, 1.24
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -0.81% 2.98 →
3.04, 2.98
DropTip(tr2000, 5) ⚪ NSD 0.29% 20.3 →
20.2, 20.2
DropTip(tr80, 5) ⚪ NSD 0.16% 0.105 →
0.106, 0.104
DropTip(unlen2k, 5) ⚪ NSD -0.04% 0.214 →
0.213, 0.216
DropTip(unlen80, 5) ⚪ NSD -0.45% 0.0403 →
0.0405, 0.0405
lapply(bigSplits, as.phylo) 🟣 ~same -2.85% 30.6 →
31.1, 31.6
lapply(someSplits, as.phylo) ⚪ NSD 3.35% 14.7 →
14.1, 14.2
PathLengths(tr2000, full = TRUE) ⚪ NSD 0.83% 20.3 →
20.8, 19.8
PathLengths(tr80, full = TRUE) ⚪ NSD -221.15% 0.0318 →
0.103, 0.102
PathLengths(tr80Unif, full = TRUE) 🟠 Slower 🙁 -224.35% 0.0325 →
0.105, 0.106
RootTree(tr2000, 5) ⚪ NSD -3.4% 0.373 →
0.392, 0.376
RootTree(tr80, c("t3", "t36")) ⚪ NSD 0.6% 0.0702 →
0.0697, 0.0699
RootTree(tr80, "t3") ⚪ NSD -0.04% 0.0493 →
0.0499, 0.0487
RootTree(tr80, "t30") ⚪ NSD 0.73% 0.0495 →
0.0494, 0.0489
RootTree(unlen2k, 5) ⚪ NSD 0.3% 0.33 →
0.324, 0.336
RootTree(unlen80, c("t3", "t36")) ⚪ NSD 2.12% 0.0653 →
0.0636, 0.0641
RootTree(unlen80, "t3") ⚪ NSD 1.37% 0.0432 →
0.0425, 0.0427
RootTree(unlen80, "t30") ⚪ NSD 2.48% 0.0437 →
0.0423, 0.0428
TreeDist::RobinsonFoulds(forest201.80) ⚪ NSD -1.1% 15.7 →
15.5, 16.2
TreeDist::RobinsonFoulds(forest21.888) ⚪ NSD 0.25% 3.26 →
3.18, 3.26
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 1.07% 0.0939 →
0.095, 0.0909
TreeTools:::postorder_order(bal40) ⚪ NSD 1.81% 0.00166 →
0.00163, 0.00163
TreeTools:::postorder_order(bal40k) ⚪ NSD 2.74% 0.441 →
0.431, 0.424
TreeTools:::postorder_order(dbal40) ⚪ NSD -2.31% 0.00173 →
0.00178, 0.00177
TreeTools:::postorder_order(dbal40k) 🟣 ~same -5.34% 2.14 →
2.25, 2.25
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -17.87% 0.00253 →
0.00297, 0.00299
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.67% 3390 →
3610, 3620
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -26.63% 0.00399 →
0.00504, 0.00505
TreeTools:::postorder_order(nbal40) ⚪ NSD -0.96% 0.00208 →
0.00209, 0.00211
TreeTools:::postorder_order(nbal40k) 🟠 Slower 🙁 -10.86% 2.16 →
2.4, 2.4
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -16.43% 0.00281 →
0.00326, 0.00329
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.45% 3410 →
3630, 3630
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -24.89% 0.00451 →
0.00561, 0.00563
TreeTools:::postorder_order(pec40) ⚪ NSD 0.61% 0.00164 →
0.00163, 0.00163
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.2% 0.429 →
0.431, 0.429
TreeTools:::postorder_order(rnd80) ⚪ NSD -0.98% 0.00203 →
0.00202, 0.00209

@ms609 ms609 merged commit 62af7ec into main Feb 10, 2026
8 of 17 checks passed
@ms609 ms609 deleted the first-matching-split branch February 10, 2026 10:36
@github-actions
Copy link

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD 2.59% 22.7 →
20.9, 22.4
as.Splits(someTrees) ⚪ NSD -0.38% 11.2 →
11.3, 11.3
Consensus(forest1k.888, check = FALSE) ⚪ NSD -0.27% 96 →
94.7, 96.7
Consensus(forest201.80, check = FALSE) ⚪ NSD -0.36% 4.05 →
4.06, 4.06
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -0.45% 1.22 →
1.22, 1.23
Consensus(forest21.260) ⚪ NSD -0.31% 1.24 →
1.24, 1.24
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -0.35% 2.95 →
2.92, 2.97
DropTip(tr2000, 5) ⚪ NSD 1.62% 20.3 →
20.2, 19.8
DropTip(tr80, 5) ⚪ NSD 1.42% 0.106 →
0.106, 0.104
DropTip(unlen2k, 5) ⚪ NSD 3.53% 0.22 →
0.221, 0.206
DropTip(unlen80, 5) ⚪ NSD 1.84% 0.0413 →
0.041, 0.04
lapply(bigSplits, as.phylo) ⚪ NSD -1.13% 30.7 →
31, 31
lapply(someSplits, as.phylo) ⚪ NSD 1.66% 14.2 →
13.9, 14
PathLengths(tr2000, full = TRUE) ⚪ NSD 0.6% 19.4 →
19.2, 19.4
PathLengths(tr80, full = TRUE) ⚪ NSD 1.66% 0.104 →
0.103, 0.0413
PathLengths(tr80Unif, full = TRUE) 🟠 Slower 🙁 -239.34% 0.0308 →
0.105, 0.0407
RootTree(tr2000, 5) ⚪ NSD -0.35% 0.373 →
0.374, 0.374
RootTree(tr80, c("t3", "t36")) ⚪ NSD 0.06% 0.0708 →
0.071, 0.0704
RootTree(tr80, "t3") ⚪ NSD 0% 0.0496 →
0.0495, 0.0496
RootTree(tr80, "t30") ⚪ NSD -1.03% 0.0497 →
0.0502, 0.0502
RootTree(unlen2k, 5) ⚪ NSD 0.56% 0.331 →
0.331, 0.327
RootTree(unlen80, c("t3", "t36")) ⚪ NSD 0.41% 0.0654 →
0.0656, 0.0647
RootTree(unlen80, "t3") ⚪ NSD 0.25% 0.0433 →
0.043, 0.0434
RootTree(unlen80, "t30") ⚪ NSD 0.27% 0.0437 →
0.0435, 0.0436
TreeDist::RobinsonFoulds(forest201.80) ⚪ NSD 1.7% 15.6 →
15.3, 15.5
TreeDist::RobinsonFoulds(forest21.888) ⚪ NSD -0.88% 3.19 →
3.17, 3.23
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD -0.73% 0.0924 →
0.0918, 0.0948
TreeTools:::postorder_order(bal40) ⚪ NSD 4.65% 0.00174 →
0.00165, 0.00167
TreeTools:::postorder_order(bal40k) ⚪ NSD 1.86% 0.439 →
0.431, 0.431
TreeTools:::postorder_order(dbal40) ⚪ NSD -4.12% 0.00172 →
0.00182, 0.00176
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -6.11% 2.12 →
2.23, 2.25
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -20.31% 0.00252 →
0.00305, 0.003
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.75% 3380 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -21.91% 0.00417 →
0.00509, 0.00508
TreeTools:::postorder_order(nbal40) ⚪ NSD -3.91% 0.00204 →
0.00214, 0.00208
TreeTools:::postorder_order(nbal40k) 🟠 Slower 🙁 -10.91% 2.17 →
2.39, 2.41
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.03% 0.00283 →
0.00333, 0.00328
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.7% 3400 →
3630, 3630
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -24.66% 0.00455 →
0.00569, 0.00565
TreeTools:::postorder_order(pec40) ⚪ NSD -0.61% 0.00163 →
0.00165, 0.00163
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.19% 0.429 →
0.43, 0.429
TreeTools:::postorder_order(rnd80) 🟢 Faster! 16.88% 0.0025 →
0.00207, 0.00207

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant