for (unsigned i = 0; i < 4; ++i) {
printf("writing table %d\n", i);
for (unsigned j = 0; j < NUM_SYMS; ++j) {
- printf("%d,%d: %d\n", i, j, rans_dist->ransdist[i * 256 + j].first);
- write_varint(rans_dist->ransdist[i * 256 + j].first, codedfp);
+ printf("%d,%d: start=%d freq=%d\n", i, j, rans_dist->ransdist[i * 256 + j].first, rans_dist->ransdist[i * 256 + j].second);
+ write_varint(rans_dist->ransdist[i * 256 + j].second, codedfp);
}
}
}
memoryBarrierShared();
barrier();
+ new_val = new_dist[i];
+
for (uint layer = 2; layer <= 256; layer *= 2) {
if ((i & (layer - 1)) == layer - 1) {
new_dist[i] += new_dist[i - (layer / 2)];
memoryBarrierShared();
barrier();
}
- ransdist[base + i] = uvec2(new_val, new_dist[i]);
+ ransdist[base + i] = uvec2(new_dist[i] - new_val, new_val);
}