// Apply corrections one by one, greedily, until we are at the exact right sum.
if (actual_sum > prob_scale) {
- float loss = -true_prob * log2(new_val / (new_val - 1));
+ float loss = true_prob * log2(new_val / float(new_val - 1));
voting_areas[i] = 0xffffffff;
memoryBarrierShared();
if (my_vote == voting_areas[vote_no]) {
--new_val;
- loss = -true_prob * log2(new_val / (new_val - 1));
+ loss = true_prob * log2(new_val / float(new_val - 1));
}
}
} else {
- float benefit = true_prob * log2(new_val / (new_val + 1));
+ float benefit = -true_prob * log2(new_val / float(new_val + 1));
voting_areas[i] = 0;
memoryBarrierShared();
if (my_vote == voting_areas[vote_no]) {
++new_val;
- benefit = true_prob * log2(new_val / (new_val + 1));
+ benefit = -true_prob * log2(new_val / float(new_val + 1));
}
}
}