#include "output/charts/barchart.h"
#include "gl/minmax.h"
+#include "gl/xalloc-oversized.h"
#include "gl/xalloc.h"
#include "gl/xsize.h"
else if (lex_match_id (lexer, "INCLUDE"))
proc.exclude = MV_SYSTEM;
else if (lex_match_id (lexer, "REPORT"))
- proc.exclude = MV_NEVER;
+ proc.exclude = 0;
else
{
lex_error (lexer, NULL);
assert (proc.n_cells < CRS_N_CELLS);
/* Missing values. */
- if (proc.mode == GENERAL && proc.exclude == MV_NEVER)
+ if (proc.mode == GENERAL && !proc.exclude)
{
msg (SE, _("Missing mode %s not allowed in general mode. "
"Assuming %s."), "REPORT", "MISSING=TABLE");
}
}
- int *by_iter = xcalloc (n_by, sizeof *by_iter);
+ int *by_iter = XCALLOC (n_by, int);
proc->pivots = xnrealloc (proc->pivots,
proc->n_pivots + nx, sizeof *proc->pivots);
for (int i = 0; i < nx; i++)
const struct variable *var = xt->vars[j].var;
const struct var_range *range = get_var_range (xt->proc, var);
- if (var_is_value_missing (var, case_data (c, var), exclude))
+ if (var_is_value_missing (var, case_data (c, var)) & exclude)
return false;
if (range != NULL)
if (proc->barchart)
{
int n_vars = (xt->n_vars > 2 ? 2 : xt->n_vars);
- const struct variable **vars = xcalloc (n_vars, sizeof *vars);
+ const struct variable **vars = XCALLOC (n_vars, const struct variable*);
for (size_t i = 0; i < n_vars; i++)
vars[i] = xt->vars[i].var;
chart_submit (barchart_create (vars, n_vars, _("Count"),
if (table)
display_crosstabulation (proc, &x, table, crs_leaves);
- if (proc->exclude == MV_NEVER)
+ if (proc->exclude == 0)
delete_missing (&x);
if (chisq)
{
struct pivot_value *value = pivot_value_new_var_value (
var->var, &var->values[j]);
- if (var_is_value_missing (var->var, &var->values[j], MV_ANY))
+ if (var_is_value_missing (var->var, &var->values[j]))
pivot_value_add_footnote (value, missing_footnote);
pivot_category_create_leaf (group, value);
}
for (r = 0; r < n_rows; r++)
if (var_is_num_missing (xt->vars[ROW_VAR].var,
- xt->vars[ROW_VAR].values[r].f, MV_USER))
+ xt->vars[ROW_VAR].values[r].f) == MV_USER)
{
for (c = 0; c < n_cols; c++)
xt->mat[c + r * n_cols] = 0.;
for (c = 0; c < n_cols; c++)
if (var_is_num_missing (xt->vars[COL_VAR].var,
- xt->vars[COL_VAR].values[c].f, MV_USER))
+ xt->vars[COL_VAR].values[c].f) == MV_USER)
{
for (r = 0; r < n_rows; r++)
xt->mat[c + r * n_cols] = 0.;
double expected_value = xt->row_tot[r] * xt->col_tot[c] / xt->total;
double residual = *mp - expected_value;
double sresidual = residual / sqrt (expected_value);
- double asresidual = (sresidual
+ double asresidual
+ = residual / sqrt (expected_value
* (1. - xt->row_tot[r] / xt->total)
* (1. - xt->col_tot[c] / xt->total));
double entries[CRS_N_CELLS] = {