X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fcategoricals.c;h=5c96c40cc359a1ec87f00594890eb00cfe75c577;hb=a741cf4e8348e478ec5e8658cebeb80dc0376b1a;hp=b7e51751a5b8492fe1a5057d5b5c254577ecb879;hpb=5055ec22100c84153e76662bae23063408a6a935;p=pspp-builds.git diff --git a/src/math/categoricals.c b/src/math/categoricals.c index b7e51751..5c96c40c 100644 --- a/src/math/categoricals.c +++ b/src/math/categoricals.c @@ -145,6 +145,12 @@ categoricals_dump (const struct categoricals *cat) printf ("Number of categorical variables: %d\n", cat->n_vp); printf ("Number of non-empty categorical variables: %d\n", cat->n_vars); printf ("Total number of categories: %d\n", cat->n_cats_total); + + printf ("\nReverse variable map:\n"); + + for (v = 0 ; v < cat->n_cats_total - cat->n_vars; ++v) + printf ("%d ", cat->reverse_variable_map[v]); + printf ("\n"); } @@ -271,7 +277,9 @@ categoricals_done (struct categoricals *cat) */ int v; int idx = 0; - cat->reverse_variable_map = pool_calloc (cat->pool, cat->n_cats_total, sizeof *cat->reverse_variable_map); + cat->reverse_variable_map = pool_calloc (cat->pool, + cat->n_cats_total - cat->n_vars, + sizeof *cat->reverse_variable_map); for (v = 0 ; v < cat->n_vp; ++v) { @@ -290,7 +298,10 @@ categoricals_done (struct categoricals *cat) vp->reverse_value_map[vn->subscript] = vn; } - for (i = 0; i < vp->n_cats; ++i) + /* Populate the reverse variable map. + This implementation considers the first value of each categorical variable + as the basis. Therefore, this loop starts from 1 instead of 0 */ + for (i = 1; i < vp->n_cats; ++i) cat->reverse_variable_map[idx++] = v; }