if (vars)
{
int i;
- *vars = xcalloc (sizeof (struct variable **), *n_vars);
+ *vars = xcalloc (*n_vars, sizeof (struct variable **));
for (i = 0; i < *n_vars; ++i)
{
mm->mean_matrix = mr->mean_vectors;
mm->var_matrix = mr->var_vectors;
- struct substring *var_names = xcalloc (n_vars, sizeof *var_names);
+ struct substring *var_names = XCALLOC (n_vars, struct substring);
for (int i = 0; i < n_vars; ++i)
{
ss_alloc_substring (var_names + i, ss_cstr (var_get_name (vars[i])));
}
struct ccase *c;
- for ( ; (c = casereader_read (group) ); case_unref (c))
+ for (; (c = casereader_read (group)); case_unref (c))
{
- const union value *uv = case_data (c, mr->rowtype);
+ const union value *uv = case_data (c, mr->rowtype);
+ const char *row_type = CHAR_CAST (const char *, uv->s);
int col, row;
for (col = 0; col < n_vars; ++col)
{
const struct variable *cv = vars[col];
double x = case_data (c, cv)->f;
- if (0 == strncasecmp ((char *)value_str (uv, 8), "N ", 8))
+ if (0 == strncasecmp (row_type, "N ", 8))
for (row = 0; row < n_vars; ++row)
gsl_matrix_set (mr->n_vectors, row, col, x);
- else if (0 == strncasecmp ((char *) value_str (uv, 8), "MEAN ", 8))
+ else if (0 == strncasecmp (row_type, "MEAN ", 8))
for (row = 0; row < n_vars; ++row)
gsl_matrix_set (mr->mean_vectors, row, col, x);
- else if (0 == strncasecmp ((char *) value_str (uv, 8), "STDDEV ", 8))
+ else if (0 == strncasecmp (row_type, "STDDEV ", 8))
for (row = 0; row < n_vars; ++row)
gsl_matrix_set (mr->var_vectors, row, col, x * x);
}
if (mrow == -1)
continue;
- if (0 == strncasecmp ((char *) value_str (uv, 8), "CORR ", 8))
+ if (0 == strncasecmp (row_type, "CORR ", 8))
{
matrix_fill_row (&mm->corr, c, mrow, vars, n_vars);
}
- else if (0 == strncasecmp ((char *) value_str (uv, 8), "COV ", 8))
+ else if (0 == strncasecmp (row_type, "COV ", 8))
{
matrix_fill_row (&mm->cov, c, mrow, vars, n_vars);
}