/* 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
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
+
#include "box-whisker.h"
-#include "order-stats.h"
-#include "tukey-hinges.h"
-#include <gl/xalloc.h>
-#include <libpspp/assertion.h>
+
#include <math.h>
#include <float.h>
-#include <data/val-type.h>
-#include <libpspp/str.h>
-#include <data/case.h>
-#include <data/variable.h>
+
+#include "data/case.h"
+#include "data/val-type.h"
+#include "data/variable.h"
+#include "libpspp/assertion.h"
+#include "libpspp/cast.h"
+#include "libpspp/str.h"
+#include "math/order-stats.h"
+#include "math/tukey-hinges.h"
+
+#include "gl/xalloc.h"
static void
destroy (struct statistic *s)
{
- struct order_stats *os = (struct order_stats *) s;
- struct box_whisker *bw = (struct box_whisker *) s;
+ struct box_whisker *bw = UP_CAST (s, struct box_whisker, parent.parent);
+ struct order_stats *os = &bw->parent;
struct ll *ll;
for (ll = ll_head (&bw->outliers); ll != ll_null (&bw->outliers); )
acc (struct statistic *s, const struct ccase *cx,
double c UNUSED, double cc UNUSED, double y)
{
- struct box_whisker *bw = (struct box_whisker *) s;
+ struct box_whisker *bw = UP_CAST (s, struct box_whisker, parent.parent);
bool extreme;
struct outlier *o;
const struct variable *id_var, size_t casenumber_idx)
{
struct box_whisker *w = xzalloc (sizeof (*w));
- struct order_stats *os = (struct order_stats *) w;
- struct statistic *stat = (struct statistic *) w;
+ struct order_stats *os = &w->parent;
+ struct statistic *stat = &os->parent;
os->n_k = 0;