Vinzent Steinberg
e4345f5046
impl FromIterator<&f64> and FromIterator<&(f64, f64)>
...
This allows to write
let k: Kurtosis = a.iter().collect();
instead of
let k: Kurtosis = a.iter().map(|x| *x).collect();
but breaks type inference for code like
let m: Min = (1..6).map(Into::into).collect();
where
let m: Min = (1..6).map(f64::from).collect();
has to be used instead.
Fixes #8 .
2018-02-28 23:44:40 +01:00
Vinzent Steinberg
68a4fa64cb
Restore compatibility with stable
2018-01-12 14:23:38 +01:00
Vinzent Steinberg
a6a477d621
Benchmark generic vs. handwritten implementation of kurtosis
...
Also restore no_std and remove printing left over from debugging.
2018-01-11 19:37:25 +01:00
Vinzent Steinberg
785e2141e0
Moments: Refactor merge to be in-place
2018-01-11 19:30:51 +01:00
Vinzent Steinberg
0d6cf939d1
Clarify type of kurtosis
2018-01-11 19:22:11 +01:00
Vinzent Steinberg
df099b61da
Moments::merge: Calculate binomial iteratively
2018-01-11 19:19:56 +01:00
Vinzent Steinberg
9f2a8ee44f
Moments: Test merge
2018-01-11 19:16:11 +01:00
Vinzent Steinberg
49ce6c5256
Moments::add: Calculate binomials iteratively
2018-01-11 19:07:57 +01:00
Vinzent Steinberg
3fd3bc4ac9
Moments: Refactor add to be in-place
2018-01-11 19:00:59 +01:00
Vinzent Steinberg
608a9733cd
Code clean-up and more impls for Moments
2018-01-11 18:39:49 +01:00
Vinzent Steinberg
c1fab4722c
Implement incremental calculation of arbitrary moments
2018-01-11 18:29:43 +01:00
Vinzent Steinberg
4bcc52ef25
Reenable clippy lint that no longer gives false positives
2018-01-10 16:04:29 +01:00
Eh2406
982acc9bf6
clippy
2017-12-20 16:59:51 -05:00
Vinzent Steinberg
5963cbb032
Fix typos
2017-12-20 14:55:09 +01:00
Eh2406
e41ae320ac
Add to docs
2017-12-18 12:14:24 -05:00
Eh2406
b26652f2a7
inline reduce to make minmax compatibal with serde
2017-12-17 22:53:50 -05:00
Eh2406
046f47a0c2
add a feature = "serde"
2017-12-17 22:11:11 -05:00
Vinzent Steinberg
7f6d1a12c2
Move quantile tests to external file if possible
2017-11-19 10:50:59 +01:00
Vinzent Steinberg
5656156660
Fix a negative underflow when calculating quantiles
...
Fixes #5 .
2017-11-19 10:31:00 +01:00
Vinzent Steinberg
57f9d13434
Merge branch 'percentile-99-9' of https://github.com/niklasf/average into panic
2017-11-19 10:17:59 +01:00
Vinzent Steinberg
6568725139
Merge branch 'master' of https://github.com/vks/average
2017-11-19 10:13:41 +01:00
Niklas Fiekas
f7ee0b1127
Panic when using quantile close to 1
2017-11-18 12:22:58 +01:00
Eric Culp
d8d171e025
Fix compile on 32-bit
...
Fix #3
2017-11-12 16:42:48 -08:00
Eh2406
b8d31c80ee
clarify types for rust/pull/44287
2017-09-13 23:35:53 -04:00
Vinzent Steinberg
dc25fd1687
Add a reference for calculating quantiles
2017-06-27 12:45:04 +02:00
Vinzent Steinberg
0098668d3b
Add a reference for calculating moments
2017-06-27 12:40:09 +02:00
Vinzent Steinberg
9daef2c101
Add missing file
2017-06-27 09:58:37 +02:00
Vinzent Steinberg
5d6d67bac9
Move add
and merge
to trait
...
This should make it possible to write more generic code.
2017-06-25 15:39:12 +02:00
Vinzent Steinberg
d5b3fc80ab
More code deduplication
2017-06-23 17:43:42 +02:00
Vinzent Steinberg
9313307ae9
Reduce code duplication by using a macro
2017-06-23 16:47:11 +02:00
Vinzent Steinberg
2012479430
Document what is implemented by concatenate
2017-06-21 19:41:25 +02:00
Vinzent Steinberg
9b055e4c0b
Make sure concatenate
inlines
2017-06-21 19:35:17 +02:00
Vinzent Steinberg
fd72100913
Improve documentation
2017-06-21 19:34:51 +02:00
Vinzent Steinberg
f698e4dc50
Improve concatenate
to support several statistics from one estimator
2017-06-21 19:29:25 +02:00
Vinzent Steinberg
2b960310ce
Implement Default
for Quantile
2017-06-21 19:23:53 +02:00
Vinzent Steinberg
01157da831
Macro for concatenating iterative estimators
2017-06-21 18:05:54 +02:00
Vinzent Steinberg
83aa052040
Fix a clippy warning
2017-05-30 11:18:25 +02:00
Vinzent Steinberg
20521ac22c
Disable some noisy clippy warnings
2017-05-30 10:54:14 +02:00
Vinzent Steinberg
d68a138d86
Implement Default
for Min
and Max
2017-05-30 10:43:57 +02:00
Vinzent Steinberg
eafe23b568
Add example
2017-05-29 00:58:25 +02:00
Vinzent Steinberg
c6f3bb6d99
Use mean instead of average in docs
2017-05-29 00:42:33 +02:00
Vinzent Steinberg
0705c3f61f
Fix typo
2017-05-29 00:40:16 +02:00
Vinzent Steinberg
80e92f6176
Update documentation
2017-05-29 00:39:33 +02:00
Vinzent Steinberg
b8e980d6ce
Implement kurtosis
...
Also improve skewness tests.
2017-05-28 23:33:16 +02:00
Vinzent Steinberg
4f5ddbd6e9
Implement skewness and add missing inline annotations
2017-05-28 22:37:48 +02:00
Vinzent Steinberg
978f6ec10e
Make increment
and add_inner
private
...
They mess up invariants if not used correctly and don't have to be public
anymore.
2017-05-28 21:15:59 +02:00
Vinzent Steinberg
30622be775
Rename average to mean for consistency
2017-05-28 21:13:47 +02:00
Vinzent Steinberg
712303b58a
Split up moments into one file for each
...
This anticipates adding skewness.
2017-05-28 21:00:04 +02:00
Vinzent Steinberg
19127cede7
Calculate average in terms of delta/n
...
This will avoid divisions in the inner loop when calculating higher
moments.
2017-05-28 20:30:05 +02:00
Vinzent Steinberg
9bf56690e6
Make sure quantile works for small samples
...
Before it was returning wrong results for samples with less than 5
elements.
Also mention that average and quantile will be 0 for empty samples.
2017-05-28 14:03:53 +02:00
Vinzent Steinberg
46c7220c9a
Don't use as
2017-05-28 12:45:58 +02:00
Vinzent Steinberg
64a08a073a
Panic for invalid p values
2017-05-28 12:44:30 +02:00
Vinzent Steinberg
95a2a1d409
Implement quantile
2017-05-25 15:42:53 +02:00
Vinzent Steinberg
cfab296f58
Improve documentation
2017-05-24 19:45:58 +02:00
Vinzent Steinberg
0d1e1c4f12
Implement Max
2017-05-24 19:17:52 +02:00
Vinzent Steinberg
c1af508205
Inline everything
2017-05-24 19:17:52 +02:00
Vinzent Steinberg
30ea084366
Generalize Min
implementation
2017-05-24 19:17:52 +02:00
Vinzent Steinberg
d2ebdc27c3
Implement Min
2017-05-24 19:17:46 +02:00
Vinzent Steinberg
a95ab05c10
Factor out calculation of average
...
Now it is possible to calculate the average without calculating the
error.
2017-05-24 11:33:15 +02:00
Vinzent Steinberg
962adb91d7
Rename Average
to AverageWithError
...
This anticipates an implementation that does not calculate the error.
2017-05-24 11:32:24 +02:00
Vinzent Steinberg
4fa92eb9e0
Improve performance by making sure add
is inlined
2017-05-23 21:10:50 +02:00
Vinzent Steinberg
262d5c88da
Improve docs
2017-05-22 18:47:46 +02:00
Vinzent Steinberg
9bb501116d
Reduce code duplication
2017-05-22 13:55:11 +02:00
Vinzent Steinberg
77fa8b4ed2
Remove inferior estimate of error of weighted average
...
It was a biased estimator, while the alternative one isn't.
2017-05-22 13:24:57 +02:00
Vinzent Steinberg
334d8ae9cd
Improve documentation
2017-05-19 17:53:54 +02:00
Vinzent Steinberg
ed4c11e31d
Improve documentation of different weighted mean standard errors
2017-05-19 16:38:40 +02:00
Vinzent Steinberg
d25f267529
Move some tests from src to tests
2017-05-19 15:54:13 +02:00
Vinzent Steinberg
fbdb247a0e
Implement WinCross estimator of standard error of weighted average
2017-05-19 15:38:39 +02:00
Vinzent Steinberg
eb0fa41619
Commit to SPSS estimator of standard error of weighted average
...
Before we were calculating some quantities not strictly needed for this.
2017-05-19 14:47:00 +02:00
Vinzent Steinberg
34a8aadb35
Implement merge for weighted average
2017-05-16 17:47:00 +02:00
Vinzent Steinberg
e54d4aba8b
Calculate standard error of weighted mean
...
Also improve the documentation a bit.
2017-05-05 20:36:10 +02:00
Vinzent Steinberg
0488d6f105
Implement weighted average
2017-05-05 19:07:03 +02:00
Vinzent Steinberg
068381f366
Refactor code into more files
2017-05-05 17:42:21 +02:00
Vinzent Steinberg
53b44d1a13
Add test comparing to streaming-stats
2017-05-05 16:40:23 +02:00
Vinzent Steinberg
a5aa7df51d
Make benchmarks work on stable
2017-05-05 16:20:44 +02:00
Vinzent Steinberg
afd46067a9
Improve documentation
2017-05-05 16:04:51 +02:00
Vinzent Steinberg
c75ffc01f1
Add example
2017-05-05 15:59:50 +02:00
Vinzent Steinberg
562588e438
Rename error
to err
2017-05-05 15:49:28 +02:00
Vinzent Steinberg
df8c280d7e
More documentation
2017-05-05 15:45:05 +02:00
Vinzent Steinberg
c740a60bf4
Fix a typo and a numerically unstable test
2017-05-05 15:41:41 +02:00
Vinzent Steinberg
3178edcde6
Implement merging of averages
2017-05-05 15:33:02 +02:00
Vinzent Steinberg
b5f542d4a9
Add a reference
2017-05-05 14:18:09 +02:00
Vinzent Steinberg
2b6aa2e37e
Refactor algorithm slightly
2017-05-05 14:16:34 +02:00
Vinzent Steinberg
52f9e1e5f0
Clarify names of variances
2017-05-05 14:10:15 +02:00
Vinzent Steinberg
a1e432051e
Merge branch 'master' of https://github.com/vks/average
2017-05-05 13:44:02 +02:00
Vinzent Steinberg
665ac26333
Add some benchmarks
2017-05-05 13:22:45 +02:00
Vinzent Steinberg
16b4f48338
Rename avg to mean
2017-05-05 13:17:13 +02:00
Vinzent Steinberg
a98e259f5f
Improve example
2017-05-05 13:10:25 +02:00
Vinzent Steinberg
70202725e2
Small improvements
2017-05-05 13:08:34 +02:00
Vinzent Steinberg
08b53db766
Add statistical test
2017-05-04 11:17:50 +02:00
Vinzent Steinberg
c0d559a2a2
Docs, no_std, crate metadata
2017-04-26 20:43:00 +02:00
Vinzent Steinberg
7823ebe622
Initial commit
2017-04-26 20:24:20 +02:00