+ if (oval == -1.0)
+ oval = iv->cc;
+ if (oval != iv->cc)
+ return false;
+ }
+ }
+ return true;
+}
+
+
+static void
+categoricals_dump (const struct categoricals *cat)
+{
+ if (CATEGORICALS_DEBUG)
+ {
+ int i;
+
+ printf ("Reverse Variable Map (short):\n");
+ for (i = 0; i < cat->df_sum; ++i)
+ {
+ printf (" %d", cat->reverse_variable_map_short[i]);
+ }
+ printf ("\n");
+
+ printf ("Reverse Variable Map (long):\n");
+ for (i = 0; i < cat->n_cats_total; ++i)
+ {
+ printf (" %d", cat->reverse_variable_map_long[i]);
+ }
+ printf ("\n");
+
+ printf ("Number of interactions %zu\n", cat->n_iap);
+ for (i = 0 ; i < cat->n_iap; ++i)
+ {
+ int v;
+ struct string str;
+ const struct interact_params *iap = &cat->iap[i];
+ const struct interaction *iact = iap->iact;
+
+ ds_init_empty (&str);
+ interaction_to_string (iact, &str);
+
+ printf ("\nInteraction: \"%s\" (number of categories: %d); ", ds_cstr (&str), iap->n_cats);
+ ds_destroy (&str);
+ printf ("Base index (short/long): %d/%d\n", iap->base_subscript_short, iap->base_subscript_long);
+
+ printf ("\t(");
+ for (v = 0; v < hmap_count (&iap->ivmap); ++v)