I'm pleased to announce a major release of of the Haskell statistics library, version 0.10.0.0.
I'd particularly like to thank Alexey Khudyakov for his wonderful work on this release.
New features:
Student-T, Fisher-Snedecor, F-distribution, and Cauchy-Lorentz distributions are added.
Histogram computation is added, in
Sample.Histogram
.Forward and inverse discrete Fourier and cosine transforms are added, in
Transform
.Root finding is added, in
Math.RootFinding
.
Major changes:
The
Sample.KernelDensity
module has been renamed, and completely rewritten to be much more robust. The older module oversmoothed multi-modal data. (The older module is still available under the nameSample.KernelDensity.Simple
).The type classes
Mean
andVariance
are split in two. This is required for distributions which do not have finite variance or mean.
Smaller changes:
The
complCumulative
function is added to theDistribution
class in order to accurately assess probalities P(X>x) which are used in one-tailed tests.A
stdDev
function is added to theVariance
class for distributions.The constructor
Distribution.normalDistr
now takes standard deviation instead of variance as its parameter.A bug in
Quantile.weightedAvg
is fixed. It produced a wrong answer if a sample contained only one element.Bugs in quantile estimations for chi-square and gamma distribution are fixed.
Integer overlow in
mannWhitneyUCriticalValue
is fixed. It produced incorrect critical values for moderately large samples. Something around 20 for 32-bit machines and 40 for 64-bit ones.A bug in
mannWhitneyUSignificant
is fixed. If either sample was larger than 20, it produced a completely incorrect answer.One- and two-tailed tests in
Tests.NonParametric
are selected with sum types instead ofBool
.Test results returned as enumeration instead of
Bool
.Performance improvements for Mann-Whitney U and Wilcoxon tests.
Module
Tests.NonParamtric
is split intoTests.MannWhitneyU
andTests.WilcoxonT
sortBy
is added toFunction
.Mean and variance for gamma distribution are fixed.
Much faster cumulative probablity functions for Poisson and hypergeometric distributions.
Better density functions for gamma and Poisson distributions.
The function
Function.create
is removed. UsegenerateM
from thevector
package instead.A function to perform approximate comparion of doubles is added to
Function.Comparison
.Regularized incomplete beta function and its inverse are added to
Function
.
I think Don Stewart posted it to Google+ but somehow I came across a story about you using Quickcheck to find a bug in your FFT implementation, I was wondering if you would consider writing a blog post about how you approached that? I’ve used QuickCheck to test some simple things (is an associative operator really associative, etc.), but I’d be curious to know how you used Quickcheck to test something like the FFT.
Incidentally the last time I implemented the FFT in C++ I had a bug in essentially the same place that you did, but it took me several days to find it 😛 So I’m quite interested 😉
Anyway, congrats on the new release. Looking good!
Someone on Reddit reported that Criterion’s upper bound needs to be fixed:
“Seems criterion has bad upper version boundaries for the statistics package… :-/
Registering statistics-0.10.0.0…
Configuring criterion-0.5.1.0…
Building criterion-0.5.1.0…
Preprocessing library criterion-0.5.1.0…
Criterion.hs:43:8:
Could not find module `Statistics.KernelDensity’
Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
criterion-0.5.1.0 failed during the building phase. The exception was:
ExitFailure 1″