X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fnp.c;h=598c05e84b22ce1536d0e98051031518158779e4;hb=a4b0d14666d23ed908fd991b7435997436c2d79a;hp=d36acc2a6192c7b7f81b4884ebc299bc95ca2b1f;hpb=b46b794dfb9f0758aafec83f50993d1930894099;p=pspp diff --git a/src/math/np.c b/src/math/np.c index d36acc2a61..598c05e84b 100644 --- a/src/math/np.c +++ b/src/math/np.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2008, 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 @@ -15,25 +15,27 @@ along with this program. If not, see . */ #include -#include "np.h" + +#include "math/np.h" #include #include #include -#include -#include -#include -#include -#include +#include "data/case.h" +#include "data/casewriter.h" +#include "libpspp/cast.h" +#include "libpspp/compiler.h" +#include "libpspp/misc.h" +#include "math/moments.h" -#include "xalloc.h" +#include "gl/xalloc.h" static void destroy (struct statistic *stat) { - struct order_stats *os = (struct order_stats *) stat; - free (os); + struct np *np = UP_CAST (stat, struct np, parent.parent); + free (np); } @@ -42,7 +44,7 @@ acc (struct statistic *s, const struct ccase *cx UNUSED, double c, double cc, double y) { struct ccase *cp; - struct np *np = (struct np *) s; + struct np *np = UP_CAST (s, struct np, parent.parent); double rank = np->prev_cc + (c + 1) / 2.0; double ns = gsl_cdf_ugaussian_Pinv (rank / ( np->n + 1 )); @@ -70,9 +72,8 @@ acc (struct statistic *s, const struct ccase *cx UNUSED, } struct np * -np_create (const struct moments1 *m) +np_create (double n, double mean, double var) { - double variance; struct np *np = xzalloc (sizeof (*np)); struct order_stats *os = &np->parent; struct statistic *stat = &os->parent; @@ -81,9 +82,10 @@ np_create (const struct moments1 *m) np->prev_cc = 0; - moments1_calculate (m, &np->n, &np->mean, &variance, NULL, NULL); + np->n = n; + np->mean = mean; - np->stddev = sqrt (variance); + np->stddev = sqrt (var); np->y_min = np->ns_min = np->dns_min = DBL_MAX; np->y_max = np->ns_max = np->dns_max = -DBL_MAX;