-/*
- If VAR is categorical with d categories, its first category should
- correspond to the origin in d-dimensional Euclidean space.
- */
-static bool
-is_origin (const struct variable *var, const union value *val)
-{
- if (var_is_numeric (var))
- {
- return false;
- }
- if (cat_value_find (var, val) == 0)
- {
- return true;
- }
- return false;
-}
-
-/*
- Return the subscript of the column of the design matrix
- corresponding to VAL. If VAR is categorical with d categories, its
- first category should correspond to the origin in d-dimensional
- Euclidean space, so there is no subscript for this value.
- */
-static size_t
-get_exact_subscript (const struct design_matrix *dm, const struct variable *var,
- const union value *val)
-{
- size_t result;
-
- result = design_matrix_var_to_column (dm, var);
- if (var_is_alpha (var))
- {
- if (is_origin (var, val))
- {
- return -1u;
- }
- result += cat_value_find (var, val) - 1;
- }
- return result;
-}