- w->casenumber_idx = casenumber_idx;
- w->id_var = id_var;
-
- w->step = (w->hinges[2] - w->hinges[0]) * 1.5;
-
- w->whiskers[1] = w->hinges[2];
- w->whiskers[0] = SYSMIS;
-
- ll_init (&w->outliers);
-
- return stat;
+ id_idx is the index into the casereader which will be used to label
+ outliers.
+ id_var is the variable from which that label came, or NULL
+*/
+struct box_whisker *
+box_whisker_create (const struct tukey_hinges *th,
+ size_t id_idx, const struct variable *id_var)
+{
+ double hinges[3];
+ tukey_hinges_calculate (th, hinges);
+
+ struct box_whisker *w = xmalloc (sizeof *w);
+ *w = (struct box_whisker) {
+ .parent = {
+ .parent = {
+ .accumulate = acc,
+ .destroy = destroy,
+ },
+ },
+ .hinges = { hinges[0], hinges[1], hinges[2] },
+ .whiskers = { SYSMIS, hinges[2] },
+ .outliers = LL_INITIALIZER (w->outliers),
+ .step = (hinges[2] - hinges[0]) * 1.5,
+ .id_idx = id_idx,
+ .id_var = id_var,
+ };
+
+ return w;