Score getHighest(Idx& i, Idx& j) // could be const if we had const Iters { const bool trace = false; Iter iter = begin(); Score bestScore = *iter; Idx bestRow = iter.row(); Idx bestCol = iter.col(); if (trace) cout << iter.row() << " " << iter.col() << " " << *iter << endl; ++iter; for (Iter iterEnd = end(); iter != iterEnd; ++iter) { if (trace) cout << iter.row() << " " << iter.col() << " " << *iter << endl; if (scoreGreater(*iter, bestScore)) // if (ScoreComparer::_scoreGreater(*iter, bestScore, scoreComparer_TOLERANCE)) { if (false && gTraceInfo.iteration == 2441) { cout << iter.row() << " " << iter.col() << " "; printf("%20.20g", *iter); cout << endl; } bestScore = *iter; bestRow = iter.row(); bestCol = iter.col(); } } i = bestRow; j = bestCol; return bestScore; }