private TDoubleDoubleMap recalc_score_hash(TDoubleDoubleMap scores, double[] column, double least_sufficient) {
TDoubleDoubleMap new_scores = new TDoubleDoubleHashMap(scores.size());
TDoubleDoubleIterator iterator = scores.iterator();
while(iterator.hasNext()) {
iterator.advance();
double score = iterator.key();
double count = iterator.value();
for (int letter = 0; letter < 4; ++letter) {
double new_score = score + column[letter];
if (new_score >= least_sufficient) {
double add = count * background.count(letter);