Skip to content

WireBaron/t-digest

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

T-Digest algorithm in rust

Build Status codecov

This implementation is following Facebook folly's implementation

Installation

Add this to your Cargo.toml:

[dependencies]
tdigest = "0.2"

then you are good to go. If you are using Rust 2015 you have to extern crate tdigest to your crate root as well.

Example

use tdigest::TDigest;

let t = TDigest::new_with_size(100);
let values: Vec<f64> = (1..=1_000_000).map(f64::from).collect();
let t = t.merge_sorted(values);
let ans = t.estimate_quantile(0.99);
let expected: f64 = 990_000.0;
let percentage: f64 = (expected - ans).abs() / expected;

assert!(percentage < 0.01);

About

t-digest in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%