- const union value *uv = case_data (c, mr->rowtype);
- int col, row;
- for (col = 0; col < n_vars; ++col)
- {
- const struct variable *cv
- = vars ? vars[col] : dict_get_var (mr->dict, var_get_dict_index (mr->varname) + 1 + col);
- double x = case_data (c, cv)->f;
- if (0 == strncasecmp ((char *)value_str (uv, 8), "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))
- 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))
- for (row = 0; row < n_vars; ++row)
- gsl_matrix_set (mr->var_vectors, row, col, x * x);
- }
-
- const union value *uvv = case_data (c, mr->varname);
- const uint8_t *vs = value_str (uvv, var_get_width (mr->varname));
- int w = var_get_width (mr->varname);
- unsigned long h = hash_bytes (vs, w, 0);
-
- int mrow = -1;
- for (i = 0; i < n_vars; ++i)
- {
- if (table[i] == h)
- {
- mrow = i;
- break;
- }
- }
-
- if (mrow == -1)
- continue;
-
-
- if (0 == strncasecmp ((char *) value_str (uv, 8), "CORR ", 8))
- {
- matrix_fill_row (&mr->correlation, c, mrow, vars, n_vars);
- }
- else if (0 == strncasecmp ((char *) value_str (uv, 8), "COV ", 8))
- {
- matrix_fill_row (&mr->covariance, c, mrow, vars, n_vars);
- }
+ struct pivot_dimension *d = pivot_dimension_create (
+ pt,
+ i ? PIVOT_AXIS_COLUMN : PIVOT_AXIS_ROW,
+ i ? "Column" : "Row");
+ if (!i)
+ pivot_category_create_leaf_rc (d->root, pivot_value_new_text ("Value"),
+ PIVOT_RC_CORRELATION);
+ for (size_t j = 0; j < mr->n_cvars; j++)
+ pivot_category_create_leaf_rc (
+ d->root, pivot_value_new_variable (mr->cvars[j]),
+ PIVOT_RC_CORRELATION);