Skip to content

Cherries()#236

Merged
ms609 merged 19 commits intomainfrom
cherries
Sep 23, 2025
Merged

Cherries()#236
ms609 merged 19 commits intomainfrom
cherries

Conversation

@ms609
Copy link
Owner

@ms609 ms609 commented Sep 14, 2025

Counts the cherries in a binary tree

@ms609 ms609 marked this pull request as ready for review September 14, 2025 06:40
@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD -1.76% 23 →
23.6, 23
as.Splits(someTrees) ⚪ NSD 0.8% 11.3 →
11, 11.3
Consensus(forest1k.888, check = FALSE) ⚪ NSD 2% 97.3 →
95.3, 98.7
Consensus(forest201.80, check = FALSE) ⚪ NSD 1.25% 4.08 →
4.05, 4.01
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD 0.42% 1.21 →
1.2, 1.21
Consensus(forest21.260) ⚪ NSD 0.25% 1.21 →
1.21, 1.2
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD 0.93% 2.98 →
2.97, 2.94
DropTip(tr2000, 5) ⚪ NSD -1.29% 19.8 →
20.1, 19.9
DropTip(tr80, 5) ⚪ NSD 1.22% 0.104 →
0.103, 0.103
DropTip(unlen2k, 5) ⚪ NSD -2.49% 0.207 →
0.215, 0.21
DropTip(unlen80, 5) ⚪ NSD 1.48% 0.0411 →
0.0408, 0.0401
lapply(bigSplits, as.phylo) 🟣 ~same -3.88% 27.7 →
28.7, 28.8
lapply(someSplits, as.phylo) ⚪ NSD -2.46% 13.6 →
14, 13.8
PathLengths(tr2000, full = TRUE) ⚪ NSD -0.33% 19 →
19.1, 19.5
PathLengths(tr80, full = TRUE) 🟢 Faster! 70.95% 0.103 →
0.1, 0.0296
PathLengths(tr80Unif, full = TRUE) ⚪ NSD -4.69% 0.0303 →
0.0311, 0.0318
RootTree(tr2000, 5) ⚪ NSD 1.9% 0.396 →
0.377, 0.394
RootTree(tr80, c("t3", "t36")) ⚪ NSD 0.48% 0.0708 →
0.0699, 0.0708
RootTree(tr80, "t3") ⚪ NSD 1.61% 0.0505 →
0.0486, 0.0502
RootTree(tr80, "t30") ⚪ NSD 1.19% 0.0505 →
0.0488, 0.0505
RootTree(unlen2k, 5) ⚪ NSD -2.76% 0.325 →
0.338, 0.33
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -1.51% 0.0643 →
0.0656, 0.0651
RootTree(unlen80, "t3") ⚪ NSD 0% 0.0435 →
0.0435, 0.0434
RootTree(unlen80, "t30") ⚪ NSD -0.32% 0.0438 →
0.0441, 0.0437
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD -1.07% 0.0905 →
0.0904, 0.0927
TreeTools:::postorder_order(bal40) ⚪ NSD 4.11% 0.0017 →
0.00163, 0.00163
TreeTools:::postorder_order(bal40k) ⚪ NSD 0.92% 0.449 →
0.446, 0.444
TreeTools:::postorder_order(dbal40) ⚪ NSD -1.73% 0.00173 →
0.00177, 0.00175
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -10.78% 2.13 →
2.36, 2.36
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -18.73% 0.00251 →
0.00299, 0.00299
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.57% 3390 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -27.69% 0.00395 →
0.00503, 0.00507
TreeTools:::postorder_order(nbal40) ⚪ NSD -0.01% 0.00211 →
0.00212, 0.00211
TreeTools:::postorder_order(nbal40k) 🟠 Slower 🙁 -11.25% 2.17 →
2.42, 2.41
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.11% 0.00281 →
0.00328, 0.00331
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.52% 3410 →
3630, 3630
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -24.45% 0.00451 →
0.0056, 0.00562
TreeTools:::postorder_order(pec40) ⚪ NSD 0.06% 0.00163 →
0.00163, 0.00163
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.14% 0.428 →
0.429, 0.428
TreeTools:::postorder_order(rnd80) ⚪ NSD 1.43% 0.00209 →
0.00205, 0.00207

@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD -3.14% 22.2 →
23.2, 21.2
as.Splits(someTrees) ⚪ NSD 2.45% 11.3 →
10.9, 11.1
Consensus(forest1k.888, check = FALSE) ⚪ NSD -1.4% 94.7 →
96.7, 94.5
Consensus(forest201.80, check = FALSE) ⚪ NSD -1.77% 3.97 →
4.08, 3.99
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -1% 1.19 →
1.21, 1.19
Consensus(forest21.260) ⚪ NSD -0.63% 1.18 →
1.2, 1.18
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -1.61% 2.91 →
2.97, 2.94
DropTip(tr2000, 5) ⚪ NSD 1.1% 20.6 →
20, 20.5
DropTip(tr80, 5) ⚪ NSD -0.32% 0.105 →
0.103, 0.106
DropTip(unlen2k, 5) ⚪ NSD 1.33% 0.212 →
0.209, 0.21
DropTip(unlen80, 5) ⚪ NSD 0.27% 0.0407 →
0.0405, 0.0407
lapply(bigSplits, as.phylo) 🟣 ~same -4.64% 27.7 →
28.7, 29.1
lapply(someSplits, as.phylo) 🟢 Faster! 14.42% 16.5 →
14, 14.7
PathLengths(tr2000, full = TRUE) ⚪ NSD -0.64% 19.5 →
19.8, 19.3
PathLengths(tr80, full = TRUE) ⚪ NSD 3.49% 0.105 →
0.101, 0.103
PathLengths(tr80Unif, full = TRUE) ⚪ NSD -207.73% 0.0333 →
0.102, 0.103
RootTree(tr2000, 5) ⚪ NSD 1.13% 0.378 →
0.374, 0.373
RootTree(tr80, c("t3", "t36")) ⚪ NSD 1.01% 0.0715 →
0.0713, 0.0702
RootTree(tr80, "t3") ⚪ NSD 0.56% 0.0503 →
0.0503, 0.0498
RootTree(tr80, "t30") ⚪ NSD 0.45% 0.0507 →
0.0508, 0.0501
RootTree(unlen2k, 5) ⚪ NSD -1.46% 0.329 →
0.336, 0.332
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -0.69% 0.0654 →
0.0666, 0.0649
RootTree(unlen80, "t3") ⚪ NSD 0.56% 0.0445 →
0.0449, 0.0434
RootTree(unlen80, "t30") ⚪ NSD 0.29% 0.0449 →
0.0452, 0.0442
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 1.1% 0.0923 →
0.0914, 0.0911
TreeTools:::postorder_order(bal40) ⚪ NSD 3.6% 0.00166 →
0.00159, 0.00162
TreeTools:::postorder_order(bal40k) ⚪ NSD -0.72% 0.447 →
0.455, 0.44
TreeTools:::postorder_order(dbal40) ⚪ NSD -1.74% 0.00172 →
0.00173, 0.00177
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -10.79% 2.13 →
2.36, 2.36
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -17.33% 0.00255 →
0.00298, 0.003
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.58% 3390 →
3610, 3620
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -23.9% 0.00407 →
0.00504, 0.00504
TreeTools:::postorder_order(nbal40) ⚪ NSD -1.91% 0.00209 →
0.0021, 0.00215
TreeTools:::postorder_order(nbal40k) ⚪ NSD -7.57% 2.23 →
2.4, 2.4
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -15.86% 0.00284 →
0.00328, 0.0033
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.38% 3410 →
3620, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -22.56% 0.00457 →
0.0056, 0.0056
TreeTools:::postorder_order(pec40) ⚪ NSD 1.75% 0.00165 →
0.00161, 0.00164
TreeTools:::postorder_order(pec40k) ⚪ NSD 0.74% 0.43 →
0.427, 0.428
TreeTools:::postorder_order(rnd80) ⚪ NSD 3.31% 0.00211 →
0.00205, 0.00204

@codecov
Copy link

codecov bot commented Sep 14, 2025

Codecov Report

❌ Patch coverage is 97.72727% with 1 line in your changes missing coverage. Please review.
✅ Project coverage is 96.46%. Comparing base (a169345) to head (b41fb49).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
inst/include/TreeTools/n_cherries.h 96.55% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #236      +/-   ##
==========================================
+ Coverage   96.45%   96.46%   +0.01%     
==========================================
  Files          71       74       +3     
  Lines        5274     5318      +44     
==========================================
+ Hits         5087     5130      +43     
- Misses        187      188       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD -2.4% 21.6 →
22.2, 21.8
as.Splits(someTrees) ⚪ NSD 0.69% 11.1 →
10.9, 11.1
Consensus(forest1k.888, check = FALSE) ⚪ NSD 1.91% 97.5 →
96.2, 94.3
Consensus(forest201.80, check = FALSE) ⚪ NSD 0.57% 4.05 →
4.07, 3.97
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -0.3% 1.21 →
1.22, 1.2
Consensus(forest21.260) ⚪ NSD 0.62% 1.2 →
1.21, 1.19
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD 0.28% 2.98 →
3.03, 2.92
DropTip(tr2000, 5) ⚪ NSD -0.86% 20 →
20.7, 20
DropTip(tr80, 5) ⚪ NSD -0.52% 0.102 →
0.104, 0.102
DropTip(unlen2k, 5) ⚪ NSD -25.1% 0.217 →
0.278, 0.21
DropTip(unlen80, 5) ⚪ NSD 1.08% 0.0407 →
0.0401, 0.0403
lapply(bigSplits, as.phylo) ⚪ NSD 0.07% 27.6 →
27.7, 27.6
lapply(someSplits, as.phylo) ⚪ NSD -0.98% 13.5 →
13.8, 13.6
PathLengths(tr2000, full = TRUE) 🟣 ~same 2.59% 19.9 →
19.5, 19.2
PathLengths(tr80, full = TRUE) ⚪ NSD 2.25% 0.104 →
0.1, 0.102
PathLengths(tr80Unif, full = TRUE) ⚪ NSD -206.37% 0.0335 →
0.1, 0.105
RootTree(tr2000, 5) ⚪ NSD -2.49% 0.378 →
0.379, 0.391
RootTree(tr80, c("t3", "t36")) ⚪ NSD 2.53% 0.0706 →
0.0692, 0.0685
RootTree(tr80, "t3") ⚪ NSD 1.56% 0.05 →
0.0488, 0.0495
RootTree(tr80, "t30") ⚪ NSD 2.25% 0.0508 →
0.0493, 0.0499
RootTree(unlen2k, 5) ⚪ NSD -0.42% 0.33 →
0.333, 0.328
RootTree(unlen80, c("t3", "t36")) ⚪ NSD 1.98% 0.0652 →
0.0635, 0.0643
RootTree(unlen80, "t3") ⚪ NSD 2.31% 0.0442 →
0.0432, 0.0432
RootTree(unlen80, "t30") ⚪ NSD 1.83% 0.0444 →
0.0434, 0.0436
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 1.51% 0.0923 →
0.0904, 0.0915
TreeTools:::postorder_order(bal40) ⚪ NSD 1.22% 0.00163 →
0.00162, 0.00161
TreeTools:::postorder_order(bal40k) ⚪ NSD -0.17% 0.441 →
0.442, 0.442
TreeTools:::postorder_order(dbal40) ⚪ NSD -2.33% 0.00171 →
0.00175, 0.00174
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -12.45% 2.09 →
2.35, 2.35
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -18.78% 0.00251 →
0.00299, 0.00299
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -9.28% 3300 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -26.84% 0.004 →
0.00506, 0.00509
TreeTools:::postorder_order(nbal40) ⚪ NSD -3.37% 0.00204 →
0.00211, 0.0021
TreeTools:::postorder_order(nbal40k) 🟠 Slower 🙁 -10.33% 2.17 →
2.39, 2.39
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -16.72% 0.00282 →
0.00329, 0.00329
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -9.92% 3290 →
3610, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -23.37% 0.00455 →
0.00561, 0.00561
TreeTools:::postorder_order(pec40) ⚪ NSD -1.23% 0.00162 →
0.00163, 0.00165
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.03% 0.427 →
0.427, 0.428
TreeTools:::postorder_order(rnd80) ⚪ NSD 0.48% 0.00209 →
0.00206, 0.0021

@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD 0.95% 22.3 →
22.4, 21.3
as.Splits(someTrees) ⚪ NSD -0.12% 11.2 →
11.2, 11.1
Consensus(forest1k.888, check = FALSE) 🟣 ~same -3.93% 93.7 →
98, 97.4
Consensus(forest201.80, check = FALSE) ⚪ NSD -1.76% 3.98 →
4.05, 4.04
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -1.81% 1.19 →
1.21, 1.21
Consensus(forest21.260) ⚪ NSD -1.12% 1.18 →
1.19, 1.21
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -2.79% 2.91 →
2.98, 3
DropTip(tr2000, 5) ⚪ NSD 0.95% 19.7 →
19.4, 19.6
DropTip(tr80, 5) ⚪ NSD -0.6% 0.103 →
0.103, 0.104
DropTip(unlen2k, 5) 🟢 Faster! 22.72% 0.274 →
0.213, 0.209
DropTip(unlen80, 5) ⚪ NSD -0.33% 0.0402 →
0.0403, 0.0403
lapply(bigSplits, as.phylo) ⚪ NSD -0.24% 27.7 →
27.8, 27.7
lapply(someSplits, as.phylo) ⚪ NSD 0.63% 13.6 →
13.5, 13.5
PathLengths(tr2000, full = TRUE) ⚪ NSD -0.76% 18.8 →
18.8, 19
PathLengths(tr80, full = TRUE) ⚪ NSD 1.37% 0.0271 →
0.0261, 0.0276
PathLengths(tr80Unif, full = TRUE) ⚪ NSD 1.04% 0.0288 →
0.028, 0.0288
RootTree(tr2000, 5) ⚪ NSD 0.17% 0.392 →
0.391, 0.392
RootTree(tr80, c("t3", "t36")) ⚪ NSD -2.18% 0.0686 →
0.0703, 0.07
RootTree(tr80, "t3") ⚪ NSD -0.54% 0.0497 →
0.0498, 0.0502
RootTree(tr80, "t30") ⚪ NSD 0.28% 0.0501 →
0.0499, 0.05
RootTree(unlen2k, 5) ⚪ NSD -2.09% 0.322 →
0.327, 0.33
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -3.93% 0.0628 →
0.064, 0.0662
RootTree(unlen80, "t3") ⚪ NSD -1.59% 0.0427 →
0.0431, 0.0436
RootTree(unlen80, "t30") ⚪ NSD -2.2% 0.0428 →
0.0433, 0.0441
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 0.27% 0.0889 →
0.088, 0.0893
TreeTools:::postorder_order(bal40) ⚪ NSD -0.61% 0.00163 →
0.00164, 0.00164
TreeTools:::postorder_order(bal40k) ⚪ NSD -1.07% 0.44 →
0.447, 0.444
TreeTools:::postorder_order(dbal40) ⚪ NSD -2.94% 0.0017 →
0.00175, 0.00176
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -13.27% 2.08 →
2.35, 2.36
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -19.2% 0.00251 →
0.00298, 0.003
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -7.66% 3350 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -26.42% 0.00398 →
0.00501, 0.00504
TreeTools:::postorder_order(nbal40) ⚪ NSD -3.97% 0.00204 →
0.00211, 0.00213
TreeTools:::postorder_order(nbal40k) ⚪ NSD -9.19% 2.2 →
2.4, 2.4
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.92% 0.0028 →
0.00329, 0.00331
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -7.62% 3360 →
3620, 3620
TreeTools:::postorder_order(nrnd80) ⚪ NSD -21.81% 0.0046 →
0.00561, 0.0056
TreeTools:::postorder_order(pec40) ⚪ NSD -1.23% 0.00162 →
0.00163, 0.00165
TreeTools:::postorder_order(pec40k) ⚪ NSD 3.98% 0.447 →
0.429, 0.428
TreeTools:::postorder_order(rnd80) ⚪ NSD 1.44% 0.00208 →
0.00203, 0.00206

@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD -9.53% 20.6 →
21.6, 22.8
as.Splits(someTrees) ⚪ NSD 0.73% 11.3 →
11.2, 11.2
Consensus(forest1k.888, check = FALSE) ⚪ NSD 2.95% 97.3 →
95.1, 94.4
Consensus(forest201.80, check = FALSE) ⚪ NSD 0.44% 4 →
3.97, 3.99
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD 0.34% 1.2 →
1.19, 1.2
Consensus(forest21.260) ⚪ NSD 1.08% 1.2 →
1.18, 1.18
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD 0.66% 2.95 →
2.93, 2.93
DropTip(tr2000, 5) ⚪ NSD -0.25% 19.8 →
19.8, 19.9
DropTip(tr80, 5) ⚪ NSD 0.21% 0.104 →
0.103, 0.104
DropTip(unlen2k, 5) ⚪ NSD -2.25% 0.206 →
0.209, 0.214
DropTip(unlen80, 5) ⚪ NSD -0.72% 0.0402 →
0.04, 0.0409
lapply(bigSplits, as.phylo) ⚪ NSD -0.6% 27.7 →
27.6, 28.7
lapply(someSplits, as.phylo) ⚪ NSD 1.21% 13.7 →
13.6, 13.6
PathLengths(tr2000, full = TRUE) ⚪ NSD -0.17% 19.1 →
19.3, 19.1
PathLengths(tr80, full = TRUE) 🟠 Slower 🙁 -252.46% 0.0286 →
0.103, 0.099
PathLengths(tr80Unif, full = TRUE) 🟠 Slower 🙁 -255.24% 0.0287 →
0.104, 0.0424
RootTree(tr2000, 5) ⚪ NSD 0.85% 0.376 →
0.373, 0.372
RootTree(tr80, c("t3", "t36")) ⚪ NSD 1.1% 0.07 →
0.0694, 0.0691
RootTree(tr80, "t3") ⚪ NSD 0.99% 0.0494 →
0.0492, 0.0485
RootTree(tr80, "t30") ⚪ NSD 0.27% 0.0493 →
0.0493, 0.049
RootTree(unlen2k, 5) ⚪ NSD -1.9% 0.328 →
0.334, 0.334
RootTree(unlen80, c("t3", "t36")) ⚪ NSD 0.39% 0.0644 →
0.0644, 0.0638
RootTree(unlen80, "t3") ⚪ NSD -0.07% 0.0433 →
0.0435, 0.0431
RootTree(unlen80, "t30") ⚪ NSD 0.3% 0.0436 →
0.0437, 0.0433
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD -0.65% 0.0899 →
0.0906, 0.0903
TreeTools:::postorder_order(bal40) ⚪ NSD 0.56% 0.00163 →
0.00163, 0.00161
TreeTools:::postorder_order(bal40k) ⚪ NSD 0.15% 0.443 →
0.442, 0.443
TreeTools:::postorder_order(dbal40) ⚪ NSD -3.46% 0.0017 →
0.00175, 0.00176
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -11.54% 2.11 →
2.36, 2.35
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -18.29% 0.00252 →
0.00298, 0.00297
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.95% 3380 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -29.69% 0.00398 →
0.00526, 0.00504
TreeTools:::postorder_order(nbal40) ⚪ NSD -3.9% 0.00205 →
0.00214, 0.00212
TreeTools:::postorder_order(nbal40k) ⚪ NSD -10.27% 2.16 →
2.4, 2.34
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.15% 0.00281 →
0.0033, 0.00329
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -7.15% 3380 →
3620, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -23.27% 0.00456 →
0.00564, 0.0056
TreeTools:::postorder_order(pec40) ⚪ NSD 1.16% 0.00164 →
0.00163, 0.00162
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.17% 0.428 →
0.433, 0.426
TreeTools:::postorder_order(rnd80) ⚪ NSD 0.53% 0.00208 →
0.00207, 0.00205

@github-actions
Copy link

github-actions bot commented Sep 14, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD 2.54% 21.7 →
21.2, 20.9
as.Splits(someTrees) ⚪ NSD -1.78% 11.2 →
11.4, 11.1
Consensus(forest1k.888, check = FALSE) ⚪ NSD -1.36% 95.5 →
97.7, 95.2
Consensus(forest201.80, check = FALSE) ⚪ NSD -0.6% 4.02 →
4.06, 4.03
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -0.59% 1.2 →
1.21, 1.19
Consensus(forest21.260) ⚪ NSD -0.53% 1.18 →
1.2, 1.18
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -0.74% 2.94 →
2.98, 2.94
DropTip(tr2000, 5) ⚪ NSD -1.31% 19.5 →
19.6, 19.9
DropTip(tr80, 5) ⚪ NSD -0.39% 0.104 →
0.104, 0.104
DropTip(unlen2k, 5) 🟢 Faster! 24.29% 0.275 →
0.208, 0.209
DropTip(unlen80, 5) ⚪ NSD -0.22% 0.0408 →
0.0409, 0.0409
lapply(bigSplits, as.phylo) ⚪ NSD 0.26% 27.6 →
27.5, 27.7
lapply(someSplits, as.phylo) ⚪ NSD -11.23% 13.6 →
13.5, 17.3
PathLengths(tr2000, full = TRUE) ⚪ NSD -1.82% 19.1 →
19.6, 19.1
PathLengths(tr80, full = TRUE) ⚪ NSD 68.02% 0.0995 →
0.102, 0.0314
PathLengths(tr80Unif, full = TRUE) ⚪ NSD -9.54% 0.0301 →
0.0296, 0.0335
RootTree(tr2000, 5) ⚪ NSD -1.56% 0.377 →
0.375, 0.388
RootTree(tr80, c("t3", "t36")) ⚪ NSD -0.41% 0.0709 →
0.072, 0.0701
RootTree(tr80, "t3") ⚪ NSD -0.22% 0.0506 →
0.0508, 0.0507
RootTree(tr80, "t30") ⚪ NSD -0.53% 0.0507 →
0.0511, 0.0508
RootTree(unlen2k, 5) ⚪ NSD 0.39% 0.332 →
0.334, 0.326
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -0.24% 0.0655 →
0.0662, 0.065
RootTree(unlen80, "t3") ⚪ NSD 0.56% 0.0444 →
0.0445, 0.0437
RootTree(unlen80, "t30") ⚪ NSD 0.67% 0.0448 →
0.0447, 0.0442
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD -1.97% 0.0901 →
0.09, 0.0942
TreeTools:::postorder_order(bal40) ⚪ NSD -1.85% 0.00162 →
0.00165, 0.00164
TreeTools:::postorder_order(bal40k) ⚪ NSD -3.76% 0.439 →
0.505, 0.443
TreeTools:::postorder_order(dbal40) ⚪ NSD -3.51% 0.00171 →
0.00175, 0.00178
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -9.83% 2.13 →
2.36, 2.33
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -19.25% 0.0025 →
0.00297, 0.00301
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.65% 3380 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -27.06% 0.004 →
0.00507, 0.00509
TreeTools:::postorder_order(nbal40) ⚪ NSD -2.9% 0.00206 →
0.0021, 0.00214
TreeTools:::postorder_order(nbal40k) ⚪ NSD -9.43% 2.19 →
2.41, 2.39
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.57% 0.0028 →
0.00328, 0.0033
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.29% 3400 →
3620, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -23.3% 0.00456 →
0.00562, 0.00563
TreeTools:::postorder_order(pec40) ⚪ NSD -1.23% 0.00162 →
0.00162, 0.00165
TreeTools:::postorder_order(pec40k) ⚪ NSD -1.37% 0.422 →
0.429, 0.428
TreeTools:::postorder_order(rnd80) ⚪ NSD -1.01% 0.00207 →
0.00209, 0.00209

@github-actions
Copy link

github-actions bot commented Sep 23, 2025

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

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD 2.89% 21.9 →
21.5, 20.8
as.Splits(someTrees) ⚪ NSD -0.06% 11.1 →
11.2, 11
Consensus(forest1k.888, check = FALSE) ⚪ NSD -1.79% 94 →
100, 94.2
Consensus(forest201.80, check = FALSE) ⚪ NSD -1.47% 3.97 →
4.05, 3.97
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -1.15% 1.19 →
1.21, 1.2
Consensus(forest21.260) ⚪ NSD -1.36% 1.18 →
1.21, 1.19
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -1.97% 2.91 →
2.99, 2.93
DropTip(tr2000, 5) ⚪ NSD 0.68% 20 →
19.5, 19.9
DropTip(tr80, 5) ⚪ NSD 0.69% 0.103 →
0.101, 0.103
DropTip(unlen2k, 5) ⚪ NSD 2.78% 0.215 →
0.207, 0.213
DropTip(unlen80, 5) ⚪ NSD 2.71% 0.0407 →
0.0396, 0.0396
lapply(bigSplits, as.phylo) ⚪ NSD -0.11% 27.7 →
27.6, 27.8
lapply(someSplits, as.phylo) ⚪ NSD -0.41% 13.5 →
13.6, 13.5
PathLengths(tr2000, full = TRUE) ⚪ NSD -1.27% 19.1 →
19.7, 18.8
PathLengths(tr80, full = TRUE) ⚪ NSD 3.95% 0.106 →
0.0998, 0.103
PathLengths(tr80Unif, full = TRUE) 🟢 Faster! 9.36% 0.0335 →
0.0301, 0.0304
RootTree(tr2000, 5) ⚪ NSD 1.18% 0.375 →
0.372, 0.37
RootTree(tr80, c("t3", "t36")) ⚪ NSD -0.73% 0.0685 →
0.0694, 0.0687
RootTree(tr80, "t3") ⚪ NSD 0.89% 0.0494 →
0.0486, 0.0493
RootTree(tr80, "t30") ⚪ NSD 0.99% 0.0498 →
0.0492, 0.0494
RootTree(unlen2k, 5) ⚪ NSD -1.46% 0.329 →
0.333, 0.335
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -0.86% 0.0637 →
0.0637, 0.0648
RootTree(unlen80, "t3") ⚪ NSD 1.45% 0.0437 →
0.0425, 0.0435
RootTree(unlen80, "t30") ⚪ NSD 2.36% 0.0441 →
0.0426, 0.0434
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 3.59% 0.0937 →
0.0893, 0.0915
TreeTools:::postorder_order(bal40) ⚪ NSD 1.2% 0.00167 →
0.00164, 0.00165
TreeTools:::postorder_order(bal40k) ⚪ NSD 0.09% 0.444 →
0.443, 0.443
TreeTools:::postorder_order(dbal40) ⚪ NSD -3.46% 0.00173 →
0.00182, 0.00178
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -11.39% 2.13 →
2.38, 2.38
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -17.44% 0.00253 →
0.00298, 0.00299
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -7.93% 3340 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -25.41% 0.00402 →
0.00503, 0.00505
TreeTools:::postorder_order(nbal40) ⚪ NSD -2.9% 0.00207 →
0.00212, 0.00213
TreeTools:::postorder_order(nbal40k) ⚪ NSD -8.88% 2.2 →
2.4, 2.4
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -16.71% 0.00283 →
0.00331, 0.0033
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.3% 3410 →
3630, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -23.35% 0.00455 →
0.0056, 0.00563
TreeTools:::postorder_order(pec40) ⚪ NSD 2.39% 0.00167 →
0.00162, 0.00164
TreeTools:::postorder_order(pec40k) ⚪ NSD -0.93% 0.427 →
0.429, 0.436
TreeTools:::postorder_order(rnd80) ⚪ NSD 1.43% 0.0021 →
0.00206, 0.00208

@ms609 ms609 merged commit 3ecd63e into main Sep 23, 2025
15 of 17 checks passed
@ms609 ms609 deleted the cherries branch September 23, 2025 09:22
@github-actions
Copy link

Performance benchmark results

Call Status Change Time (ms)
as.Splits(bigTrees) ⚪ NSD -1.1% 22.2 →
22.6, 21.5
as.Splits(someTrees) ⚪ NSD 1.28% 11.6 →
11.4, 11.4
Consensus(forest1k.888, check = FALSE) ⚪ NSD -2.19% 95.7 →
101, 97.8
Consensus(forest201.80, check = FALSE) ⚪ NSD -1.7% 4.02 →
4.1, 4.08
Consensus(forest21.260, 0.5, FALSE) ⚪ NSD -1.36% 1.19 →
1.21, 1.21
Consensus(forest21.260) ⚪ NSD -1.1% 1.19 →
1.2, 1.2
Consensus(forestMaj, 0.5, FALSE) ⚪ NSD -0.73% 2.99 →
3, 3.02
DropTip(tr2000, 5) ⚪ NSD -0.43% 19.7 →
19.6, 19.9
DropTip(tr80, 5) ⚪ NSD 1.84% 0.106 →
0.103, 0.104
DropTip(unlen2k, 5) ⚪ NSD -0.38% 0.208 →
0.207, 0.211
DropTip(unlen80, 5) ⚪ NSD -2.34% 0.0398 →
0.0406, 0.0409
lapply(bigSplits, as.phylo) ⚪ NSD 0.26% 27.9 →
27.8, 27.9
lapply(someSplits, as.phylo) ⚪ NSD 0.21% 13.9 →
14.2, 13.7
PathLengths(tr2000, full = TRUE) ⚪ NSD 0.56% 19.3 →
19.1, 19.3
PathLengths(tr80, full = TRUE) ⚪ NSD 2.49% 0.105 →
0.102, 0.102
PathLengths(tr80Unif, full = TRUE) ⚪ NSD 5.18% 0.0325 →
0.0324, 0.0301
RootTree(tr2000, 5) 🟣 ~same 5.88% 0.399 →
0.379, 0.373
RootTree(tr80, c("t3", "t36")) ⚪ NSD -0.53% 0.0701 →
0.071, 0.07
RootTree(tr80, "t3") ⚪ NSD 2.64% 0.0509 →
0.0493, 0.0497
RootTree(tr80, "t30") ⚪ NSD 1.03% 0.0506 →
0.05, 0.0501
RootTree(unlen2k, 5) ⚪ NSD -2.64% 0.327 →
0.336, 0.335
RootTree(unlen80, c("t3", "t36")) ⚪ NSD -1.71% 0.0648 →
0.0661, 0.0658
RootTree(unlen80, "t3") ⚪ NSD 0.3% 0.0438 →
0.0437, 0.0437
RootTree(unlen80, "t30") ⚪ NSD -0.04% 0.0443 →
0.0445, 0.0441
TreeTools:::path_lengths(tr80$edge, tr80$edge.length, FALSE) ⚪ NSD 2.37% 0.0927 →
0.0909, 0.0902
TreeTools:::postorder_order(bal40) ⚪ NSD -1.29% 0.00162 →
0.00165, 0.00164
TreeTools:::postorder_order(bal40k) ⚪ NSD -0.14% 0.446 →
0.448, 0.444
TreeTools:::postorder_order(dbal40) ⚪ NSD -2.96% 0.00172 →
0.00178, 0.00177
TreeTools:::postorder_order(dbal40k) 🟠 Slower 🙁 -11.09% 2.1 →
2.36, 2.26
TreeTools:::postorder_order(dpec40) 🟠 Slower 🙁 -18.45% 0.0025 →
0.00296, 0.00298
TreeTools:::postorder_order(dpec40k) 🟠 Slower 🙁 -6.46% 3390 →
3610, 3610
TreeTools:::postorder_order(drnd80) 🟠 Slower 🙁 -27.41% 0.00395 →
0.00504, 0.00501
TreeTools:::postorder_order(nbal40) ⚪ NSD -2.97% 0.00205 →
0.00211, 0.00212
TreeTools:::postorder_order(nbal40k) ⚪ NSD -7.73% 2.23 →
2.4, 2.42
TreeTools:::postorder_order(npec40) 🟠 Slower 🙁 -17.11% 0.00281 →
0.00329, 0.00329
TreeTools:::postorder_order(npec40k) 🟠 Slower 🙁 -6.25% 3410 →
3630, 3620
TreeTools:::postorder_order(nrnd80) 🟠 Slower 🙁 -23.67% 0.00453 →
0.0056, 0.00561
TreeTools:::postorder_order(pec40) ⚪ NSD 0.61% 0.00163 →
0.00162, 0.00162
TreeTools:::postorder_order(pec40k) ⚪ NSD 1.74% 0.431 →
0.43, 0.415
TreeTools:::postorder_order(rnd80) ⚪ NSD 1.93% 0.00206 →
0.00204, 0.002

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