private void ResetBestMatchIfAppropriate(MatchedPair newPair) { if (BestMatch.HammingSimilarity < newPair.HammingSimilarity) { BestMatch = newPair; } }
public ResultEntryAccumulator Add(HashedFingerprint hashedFingerprint, SubFingerprintData match, int hammingSimilarity) { HammingSimilaritySum += hammingSimilarity; var matchedPair = new MatchedPair(hashedFingerprint, match, hammingSimilarity); ResetBestMatchIfAppropriate(matchedPair); matches.Add(matchedPair); return(this); }
internal ResultEntry(TrackData track, double queryMatchStartsAt, double queryMatchLength, double originStartsAt, double trackStartsAt, double confidence, int hammingSimilaritySum, double queryLength, MatchedPair bestMatch) { Track = track; QueryMatchStartsAt = queryMatchStartsAt; QueryMatchLength = queryMatchLength; TrackMatchStartsAt = originStartsAt; Confidence = confidence; HammingSimilaritySum = hammingSimilaritySum; TrackStartsAt = trackStartsAt; QueryLength = queryLength; BestMatch = bestMatch; }
private double GetTrackStartsAt(MatchedPair bestMatch) { return(bestMatch.HashedFingerprint.StartsAt - bestMatch.SubFingerprint.SequenceAt); }
public ResultEntryAccumulator(HashedFingerprint hashedFingerprint, SubFingerprintData match, int hammingSimilarity) { BestMatch = new MatchedPair(hashedFingerprint, match, hammingSimilarity); Add(hashedFingerprint, match, hammingSimilarity); }