Log for tdigest_test.go
-
Breaking: add Clone method to RNG interface by Caio 4 months ago
-
Optimize Merge() when the receiver is empty ๐ฌ by Caio 4 months ago
This makes reusing an existing TDigest (through Reset()) a reasonable alternative to Clone() goos: linux goarch: amd64 pkg: github.com/caio/go-tdigest/v4 cpu: AMD Ryzen 7 PRO 4750U with Radeon Graphics โ old.txt โ new.txt โ โ sec/op โ sec/op vs base โ MergeEmpty-16 98.035ยต ยฑ 2% 3.189ยต ยฑ 6% -96.75% (p=0.000 n=10) -
New lint fixes by Caio 11 months ago
-
lint fixes by Caio 2 years ago
-
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.