+struct interaction_value
+{
+ struct hmap_node node; /* Node in hash map */
+
+ struct ccase *ccase; /* A case (probably the first in the dataset) which matches this value */
+
+ double cc; /* Total of the weights of cases matching this interaction */
+
+ void *user_data; /* A pointer to data which the caller can store stuff */
+};
+
+static struct value_node *
+lookup_value (const struct hmap *map, const union value *val, unsigned int hash, int width)
+{
+ struct value_node *vn = NULL;
+ HMAP_FOR_EACH_WITH_HASH (vn, struct value_node, node, hash, map)
+ {
+ if (value_equal (&vn->val, val, width))
+ break;
+ }
+
+ return vn;
+}