}
/* Returns the value of D's weighting variable in case C, except
- that a negative weight is returned as 0. Returns 1 if the
+ that a negative or missing weight is returned as 0. Returns 1 if the
dictionary is unweighted. Will warn about missing, negative,
or zero values if *WARN_ON_INVALID is true. The function will
set *WARN_ON_INVALID to false if an invalid weight is
}
}
+/* Like dict_get_case_weight(), but additionally rounds each weight to the
+ nearest integer. */
+double
+dict_get_rounded_case_weight (const struct dictionary *d,
+ const struct ccase *c, bool *warn_on_invalid)
+{
+ return floor (dict_get_case_weight (d, c, warn_on_invalid) + 0.5);
+}
+
/* Returns the format to use for weights. */
const struct fmt_spec *
dict_get_weight_format (const struct dictionary *d)
/* Weight variable. */
double dict_get_case_weight (const struct dictionary *,
const struct ccase *, bool *);
+double dict_get_rounded_case_weight (const struct dictionary *,
+ const struct ccase *, bool *);
struct variable *dict_get_weight (const struct dictionary *);
void dict_set_weight (struct dictionary *, struct variable *);
const struct fmt_spec *dict_get_weight_format (const struct dictionary *);