X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fcorrelation.c;h=e7ebd1f52dbc94ac8469af1c23b68eefe715547d;hb=75e7e4241ba2424c3803548bcf2da0382faf7349;hp=303b48bcfaccb89098fabaa426f628d50323a2a3;hpb=50ac6802fc247814dc4dd6232f6304b928a2d78b;p=pspp diff --git a/src/math/correlation.c b/src/math/correlation.c index 303b48bcfa..e7ebd1f52d 100644 --- a/src/math/correlation.c +++ b/src/math/correlation.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,20 +16,27 @@ #include -#include "correlation.h" +#include "math/correlation.h" #include #include #include -#include -#include "minmax.h" + +#include "libpspp/misc.h" + +#include "gl/minmax.h" double significance_of_correlation (double rho, double w) { double t = w - 2; + + /* |rho| will mathematically always be in the range [0, 1.0]. Inaccurate + calculations sometimes cause it to be slightly greater than 1.0, so + force it into the correct range to avoid NaN from sqrt(). */ t /= 1 - MIN (1, pow2 (rho)); + t = sqrt (t); t *= rho;