|
1 | | -# TreeTools 2.1.0.9009 (2026-03-18) # |
| 1 | +# TreeTools 2.2.0 (2026-03-18) # |
2 | 2 |
|
3 | | -- `RCurl` moved from Imports to Suggests; `ReadMrBayesTrees()` uses |
4 | | - `RCurl::url.exists()` when available, falling back to base R `url()` for |
5 | | - URL checks. |
6 | | - |
7 | | -# TreeTools 2.1.0.9008 (2026-03-17) # |
8 | | - |
9 | | -- `PhyDatToMatrix()` no longer crashes on zero-character `phyDat` objects |
10 | | - (e.g. from a star tree); returns a 0-column matrix with correct row names. |
11 | | -- `AddUnconstrained()` handles zero-character `phyDat` input gracefully. |
12 | | - |
13 | | -# TreeTools 2.1.0.9007 (2026-03-13) # |
14 | | - |
15 | | -- `duplicated.Splits()` uses hash-based O(n) de-duplication, replacing |
16 | | - O(n²) pairwise comparison. |
17 | | - |
18 | | -# TreeTools 2.1.0.9006 (2026-03-13) # |
19 | | - |
20 | | -- `NodeDepth()` for unrooted trees rewritten as O(n) two-pass C++ algorithm, |
21 | | - replacing iterative R while-loop. |
22 | | - |
23 | | -# TreeTools 2.1.0.9005 (2026-03-13) # |
24 | | - |
25 | | -- `SplitFrequency(reference = NULL)` performance improvements: |
26 | | - split normalization moved to C++; internal split de-duplication uses |
27 | | - hash map instead of ordered map. |
28 | | - |
29 | | -# TreeTools 2.1.0.9003 (2026-03-09) # |
| 3 | +## New functionality |
30 | 4 |
|
31 | | -- `inst/include/TreeTools/tree_number.h` added to support downstream packages |
32 | | - (e.g. TBRDist) via `LinkingTo: TreeTools`. Provides 256-bit tree number |
33 | | - encoding/decoding supporting up to 51 leaves, extended from the 44-leaf |
34 | | - limit of the previous `uint64_t`-based implementation. |
| 5 | +- `EdgeRatio()` reports the ratio of external:internal edges. |
| 6 | +- `SplitInformation()` supports `Splits` and `phylo` objects. |
| 7 | +- `sort` and `order` support `Splits` objects. |
| 8 | +- `SplitFrequency(reference = NULL)` returns frequency of all splits. |
35 | 9 | - `as.TreeNumber()` now supports trees with up to 51 leaves (previously 19). |
36 | 10 | Trees with 20–51 leaves have more than 2^64 distinct topologies, so their |
37 | 11 | `TreeNumber` is stored as a decimal character string rather than `integer64`. |
38 | 12 | The 19-leaf limit for `integer64`-backed storage (and `as.MixedBase()` |
39 | 13 | round-trips) is unchanged. |
40 | 14 | - `as.TreeNumber()` no longer warns for trees with 20–44 leaves. |
| 15 | +- `inst/include/TreeTools/tree_number.h` added to support downstream packages |
| 16 | + (e.g. TBRDist) via `LinkingTo: TreeTools`. Provides 256-bit tree number |
| 17 | + encoding/decoding supporting up to 51 leaves, extended from the 44-leaf |
| 18 | + limit of the previous `uint64_t`-based implementation. |
41 | 19 |
|
42 | | -# TreeTools 2.1.0.9001 (2026-02-19) # |
| 20 | +## Performance |
43 | 21 |
|
44 | | -- `EdgeRatio()` reports the ratio of external:internal edges. |
| 22 | +- `SplitFrequency(reference = NULL)`: split normalization moved to C++; |
| 23 | + internal split de-duplication uses hash map instead of ordered map. |
| 24 | +- `NodeDepth()` for unrooted trees rewritten as O(n) two-pass C++ algorithm, |
| 25 | + replacing iterative R while-loop. |
| 26 | +- `duplicated.Splits()` uses hash-based O(n) de-duplication, replacing |
| 27 | + O(n²) pairwise comparison. |
45 | 28 |
|
46 | | -# TreeTools 2.1.0.9000 (2026-02-16) # |
| 29 | +## Fixes |
47 | 30 |
|
48 | | -- `SplitInformation()` supports `Splits` and `phylo` objects. |
49 | | -- `sort` and `order` support `Splits` objects. |
50 | | -- `SplitFrequency(reference = NULL)` returns frequency of all splits. |
| 31 | +- `PhyDatToMatrix()` no longer crashes on zero-character `phyDat` objects |
| 32 | + (e.g. from a star tree); returns a 0-column matrix with correct row names. |
| 33 | +- `AddUnconstrained()` handles zero-character `phyDat` input gracefully. |
| 34 | + |
| 35 | +## Dependencies |
| 36 | + |
| 37 | +- `RCurl` moved from Imports to Suggests; `ReadMrBayesTrees()` uses |
| 38 | + `RCurl::url.exists()` when available, falling back to base R `url()` for |
| 39 | + URL checks. |
51 | 40 |
|
52 | 41 |
|
53 | 42 | # TreeTools 2.1.0 (2026-02-10) # |
|
0 commit comments