X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fmeans.c;h=4ebd60d83ab496239d21ef1a556e44ebeefd75c4;hb=c5d4a219c4f28f2a0adb223be62fe4bb8df02f8f;hp=27a2457052243ce71b896cabd7d722570cf08b74;hpb=5164eb1bfa0527dcb32248fb1fc7db55c2bcc94c;p=pspp diff --git a/src/language/stats/means.c b/src/language/stats/means.c index 27a2457052..4ebd60d83a 100644 --- a/src/language/stats/means.c +++ b/src/language/stats/means.c @@ -300,7 +300,7 @@ generate_cell (const struct means *means, const struct workspace *ws) { int n_vars = count_one_bits (not_wild); - struct cell *cell = xzalloc ((sizeof *cell)); + struct cell *cell = XZALLOC (struct cell); cell->values = xcalloc (n_vars, sizeof *cell->values); cell->vars = xcalloc (n_vars, sizeof *cell->vars); cell->not_wild = not_wild; @@ -751,7 +751,6 @@ means_shipout_single (const struct mtable *mt, const struct means *means, const struct workspace *ws) { struct pivot_table *pt = pivot_table_create (N_("Report")); - pt->look.omit_empty = true; struct pivot_dimension *dim_cells = pivot_dimension_create (pt, PIVOT_AXIS_COLUMN, N_("Statistics")); @@ -793,7 +792,6 @@ means_shipout_multivar (const struct mtable *mt, const struct means *means, } struct pivot_table *pt = pivot_table_create (ds_cstr (&dss)); - pt->look.omit_empty = true; ds_destroy (&dss); struct pivot_dimension *dim_cells = @@ -870,7 +868,7 @@ control_var_missing (const struct means *means, const struct variable *var = layer->factor_vars[ws->control_idx[l]]; const union value *vv = case_data (c, var); - miss = var_is_value_missing (var, vv, means->ctrl_exclude); + miss = (var_is_value_missing (var, vv) & means->ctrl_exclude) != 0; if (miss) break; } @@ -932,7 +930,7 @@ service_cell_map (const struct means *means, const struct mtable *mt, { const struct variable *dep_var = mt->dep_vars[v]; const union value *vv = case_data (c, dep_var); - if (var_is_value_missing (dep_var, vv, means->dep_exclude)) + if (var_is_value_missing (dep_var, vv) & means->dep_exclude) continue; for (int stat = 0; stat < means->n_statistics; ++stat) @@ -941,7 +939,7 @@ service_cell_map (const struct means *means, const struct mtable *mt, NULL); stat_update *su = cell_spec[means->statistics[stat]].su; su (cell->stat[stat + v * means->n_statistics], weight, - case_data (c, dep_var)->f); + case_num (c, dep_var)); } } } @@ -972,10 +970,8 @@ prepare_means (struct means *cmd) { struct workspace *ws = mt->ws + i; ws->root_cell = NULL; - ws->control_idx = xzalloc (mt->n_layers - * sizeof *ws->control_idx); - ws->instances = xzalloc (mt->n_layers - * sizeof *ws->instances); + ws->control_idx = xcalloc (mt->n_layers, sizeof *ws->control_idx); + ws->instances = xcalloc (mt->n_layers, sizeof *ws->instances); int cmb = i; for (int l = mt->n_layers - 1; l >= 0; --l) { @@ -1051,7 +1047,7 @@ update_summaries (const struct means *means, struct mtable *mt, const struct variable *var = mt->dep_vars[dv]; const union value *vv = case_data (c, var); /* First check if the dependent variable is missing. */ - if (var_is_value_missing (var, vv, means->dep_exclude)) + if (var_is_value_missing (var, vv) & means->dep_exclude) summ->n_missing += weight; /* If the dep var is not missing, then check each control variable. */ @@ -1062,7 +1058,7 @@ update_summaries (const struct means *means, struct mtable *mt, const struct variable *var = layer->factor_vars[ws->control_idx[l]]; const union value *vv = case_data (c, var); - if (var_is_value_missing (var, vv, means->ctrl_exclude)) + if (var_is_value_missing (var, vv) & means->ctrl_exclude) { summ->n_missing += weight; break; @@ -1151,9 +1147,9 @@ cmd_means (struct lexer *lexer, struct dataset *ds) for (int t = 0; t < means.n_tables; ++t) { struct mtable *mt = means.table + t; - mt->summ = xzalloc (mt->n_combinations * mt->n_dep_vars - * sizeof (*mt->summ)); - mt->ws = xzalloc (mt->n_combinations * sizeof (*mt->ws)); + mt->summ = xcalloc (mt->n_combinations * mt->n_dep_vars, + sizeof (*mt->summ)); + mt->ws = xcalloc (mt->n_combinations, sizeof (*mt->ws)); } run_means (&means, group, ds); for (int t = 0; t < means.n_tables; ++t)