X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Ftukey-hinges.c;h=99a42cdac8be36e24f44eeea816ebd8e9944493e;hb=refs%2Fheads%2Fpivot-table2;hp=95a79c1d30026da280cbc6fa2542518c0ff4ad1f;hpb=57250685f977998fbfcb495f53e61c64026fe43e;p=pspp diff --git a/src/math/tukey-hinges.c b/src/math/tukey-hinges.c index 95a79c1d30..99a42cdac8 100644 --- a/src/math/tukey-hinges.c +++ b/src/math/tukey-hinges.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2008 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,13 +15,17 @@ along with this program. If not, see . */ #include -#include "tukey-hinges.h" -#include -#include -#include +#include "math/tukey-hinges.h" + #include +#include "libpspp/assertion.h" +#include "libpspp/cast.h" +#include "math/order-stats.h" + +#include "gl/xalloc.h" + void tukey_hinges_calculate (const struct tukey_hinges *th, double hinge[3]) { @@ -59,24 +63,25 @@ tukey_hinges_calculate (const struct tukey_hinges *th, double hinge[3]) static void destroy (struct statistic *s) { - struct order_stats *os = (struct order_stats *) s; + struct tukey_hinges *th = UP_CAST (s, struct tukey_hinges, parent.parent); + struct order_stats *os = &th->parent; free (os->k); free (s); }; -struct statistic * +struct tukey_hinges * tukey_hinges_create (double W, double c_min) { double d; struct tukey_hinges *th = xzalloc (sizeof (*th)); - struct order_stats *os = (struct order_stats *) th; - struct statistic *stat = (struct statistic *) th; + struct order_stats *os = &th->parent; + struct statistic *stat = &os->parent; assert (c_min >= 0); os->n_k = 3; - os->k = xcalloc (sizeof (*os->k), 3); + os->k = xcalloc (3, sizeof (*os->k)); if ( c_min >= 1.0) { @@ -97,5 +102,5 @@ tukey_hinges_create (double W, double c_min) stat->destroy = destroy; - return stat; + return th; }