{
const variable_pair *vp = aux;
- return case_data (c, (*vp)[0])->f - case_data (c, (*vp)[1])->f;
+ return case_num (c, (*vp)[0]) - case_num (c, (*vp)[1]);
}
static void show_ranks_box (const struct wilcoxon_state *,
const struct dictionary *dict = dataset_dict (ds);
const struct two_sample_test *t2s = UP_CAST (test, const struct two_sample_test, parent);
- struct wilcoxon_state *ws = xcalloc (t2s->n_pairs, sizeof *ws);
+ struct wilcoxon_state *ws = XCALLOC (t2s->n_pairs, struct wilcoxon_state);
const struct variable *weight = dict_get_weight (dict);
struct variable *weightx = dict_create_internal_var (WEIGHT_IDX, 0);
struct caseproto *proto;
if (weight != NULL)
proto = caseproto_add_width (proto, 0);
- for (i = 0 ; i < t2s->n_pairs; ++i )
+ for (i = 0 ; i < t2s->n_pairs; ++i)
{
struct casereader *r = casereader_clone (input);
struct casewriter *writer;
subcase_init_var (&ordering, ws[i].absdiff, SC_ASCEND);
writer = sort_create_writer (&ordering, proto);
- subcase_destroy (&ordering);
+ subcase_uninit (&ordering);
for (; (c = casereader_read (r)) != NULL; case_unref (c))
{
double d = append_difference (c, 0, vp);
if (d > 0)
- {
- case_data_rw (output, ws[i].sign)->f = 1.0;
-
- }
+ *case_num_rw (output, ws[i].sign) = 1.0;
else if (d < 0)
- {
- case_data_rw (output, ws[i].sign)->f = -1.0;
- }
+ *case_num_rw (output, ws[i].sign) = -1.0;
else
{
double w = 1.0;
if (weight)
- w = case_data (c, weight)->f;
+ w = case_num (c, weight);
/* Central point values should be dropped */
ws[i].n_zeros += w;
continue;
}
- case_data_rw (output, ws[i].absdiff)->f = fabs (d);
+ *case_num_rw (output, ws[i].absdiff) = fabs (d);
if (weight)
- case_data_rw (output, weightx)->f = case_data (c, weight)->f;
+ *case_num_rw (output, weightx) = case_num (c, weight);
casewriter_write (writer, output);
}
}
caseproto_unref (proto);
- for (i = 0 ; i < t2s->n_pairs; ++i )
+ for (i = 0 ; i < t2s->n_pairs; ++i)
{
struct casereader *rr ;
struct ccase *c;
rr = casereader_create_append_rank (ws[i].reader, ws[i].absdiff,
weight ? weightx : NULL, &err,
distinct_callback, &ws[i]
- );
+ );
for (; (c = casereader_read (rr)) != NULL; case_unref (c))
{
- double sign = case_data (c, ws[i].sign)->f;
- double rank = case_data_idx (c, weight ? 3 : 2)->f;
- double w = 1.0;
- if (weight)
- w = case_data (c, weightx)->f;
+ double sign = case_num (c, ws[i].sign);
+ double rank = case_num_idx (c, weight ? 3 : 2);
+ double w = weight ? case_num (c, weightx) : 1.0;
- if ( sign > 0 )
+ if (sign > 0)
{
ws[i].positives.sum += rank * w;
ws[i].positives.n += w;
show_ranks_box (ws, t2s, dict);
show_tests_box (ws, t2s, exact, timer);
- for (i = 0 ; i < t2s->n_pairs; ++i )
+ for (i = 0 ; i < t2s->n_pairs; ++i)
{
dict_destroy_internal_var (ws[i].sign);
dict_destroy_internal_var (ws[i].absdiff);