+ /*
+ User did not specify the design matrix, so we
+ specify it here.
+ */
+ n_inter = (cmd->n_by + cmd->n_with) * (cmd->n_by + cmd->n_with - 1) / 2;
+ interactions = xnmalloc (n_inter, sizeof (*interactions));
+ interaction_vars = xnmalloc (2, sizeof (*interaction_vars));
+ for (i = 0; i < cmd->n_by; i++)
+ {
+ for (j = i + 1; j < cmd->n_by; j++)
+ {
+ interaction_vars[0] = cmd->v_by[i];
+ interaction_vars[1] = cmd->v_by[j];
+ interactions[k] = interaction_variable_create (interaction_vars, 2);
+ k++;
+ }
+ for (j = 0; j < cmd->n_with; j++)
+ {
+ interaction_vars[0] = cmd->v_by[i];
+ interaction_vars[1] = cmd->v_with[j];
+ interactions[k] = interaction_variable_create (interaction_vars, 2);
+ k++;
+ }
+ }
+ for (i = 0; i < cmd->n_with; i++)
+ {
+ for (j = i + 1; j < cmd->n_with; j++)
+ {
+ interaction_vars[0] = cmd->v_with[i];
+ interaction_vars[1] = cmd->v_with[j];
+ interactions[k] = interaction_variable_create (interaction_vars, 2);
+ k++;
+ }
+ }
+}