X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fcategoricals.h;h=adb169cc2320f7664e910658ddec94bc6685bc6c;hb=e4955eebfee4b79846bbb5ba27daaa39a02ef05c;hp=11d64d02296d1ff58952ef33aa7cea3ccc76befe;hpb=e0bcf133ab9091a2fa5227d2767651d8ec58caef;p=pspp diff --git a/src/math/categoricals.h b/src/math/categoricals.h index 11d64d0229..adb169cc23 100644 --- a/src/math/categoricals.h +++ b/src/math/categoricals.h @@ -28,7 +28,7 @@ struct interaction; union value ; -struct categoricals *categoricals_create (struct interaction *const *, size_t n_int, +struct categoricals *categoricals_create (struct interaction *const*, size_t n_int, const struct variable *wv, enum mv_class dep_excl, enum mv_class fctr_excl); @@ -73,7 +73,7 @@ bool categoricals_sane (const struct categoricals *cat); /* The *_by_subscript functions use the short map. - Their intended use is by covariance matrix routines, where normally 1 less than + Their intended use is by covariance matrix routines, where normally 1 less than the total number of distinct values of each categorical variable should be considered. */ @@ -82,13 +82,24 @@ const struct interaction *categoricals_get_interaction_by_subscript (const struc double categoricals_get_sum_by_subscript (const struct categoricals *cat, int subscript); -double categoricals_get_code_for_case (const struct categoricals *cat, int subscript, const struct ccase *c); +/* Returns unity if the value in case C at SUBSCRIPT is equal to the category + for that subscript */ +double +categoricals_get_dummy_code_for_case (const struct categoricals *cat, int subscript, + const struct ccase *c); + +/* Returns unity if the value in case C at SUBSCRIPT is equal to the category + for that subscript. + Else if it is the last category, return -1. + Otherwise return 0. + */ +double +categoricals_get_effects_code_for_case (const struct categoricals *cat, int subscript, + const struct ccase *c); /* These use the long map. Useful for descriptive statistics. */ -/* Return the value corresponding to the N'th category */ -const union value * categoricals_get_value_by_category (const struct categoricals *cat, int n); const struct ccase * categoricals_get_case_by_category_real (const struct categoricals *cat, int iact, int n); @@ -107,10 +118,12 @@ struct payload void* (*create) (const void *aux1, void *aux2); void (*update) (const void *aux1, void *aux2, void *user_data, const struct ccase *, double weight); void (*calculate) (const void *aux1, void *aux2, void *user_data); + void (*destroy) (const void *aux1, void *aux2, void *user_data); }; void categoricals_set_payload (struct categoricals *cats, const struct payload *p, const void *aux1, void *aux2); +bool categoricals_isbalanced (const struct categoricals *cat); #endif