public boolean lessThan(ShardRef first, ShardRef second) {assert first != second;ScoreDoc firstScoreDoc = shardHits[first.shardIndex][first.hitIndex];ScoreDoc secondScoreDoc = shardHits[second.shardIndex][second.hitIndex];if (firstScoreDoc.score < secondScoreDoc.score) {return false;} else if (firstScoreDoc.score > secondScoreDoc.score) {return true;} else {return tieBreakLessThan(first, firstScoreDoc, second, secondScoreDoc, tieBreakerComparator);}}

protected internal override bool LessThan(ShardRef first, ShardRef second){Debug.Assert(first != second);float firstScore = shardHits[first.ShardIndex][first.HitIndex].Score;float secondScore = shardHits[second.ShardIndex][second.HitIndex].Score;if (firstScore < secondScore){return false;}else if (firstScore > secondScore){return true;}else{if (first.ShardIndex < second.ShardIndex){return true;}else if (first.ShardIndex > second.ShardIndex){return false;}else{Debug.Assert(first.HitIndex != second.HitIndex);return first.HitIndex < second.HitIndex;}}}
