+
+
+size_t
+categoricals_get_n_variables (const struct categoricals *cat)
+{
+ return cat->n_vars;
+}
+
+
+
+/* Return the value corresponding to SUBSCRIPT */
+const union value *
+categoricals_get_value_by_category (const struct categoricals *cat, int subscript)
+{
+ int vindex = reverse_variable_lookup_long (cat, subscript);
+ const struct var_params *vp = &cat->vp[vindex];
+ const struct value_node *vn = vp->reverse_value_map [subscript - vp->base_subscript_long];
+
+ return &vn->value;
+}
+
+
+void *
+categoricals_get_user_data_by_category (const struct categoricals *cat, int subscript)
+{
+ int vindex = reverse_variable_lookup_long (cat, subscript);
+ const struct var_params *vp = &cat->vp[vindex];
+
+ const struct value_node *vn = vp->reverse_value_map [subscript - vp->base_subscript_long];
+ return vn->user_data;
+}