2 releases
0.1.1 | Oct 31, 2024 |
---|---|
0.1.0 | Oct 31, 2024 |
#361 in Algorithms
403 downloads per month
30KB
516 lines
T-Digest Rust Library
An efficient Rust implementation of the t-digest algorithm, which allows accurate estimation of quantiles and relative rank over streaming data.
Features
- Quantile Estimation: Compute approximate quantiles (e.g., median, percentiles) from large datasets.
- Streaming Data: Suitable for online computation where data arrives incrementally.
- Merging Digests: Supports merging t-digests from different data partitions, ideal for distributed systems.
- Compression: Adjustable compression factor to balance accuracy and memory usage.
- Simple State: Minimal state structure for easy serialization and deserialization.
Installation
Add the following to your Cargo.toml
:
[dependencies]
tdigests = 0.1
Usage
use tdigests::TDigest;
fn main() {
// Create a new t-digest
let digest = TDigest::from_values(vec![1.0, 2.0, 3.0]);
// Estimate quantiles
let median = digest.estimate_quantile(0.5);
println!("Estimated median: {}", median);
// Estimate rank
let rank = digest.estimate_rank(2.5);
println!("Rank of 2.5: {}", rank);
}
Examples
See the simple.rs
for a complete example demonstrating how to use the t-digest library.
Contributing
Contributions are welcome! Please open issues or submit pull requests on the GitHub repository.
License
This project is licensed under the MIT License.