Log for tdigest_test.go
-
merge upstream by Ian Wilkes 6 years ago
-
Use float64 directly for the compression option by Caio 6 years ago
-
Merge remote-tracking branch 'upstream/master' into ian.uint64 by Ian Wilkes 6 years ago
-
Use uncheckedNew() by Caio 7 years ago
-
Add TDigest.FromBytes and cleanup RNG interface by Vladimir Mihailenco 7 years ago
-
Add MergeDestructive by Vladimir Mihailenco 7 years ago
-
Remove fenwick tree by Vladimir Mihailenco 7 years ago
-
Enable fenwick tree after some threshold by Vladimir Mihailenco 7 years ago
-
Use a non-default compression value on TestClone 💬 by Caio 7 years ago
This patch makes sure we use a non-default compression value when testing the `Clone()` functionality so that we can verify it gets cloned correctly. Ref #24
-
Add TDigest.Clone and TDigest.Compression by Vladimir Mihailenco 7 years ago
-
Add benchmark by Vladimir Mihailenco 7 years ago
-
Add TrimmedMean by Vladimir Mihailenco 7 years ago
-
optimize Merge() by Ian Wilkes 7 years ago
-
Use uint64 instead of uint32 to avoid overflow issues by Eben Freeman 7 years ago
-
fix cdf for values near the last centroid by Jeff Wendling 8 years ago
-
Properly compute extreme CDFs 💬 by Caio 8 years ago
When we reach the last centroid in the summary, what we want to do is assume that the last two centroids are of equal width then estimate the CDF via a simple interpolation. Before this patch we would wrongly bound (and compute) this estimation with the last item instead of the one before the last. Fixes #17
-
Report allocations on benchmarks by Caio 8 years ago
-
Tidy things up [gometalinter] by Caio 8 years ago
-
Add tests for a heavily skewed gamma distribution 💬 by Caio 8 years ago
The code is mostly borrowed from TDigestTest.java and could easily be modified to allow testing with multiple distributions/ranges. Closes #13 Note that this patch adds a new test-only dependency but we don't use any form of dependency management - this will come in a subsequent patch.
-
Add new CDF(float64) public method by Caio 8 years ago
-
Remove TDigest.Len() from the public interface 💬 by Caio 8 years ago
I can't think of a scenario where one would really care about how many distinct centroids are in the digest, so away this goes on a major release. Adding it back in case it's needed won't require a major release.
-
Introduce TDigest.Count() 💬 by Caio 8 years ago
Expose the count of samples publicly so that users can more easily deicde what to do when the digest has too many samples.
-
Get rid of the centroid abstraction 💬 by Caio 8 years ago
This was only being used to pack {float64,uint32}, all the other functionality was skipped or became unused over time for performance reasons. Away it goes. -
Make Add take only one parameter, introduce AddWeighted 💬 by Caio 8 years ago
This patch renames the previous Add(float64,uint32) to AddWeighted and introduces a method Add(float64) which is simply an alias to AddWeighted(float64,1).
-
Make New() return an error instead of panic()ing 💬 by Caio 8 years ago
This patch now makes New() return a (*TDigest,error) tuple, which makes deserialization safe without having to trap for panic()s. The only remaining panic() is for bad input in a public function (`Quantile(float64)`). I'm keen on keeping it.
-
Introduce a parameter-less New() 💬 by Caio 8 years ago
Now `tdigest.New()` gives a sane ready-to-use-in-most-cases digest. Configuration should be done via self referential functions. Ex: // create a digest with compression of 200 tdigest.New(tdigest.Compression(200)) Notice that New() can still panic, which means that deserialization if still more dangerous than it should. -
Completely rework the quantile estimation codepath 💬 by Caio 8 years ago
This patch is too big, but there isn't much getting away from it in smaller steps because summary{} and TDigest{} are actually tightly coupled (i.e.: the abstraction is mostly useful for code organization but fails at isolation). The major changes are: - Summaries now hold repeated items instead of just unique means and their respective counts (which led to changes in how the digest adds new centroids too) - Quantile estimation is now a straight port from the reference implementation (issue-84 branch) The digest now doesn't potentially report completely wrong values on distributions with multiple steep hills nor biases in favour of big centroids with few occurrences. This patch closes #12. Some historical details for the motivation for this work can be found on PR #11. -
Make TestMerge more thorough 💬 by Caio 8 years ago
This patch makes the test use multiple partitioning configurations and a lot more items (so that we can partition and merge more). This in turn means that the whole test is significantly slower (still very tolerable though) but helps uncover subtle drifts where precision is lower.
-
Output more details when TestRespectBounds fails by Caio 8 years ago
-
Add TestSingletonInACrowd 💬 by Caio 8 years ago
Notice that this test has its exterme quantile (0.999) skipped because the java reference implementation behaves the same. Reasoning and more details on issue #12