- if (length > 0) /* only add if non-empty */
- cluster->term_frequency_vecf[i] += (double) mult[i] / length;
- cluster->term_frequency_vec[i] += mult[i];
+ if (length == 0 || w[i] == 0)
+ continue;
+ wrbuf_printf(wr, "%s: tf[%d] += w[%d](%d)", e->display_str, i, i, w[i]);
+ switch (r->length_divide)
+ {
+ case 0:
+ cluster->term_frequency_vecf[i] += (double) w[i];
+ break;
+ case 1:
+ wrbuf_printf(wr, " / log2(1+length(%d))", length);
+ cluster->term_frequency_vecf[i] +=
+ (double) w[i] / log2(1 + length);
+ break;
+ case 2:
+ wrbuf_printf(wr, " / length(%d)", length);
+ cluster->term_frequency_vecf[i] += (double) w[i] / length;
+ }
+ cluster->term_frequency_vec[i] += w[i];
+ wrbuf_printf(wr, " (%f);\n", cluster->term_frequency_vecf[i]);