X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fmeans.c;h=4ebd60d83ab496239d21ef1a556e44ebeefd75c4;hb=09d9d1ef8bfb8113e8472405ee46f4dfff838f32;hp=bc3157f7e74f8508d5c070b184e4bfdcd64f8d90;hpb=0200682d517fd4b7cfc4e333378de03bcf74be43;p=pspp diff --git a/src/language/stats/means.c b/src/language/stats/means.c index bc3157f7e7..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")); @@ -869,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; } @@ -931,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) @@ -940,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)); } } } @@ -971,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) { @@ -1050,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. */ @@ -1061,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; @@ -1150,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)