An efficient Rust implementation of the t-digest algorithm, which allows accurate estimation of quantiles and relative rank over streaming data.
- 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.
Add the following to your Cargo.toml
:
[dependencies]
tdigests = 0.1
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);
}
See the simple.rs
for a complete example demonstrating how to use the t-digest library.
Contributions are welcome! Please open issues or submit pull requests on the GitHub repository.
This project is licensed under the MIT License.