Log
-
Merge pull request #18 from zeebo/cdf-fix 💬 by Caio 8 years ago
fix cdf for values near the last centroid Fixes #17
-
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
-
Update more examples using the old New() api by Caio 8 years ago
-
Make the example actually compile :flushed: by Caio 8 years ago
-
Fix misspell by Caio 8 years ago
-
Merge pull request #15 from nathanleclaire/nathanleclaire-fix-readme-typo-1 💬 by Caio 8 years ago
Fix typo
-
Fix typo by Nathan LeClaire 8 years ago
-
Test go's tip, but don't wait for it 💬 by Caio 8 years ago
On 1804f1cf2b I stopped testing `tip` because it was too slow, but it seems like I can test it, but ignore its results and check for test suite completion without waiting for it.
-
Report allocations on benchmarks by Caio 8 years ago
-
Use a fenwick tree to optimize prefix sums 💬 by Caio 8 years ago
This patch makes summary use the excellent fenwick package from https://github.com/yourbasic/fenwick to dramatically speed up Add() calls while adding a bounded cost to memory. benchmark old ns/op new ns/op delta BenchmarkAdd1-4 187 206 +10.16% BenchmarkAdd10-4 332 274 -17.47% BenchmarkAdd100-4 1092 325 -70.24% The tree creation could be faster, but profiling has shown that it doesn't seem to be that much of a problem (that's because `summary.setAt()` happens a *lot* more than `summary.Add()`) -
Refactor TDigest.AddWeighted 💬 by Caio 8 years ago
This patch simply extracts some functionality into a couple a new private methods: findNeighbors and chooseMergeCandidate
-
Tidy things up [gometalinter] by Caio 8 years ago
-
Add a basic .gitignore by Caio 8 years ago
-
More README tweaks 💬 by Caio 8 years ago
Now we frame gopkg.in secondly since the expected preferred installation method is soon gonna be via `get+dep`
-
Make travis use `dep` when testing by Caio 8 years ago
-
Control dependencies via dep 💬 by Caio 8 years ago
This patch freezes the go_rng dependency to a particular commit since the project doesn't tag its stable releases.
-
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
-
Add a simple CONTRIBUTING.md guide by Caio 8 years ago
-
Beef the README up a bit 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.
-
Tweak the docs a bit 💬 by Caio 8 years ago
Paragraphs are good!
-
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.
-
Change TDigest.count to uint64 (was uint32) 💬 by Caio 8 years ago
So now we can register more than 4B samples and still reply with valid quantile estimations, but notice that centroid counts are still uint32 and that `t.count` is used for floating point divisions across the algorithms so a really big count is not really desirable. Individual centroid counts wrapping around uint32 is a pathological scenario that can totally be simulated and treated for, but that would mean a lot of extra comparisons added in the critical path, so I prefer to leave that to the user's decision.
-
Update README with configuration notes by Caio 8 years ago
-
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. -
Expose options to change the RNG being used 💬 by Caio 8 years ago
This patch creates a new public interface `TDigestRNG` and exposes two new options: - tdigest.RandomNumberGenerator(TDigestRNG) - tdigest.LocalRandomNumberGenerator(seed)
-
Abstract math/rand usage into the TDigestRNG interface by Caio 8 years ago
-
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).